From fcb1664b311d25aa8702f594e964f07877782856 Mon Sep 17 00:00:00 2001 From: notquiteog <104785131+notquiteog@users.noreply.github.com> Date: Mon, 9 Nov 2026 15:30:37 -0600 Subject: [PATCH 1/4] build(vk): vendor AMD's FSR 3.1 passes and the script that compiles them The first part of #822, split out as asked: AMD's FidelityFX SDK GPU sources for the FSR 3.1 upscaler, frame interpolation and optical flow, and scripts/fsr3_shaders.py, which compiles them into gpu/vk/shaders like every other shader there. Nothing in the renderer uses them yet; the backend that records these passes is a later, separate PR. - third_party/fidelityfx-sdk: 76 files from FidelityFX SDK v1.1.4 (commit c6efa6bf), unmodified, MIT, with PROVENANCE.md saying what each folder is. - gpu/vk/shaders/fsr3_*_spv.h: the 28 compiled headers, checked in so a clone builds without glslang. - tests/test_fsr3_shaders.py (in run_all, Linux only): recompiles every pass and fails if a checked-in header no longer matches its source; source-regressions installs glslang-tools for it. Tested: every vendored file compared byte for byte with AMD's repository at c6efa6bf (76 of 76 identical); tests/test_fsr3_shaders.py with glslang 16 and spirv-val: 28 match. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/source-regressions.yml | 2 +- gpu/vk/shaders/fsr3_accumulate_comp_spv.h | 1995 +++++++++++ .../fsr3_accumulate_sharpen_comp_spv.h | 1980 +++++++++++ .../fsr3_fi_disocclusion_mask_comp_spv.h | 818 +++++ ...sr3_fi_game_motion_vector_field_comp_spv.h | 842 +++++ ...vector_field_inpainting_pyramid_comp_spv.h | 1551 +++++++++ gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h | 748 +++++ .../fsr3_fi_inpainting_pyramid_comp_spv.h | 1488 ++++++++ gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h | 1260 +++++++ ...r3_fi_optical_flow_vector_field_comp_spv.h | 789 +++++ .../fsr3_fi_reconstruct_and_dilate_comp_spv.h | 426 +++ ...3_fi_reconstruct_previous_depth_comp_spv.h | 307 ++ gpu/vk/shaders/fsr3_fi_setup_comp_spv.h | 232 ++ .../shaders/fsr3_luma_instability_comp_spv.h | 543 +++ gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h | 1527 +++++++++ .../fsr3_luma_pyramid_nowave_comp_spv.h | 1567 +++++++++ ...fsr3_of_compute_optical_flow_v5_comp_spv.h | 957 ++++++ .../fsr3_of_compute_scd_divergence_comp_spv.h | 625 ++++ .../fsr3_of_filter_optical_flow_v5_comp_spv.h | 167 + .../fsr3_of_generate_scd_histogram_comp_spv.h | 243 ++ .../fsr3_of_luminance_pyramid_comp_spv.h | 1196 +++++++ .../shaders/fsr3_of_prepare_luma_comp_spv.h | 302 ++ .../fsr3_of_scale_optical_flow_v5_comp_spv.h | 522 +++ gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h | 562 ++++ .../fsr3_prepare_reactivity_comp_spv.h | 1083 ++++++ gpu/vk/shaders/fsr3_rcas_comp_spv.h | 694 ++++ gpu/vk/shaders/fsr3_shading_change_comp_spv.h | 282 ++ .../fsr3_shading_change_pyramid_comp_spv.h | 1903 +++++++++++ ...3_shading_change_pyramid_nowave_comp_spv.h | 1942 +++++++++++ scripts/fsr3_shaders.py | 202 ++ tests/run_all.py | 4 + tests/test_fsr3_shaders.py | 33 + third_party/fidelityfx-sdk/LICENSE.txt | 21 + third_party/fidelityfx-sdk/PROVENANCE.md | 26 + .../include/FidelityFX/gpu/ffx_common_types.h | 558 +++ .../include/FidelityFX/gpu/ffx_core.h | 80 + .../include/FidelityFX/gpu/ffx_core_glsl.h | 1916 +++++++++++ .../FidelityFX/gpu/ffx_core_gpu_common.h | 2736 +++++++++++++++ .../FidelityFX/gpu/ffx_core_gpu_common_half.h | 2981 +++++++++++++++++ .../FidelityFX/gpu/ffx_core_portability.h | 46 + .../CMakeCompileFrameinterpolationShaders.txt | 55 + .../ffx_frameinterpolation.h | 187 ++ .../ffx_frameinterpolation_callbacks_glsl.h | 758 +++++ .../ffx_frameinterpolation_callbacks_hlsl.h | 814 +++++ .../ffx_frameinterpolation_common.h | 445 +++ ...ute_game_vector_field_inpainting_pyramid.h | 121 + ...interpolation_compute_inpainting_pyramid.h | 120 + .../ffx_frameinterpolation_debug_view.h | 172 + ...ffx_frameinterpolation_disocclusion_mask.h | 146 + ...meinterpolation_game_motion_vector_field.h | 123 + .../ffx_frameinterpolation_inpainting.h | 150 + ...einterpolation_optical_flow_vector_field.h | 123 + ...ruct_dilated_velocity_and_previous_depth.h | 123 + ...interpolation_reconstruct_previous_depth.h | 63 + .../ffx_frameinterpolation_resources.h | 95 + .../ffx_frameinterpolation_setup.h | 50 + .../include/FidelityFX/gpu/fsr1/ffx_fsr1.h | 1252 +++++++ .../ffx_fsr3upscaler_accumulate.h | 172 + .../ffx_fsr3upscaler_callbacks_glsl.h | 903 +++++ .../fsr3upscaler/ffx_fsr3upscaler_common.h | 403 +++ .../ffx_fsr3upscaler_luma_instability.h | 115 + .../ffx_fsr3upscaler_luma_pyramid.h | 192 ++ .../ffx_fsr3upscaler_prepare_inputs.h | 152 + .../ffx_fsr3upscaler_prepare_reactivity.h | 283 ++ .../gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h | 112 + .../fsr3upscaler/ffx_fsr3upscaler_reproject.h | 79 + .../fsr3upscaler/ffx_fsr3upscaler_resources.h | 100 + .../fsr3upscaler/ffx_fsr3upscaler_sample.h | 628 ++++ .../ffx_fsr3upscaler_shading_change.h | 68 + .../ffx_fsr3upscaler_shading_change_pyramid.h | 297 ++ .../fsr3upscaler/ffx_fsr3upscaler_upsample.h | 644 ++++ .../CMakeCompileOpticalflowShaders.txt | 55 + .../ffx_opticalflow_callbacks_glsl.h | 578 ++++ .../ffx_opticalflow_callbacks_hlsl.h | 634 ++++ .../gpu/opticalflow/ffx_opticalflow_common.h | 99 + ...fx_opticalflow_compute_luminance_pyramid.h | 107 + .../ffx_opticalflow_compute_optical_flow_v5.h | 279 ++ .../ffx_opticalflow_compute_scd_divergence.h | 159 + .../ffx_opticalflow_filter_optical_flow_v5.h | 58 + .../ffx_opticalflow_generate_scd_histogram.h | 92 + .../ffx_opticalflow_prepare_luma.h | 106 + .../opticalflow/ffx_opticalflow_resources.h | 74 + ...ticalflow_scale_optical_flow_advanced_v5.h | 99 + .../include/FidelityFX/gpu/spd/ffx_spd.h | 1014 ++++++ ..._vector_field_inpainting_pyramid_pass.glsl | 75 + ...ation_compute_inpainting_pyramid_pass.glsl | 74 + ...fx_frameinterpolation_debug_view_pass.glsl | 65 + ...einterpolation_disocclusion_mask_pass.glsl | 61 + ...olation_game_motion_vector_field_pass.glsl | 60 + ...fx_frameinterpolation_inpainting_pass.glsl | 60 + ...lation_optical_flow_vector_field_pass.glsl | 60 + .../ffx_frameinterpolation_pass.glsl | 65 + ...rpolation_reconstruct_and_dilate_pass.glsl | 58 + ...ation_reconstruct_previous_depth_pass.glsl | 58 + .../ffx_frameinterpolation_setup_pass.glsl | 60 + .../ffx_fsr3upscaler_accumulate_pass.glsl | 75 + ...fx_fsr3upscaler_luma_instability_pass.glsl | 62 + .../ffx_fsr3upscaler_luma_pyramid_pass.glsl | 65 + .../ffx_fsr3upscaler_prepare_inputs_pass.glsl | 61 + ..._fsr3upscaler_prepare_reactivity_pass.glsl | 65 + .../ffx_fsr3upscaler_rcas_pass.glsl | 59 + .../ffx_fsr3upscaler_shading_change_pass.glsl | 55 + ...3upscaler_shading_change_pyramid_pass.glsl | 67 + ...alflow_compute_luminance_pyramid_pass.glsl | 60 + ...compute_optical_flow_advanced_pass_v5.glsl | 66 + ...ticalflow_compute_scd_divergence_pass.glsl | 57 + ...ticalflow_filter_optical_flow_pass_v5.glsl | 57 + ...ticalflow_generate_scd_histogram_pass.glsl | 55 + .../ffx_opticalflow_prepare_luma_pass.glsl | 55 + ...w_scale_optical_flow_advanced_pass_v5.glsl | 66 + 110 files changed, 49075 insertions(+), 1 deletion(-) create mode 100644 gpu/vk/shaders/fsr3_accumulate_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_fi_setup_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_luma_instability_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_rcas_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_shading_change_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h create mode 100644 gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h create mode 100644 scripts/fsr3_shaders.py create mode 100644 tests/test_fsr3_shaders.py create mode 100644 third_party/fidelityfx-sdk/LICENSE.txt create mode 100644 third_party/fidelityfx-sdk/PROVENANCE.md create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h create mode 100644 third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl create mode 100644 third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl diff --git a/.github/workflows/source-regressions.yml b/.github/workflows/source-regressions.yml index 2c7c0f566..146d793c3 100644 --- a/.github/workflows/source-regressions.yml +++ b/.github/workflows/source-regressions.yml @@ -56,7 +56,7 @@ jobs: run: python -m pip install --disable-pip-version-check --no-deps zstandard==0.25.0 - name: Compilers and the SPIR-V validator if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y g++ clang spirv-tools + run: sudo apt-get update && sudo apt-get install -y g++ clang spirv-tools glslang-tools # (the steps below all run when one before them failed, so one run shows every failure) - name: Check Windows native source regressions diff --git a/gpu/vk/shaders/fsr3_accumulate_comp_spv.h b/gpu/vk/shaders/fsr3_accumulate_comp_spv.h new file mode 100644 index 000000000..d746783c1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_accumulate_comp_spv.h @@ -0,0 +1,1995 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_ACCUMULATE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000924,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x00020011,0x00000038,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x00000912,0x00060010,0x00000004,0x00000011,0x00000008, + 0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458, + 0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000, + 0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972, + 0x6974656d,0x79745f63,0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72, + 0x5f656761,0x64616f6c,0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000c,0x4c786666,0x28707265,0x663b3166, + 0x31663b31,0x0000003b,0x00030005,0x00000009,0x00000078,0x00030005,0x0000000a,0x00000079, + 0x00030005,0x0000000b,0x00000074,0x00070005,0x00000014,0x4c786666,0x28707265,0x3b336676, + 0x3b336676,0x003b3166,0x00030005,0x00000011,0x00000078,0x00030005,0x00000012,0x00000079, + 0x00030005,0x00000013,0x00000074,0x00060005,0x00000018,0x53786666,0x72757461,0x28657461, + 0x003b3166,0x00030005,0x00000017,0x00000078,0x00060005,0x0000001e,0x46786666,0x74636172, + 0x32667628,0x0000003b,0x00030005,0x0000001d,0x00000078,0x00060005,0x00000023,0x4d786666, + 0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022, + 0x00000079,0x00060005,0x00000028,0x4d786666,0x76286e69,0x763b3266,0x003b3266,0x00030005, + 0x00000026,0x00000078,0x00030005,0x00000027,0x00000079,0x00060005,0x0000002d,0x4d786666, + 0x76286e69,0x763b3366,0x003b3366,0x00030005,0x0000002b,0x00000078,0x00030005,0x0000002c, + 0x00000079,0x00060005,0x00000034,0x4d786666,0x76286e69,0x763b3466,0x003b3466,0x00030005, + 0x00000032,0x00000078,0x00030005,0x00000033,0x00000079,0x00060005,0x0000003b,0x4d786666, + 0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000039,0x00000078,0x00030005,0x0000003a, + 0x00000079,0x00060005,0x0000003f,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005, + 0x0000003d,0x00000078,0x00030005,0x0000003e,0x00000079,0x00060005,0x00000043,0x4d786666, + 0x76287861,0x763b3266,0x003b3266,0x00030005,0x00000041,0x00000078,0x00030005,0x00000042, + 0x00000079,0x00060005,0x00000047,0x4d786666,0x76287861,0x763b3366,0x003b3366,0x00030005, + 0x00000045,0x00000078,0x00030005,0x00000046,0x00000079,0x00060005,0x0000004b,0x4d786666, + 0x76287861,0x763b3466,0x003b3466,0x00030005,0x00000049,0x00000078,0x00030005,0x0000004a, + 0x00000079,0x00060005,0x0000004f,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005, + 0x0000004d,0x00000078,0x00030005,0x0000004e,0x00000079,0x00060005,0x00000053,0x50786666, + 0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000051,0x00000078,0x00030005,0x00000052, + 0x00000079,0x00050005,0x00000057,0x646e6552,0x69537265,0x0028657a,0x00060005,0x00000059, + 0x5278614d,0x65646e65,0x7a695372,0x00002865,0x00060005,0x0000005b,0x63737055,0x53656c61, + 0x28657a69,0x00000000,0x00090005,0x0000005d,0x76657250,0x73756f69,0x6d617246,0x73705565, + 0x656c6163,0x657a6953,0x00000028,0x00040005,0x00000060,0x7474694a,0x00287265,0x00070005, + 0x00000062,0x6e776f44,0x6c616373,0x63614665,0x28726f74,0x00000000,0x00080005,0x00000065, + 0x7474694a,0x65537265,0x6e657571,0x654c6563,0x6874676e,0x00000028,0x00070005,0x00000067, + 0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028,0x00050005,0x00000069,0x6d617246, + 0x646e4965,0x00287865,0x00060005,0x0000006b,0x6f6c6556,0x79746963,0x74636146,0x0028726f, + 0x00070005,0x00000070,0x64616f4c,0x75706e49,0x6c6f4374,0x7628726f,0x003b3269,0x00040005, + 0x0000006f,0x50785069,0x0000736f,0x00070005,0x00000074,0x64616f4c,0x74736948,0x2879726f, + 0x3b326976,0x00000000,0x00050005,0x00000073,0x48785069,0x6f747369,0x00007972,0x000c0005, + 0x00000079,0x726f7453,0x746e4965,0x616e7265,0x6c6f436c,0x6e41726f,0x69655764,0x28746867, + 0x3b326976,0x3b346676,0x00000000,0x00040005,0x00000077,0x50785069,0x0000736f,0x00060005, + 0x00000078,0x6c6f4366,0x6e41726f,0x69655764,0x00746867,0x000a0005,0x0000007e,0x726f7453, + 0x73705565,0x656c6163,0x74754f64,0x28747570,0x3b326976,0x3b336676,0x00000000,0x00040005, + 0x0000007c,0x50785069,0x0000736f,0x00040005,0x0000007d,0x6c6f4366,0x0000726f,0x000c0005, + 0x00000080,0x46746547,0x68747261,0x44747365,0x68747065,0x3170694d,0x6f736552,0x65637275, + 0x656d6944,0x6f69736e,0x0028736e,0x000a0005,0x00000084,0x706d6153,0x6146656c,0x65687472, + 0x65447473,0x4d687470,0x28317069,0x3b326676,0x00000000,0x00030005,0x00000083,0x00565566, + 0x00090005,0x00000087,0x706d6153,0x754c656c,0x6e49616d,0x62617473,0x74696c69,0x66762879, + 0x00003b32,0x00030005,0x00000086,0x00007675,0x00070005,0x0000008b,0x64616f4c,0x654e7752, + 0x636f4c77,0x7628736b,0x003b3269,0x00040005,0x0000008a,0x50785069,0x0000736f,0x00080005, + 0x00000090,0x726f7453,0x77654e65,0x6b636f4c,0x69762873,0x31663b32,0x0000003b,0x00040005, + 0x0000008e,0x50785069,0x0000736f,0x00040005,0x0000008f,0x4c77656e,0x006b636f,0x000a0005, + 0x00000094,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976, + 0x00000000,0x00050005,0x00000093,0x49785069,0x7475706e,0x00000000,0x00050005,0x00000096, + 0x6f707845,0x65727573,0x00000028,0x000a0005,0x0000009a,0x706d6153,0x6944656c,0x6574616c, + 0x61655264,0x76697463,0x73614d65,0x7628736b,0x003b3266,0x00030005,0x00000099,0x00565566, + 0x00070005,0x0000009d,0x34746547,0x6c65564b,0x7469636f,0x66762879,0x00003b32,0x00060005, + 0x0000009c,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00070005,0x0000009f,0x74636552, + 0x63696669,0x6f697461,0x786f426e,0x00000000,0x00060006,0x0000009f,0x00000000,0x43786f62, + 0x65746e65,0x00000072,0x00050006,0x0000009f,0x00000001,0x56786f62,0x00006365,0x00050006, + 0x0000009f,0x00000002,0x62626161,0x006e694d,0x00050006,0x0000009f,0x00000003,0x62626161, + 0x0078614d,0x00080006,0x0000009f,0x00000004,0x786f4266,0x746e6543,0x65577265,0x74686769, + 0x00000000,0x00180005,0x000000a5,0x74636552,0x63696669,0x6f697461,0x786f426e,0x49646441, + 0x6974696e,0x61536c61,0x656c706d,0x72747328,0x2d746375,0x74636552,0x63696669,0x6f697461, + 0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366763b,0x3b31663b, + 0x00000000,0x00070005,0x000000a2,0x74636572,0x63696669,0x6f697461,0x786f426e,0x00000000, + 0x00050005,0x000000a3,0x6f6c6f63,0x6d615372,0x00656c70,0x00060005,0x000000a4,0x6d615366, + 0x57656c70,0x68676965,0x00000074,0x00170005,0x000000ae,0x74636552,0x63696669,0x6f697461, + 0x786f426e,0x53646441,0x6c706d61,0x31622865,0x7274733b,0x2d746375,0x74636552,0x63696669, + 0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366763b, + 0x3b31663b,0x00000000,0x00060005,0x000000aa,0x696e4962,0x6c616974,0x706d6153,0x0000656c, + 0x00070005,0x000000ab,0x74636572,0x63696669,0x6f697461,0x786f426e,0x00000000,0x00050005, + 0x000000ac,0x6f6c6f63,0x6d615372,0x00656c70,0x00060005,0x000000ad,0x6d615366,0x57656c70, + 0x68676965,0x00000074,0x00170005,0x000000b2,0x74636552,0x63696669,0x6f697461,0x786f426e, + 0x706d6f43,0x56657475,0x61697261,0x4265636e,0x6144786f,0x73286174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x003b3131,0x00070005,0x000000b1,0x74636572,0x63696669,0x6f697461,0x786f426e,0x00000000, + 0x00060005,0x000000b6,0x436f4359,0x526f5467,0x76284247,0x003b3366,0x00040005,0x000000b5, + 0x6f435966,0x00006743,0x00060005,0x000000b9,0x54424752,0x6f43596f,0x76286743,0x003b3366, + 0x00040005,0x000000b8,0x62675266,0x00000000,0x00060005,0x000000bc,0x656e6f54,0x2870616d, + 0x3b336676,0x00000000,0x00040005,0x000000bb,0x62675266,0x00000000,0x00070005,0x000000bf, + 0x65766e49,0x54657372,0x6d656e6f,0x76287061,0x003b3366,0x00040005,0x000000be,0x62675266, + 0x00000000,0x00060005,0x000000c3,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005, + 0x000000c2,0x00765566,0x00080005,0x000000c9,0x6d616c43,0x616f4c70,0x69762864,0x69763b32, + 0x69763b32,0x00003b32,0x00050005,0x000000c6,0x53785069,0x6c706d61,0x00000065,0x00050005, + 0x000000c7,0x4f785069,0x65736666,0x00000074,0x00060005,0x000000c8,0x78655469,0x65727574, + 0x657a6953,0x00000000,0x00080005,0x000000cf,0x6d616c43,0x28765570,0x3b326676,0x3b326976, + 0x3b326976,0x00000000,0x00030005,0x000000cc,0x00765566,0x00060005,0x000000cd,0x78655469, + 0x65727574,0x657a6953,0x00000000,0x00060005,0x000000ce,0x73655269,0x6372756f,0x7a695365, + 0x00000065,0x00070005,0x000000d4,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x000000d2,0x00736f70,0x00040005,0x000000d3,0x657a6973,0x00000000,0x00070005, + 0x000000d7,0x636e614c,0x32736f7a,0x6c436f4e,0x28706d61,0x003b3166,0x00030005,0x000000d6, + 0x00000078,0x00060005,0x000000da,0x636e614c,0x32736f7a,0x3b316628,0x00000000,0x00030005, + 0x000000d9,0x00000078,0x00090005,0x000000dd,0x636e614c,0x32736f7a,0x72707041,0x7153786f, + 0x6c436f4e,0x28706d61,0x003b3166,0x00030005,0x000000dc,0x00003278,0x00080005,0x000000e0, + 0x636e614c,0x32736f7a,0x72707041,0x7153786f,0x3b316628,0x00000000,0x00030005,0x000000df, + 0x00003278,0x000a0005,0x000000e8,0x636e614c,0x32736f7a,0x34667628,0x3466763b,0x3466763b, + 0x3466763b,0x3b31663b,0x00000000,0x00040005,0x000000e3,0x6c6f4366,0x0030726f,0x00040005, + 0x000000e4,0x6c6f4366,0x0031726f,0x00040005,0x000000e5,0x6c6f4366,0x0032726f,0x00040005, + 0x000000e6,0x6c6f4366,0x0033726f,0x00030005,0x000000e7,0x00000074,0x00080005,0x000000ea, + 0x63746546,0x42646568,0x62756369,0x61536369,0x656c706d,0x00000073,0x00060006,0x000000ea, + 0x00000000,0x6c6f4366,0x3030726f,0x00000000,0x00060006,0x000000ea,0x00000001,0x6c6f4366, + 0x3031726f,0x00000000,0x00060006,0x000000ea,0x00000002,0x6c6f4366,0x3032726f,0x00000000, + 0x00060006,0x000000ea,0x00000003,0x6c6f4366,0x3033726f,0x00000000,0x00060006,0x000000ea, + 0x00000004,0x6c6f4366,0x3130726f,0x00000000,0x00060006,0x000000ea,0x00000005,0x6c6f4366, + 0x3131726f,0x00000000,0x00060006,0x000000ea,0x00000006,0x6c6f4366,0x3132726f,0x00000000, + 0x00060006,0x000000ea,0x00000007,0x6c6f4366,0x3133726f,0x00000000,0x00060006,0x000000ea, + 0x00000008,0x6c6f4366,0x3230726f,0x00000000,0x00060006,0x000000ea,0x00000009,0x6c6f4366, + 0x3231726f,0x00000000,0x00060006,0x000000ea,0x0000000a,0x6c6f4366,0x3232726f,0x00000000, + 0x00060006,0x000000ea,0x0000000b,0x6c6f4366,0x3233726f,0x00000000,0x00060006,0x000000ea, + 0x0000000c,0x6c6f4366,0x3330726f,0x00000000,0x00060006,0x000000ea,0x0000000d,0x6c6f4366, + 0x3331726f,0x00000000,0x00060006,0x000000ea,0x0000000e,0x6c6f4366,0x3332726f,0x00000000, + 0x00060006,0x000000ea,0x0000000f,0x6c6f4366,0x3333726f,0x00000000,0x001d0005,0x000000ef, + 0x636e614c,0x32736f7a,0x72747328,0x2d746375,0x63746546,0x42646568,0x62756369,0x61536369, + 0x656c706d,0x66762d73,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34, + 0x66762d34,0x763b3134,0x003b3266,0x00040005,0x000000ed,0x706d6153,0x0073656c,0x00040005, + 0x000000ee,0x46785066,0x00636172,0x00080005,0x000000f4,0x6d616c43,0x6f6f4370,0x76286472, + 0x763b3269,0x763b3269,0x003b3269,0x00050005,0x000000f1,0x53785069,0x6c706d61,0x00000065, + 0x00050005,0x000000f2,0x4f785069,0x65736666,0x00000074,0x00060005,0x000000f3,0x78655469, + 0x65727574,0x657a6953,0x00000000,0x00110005,0x000000f9,0x69726544,0x6e69676e,0x74732867, + 0x74637572,0x6365522d,0x69666974,0x69746163,0x6f426e6f,0x66762d78,0x66762d33,0x66762d33, + 0x66762d33,0x31662d33,0x66763b31,0x00003b33,0x00050005,0x000000f7,0x70696c63,0x676e6970, + 0x00786f42,0x00040005,0x000000f8,0x6c6f4366,0x0000726f,0x000b0005,0x000000fe,0x55746547, + 0x6d617370,0x4c656c70,0x7a636e61,0x6557736f,0x74686769,0x32667628,0x3b31663b,0x00000000, + 0x00070005,0x000000fc,0x63725366,0x706d6153,0x664f656c,0x74657366,0x00000000,0x00060005, + 0x000000fd,0x72654b66,0x576c656e,0x68676965,0x00000074,0x000a0005,0x00000100,0x75636341, + 0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f,0x736d6172,0x00000000,0x00060006, + 0x00000100,0x00000000,0x48785069,0x736f5072,0x00000000,0x00050006,0x00000100,0x00000001, + 0x55724866,0x00000076,0x00070006,0x00000100,0x00000002,0x55724c66,0x74694a76,0x65726574, + 0x00000064,0x00070006,0x00000100,0x00000003,0x55724c66,0x77485f76,0x706d6153,0x0072656c, + 0x00070006,0x00000100,0x00000004,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00080006, + 0x00000100,0x00000005,0x70655266,0x656a6f72,0x64657463,0x76557248,0x00000000,0x00060006, + 0x00000100,0x00000006,0x564b3466,0x636f6c65,0x00797469,0x00070006,0x00000100,0x00000007, + 0x73694466,0x6c63636f,0x6f697375,0x0000006e,0x00070006,0x00000100,0x00000008,0x61655266, + 0x76697463,0x73614d65,0x0000006b,0x00070006,0x00000100,0x00000009,0x61685366,0x676e6964, + 0x6e616843,0x00006567,0x00070006,0x00000100,0x0000000a,0x63634166,0x6c756d75,0x6f697461, + 0x0000006e,0x00090006,0x00000100,0x0000000b,0x6d754c66,0x736e4961,0x69626174,0x7974696c, + 0x74636146,0x0000726f,0x00090006,0x00000100,0x0000000c,0x72614666,0x73656874,0x70654474, + 0x6e496874,0x6574654d,0x00007372,0x00080006,0x00000100,0x0000000d,0x45734962,0x74736978, + 0x53676e69,0x6c706d61,0x00000065,0x00070006,0x00000100,0x0000000e,0x4e734962,0x61537765, + 0x656c706d,0x00000000,0x00080005,0x00000101,0x75636341,0x616c756d,0x6e6f6974,0x73736150, + 0x61746144,0x00000000,0x00060006,0x00000101,0x00000000,0x70696c63,0x676e6970,0x00786f42, + 0x00070006,0x00000101,0x00000001,0x73705566,0x6c706d61,0x6f436465,0x00726f6c,0x00080006, + 0x00000101,0x00000002,0x73705566,0x6c706d61,0x65576465,0x74686769,0x00000000,0x00070006, + 0x00000101,0x00000003,0x73694866,0x79726f74,0x6f6c6f43,0x00000072,0x00070006,0x00000101, + 0x00000004,0x73694866,0x79726f74,0x67696557,0x00007468,0x00050006,0x00000101,0x00000005, + 0x636f4c66,0x0000006b,0x000a0006,0x00000101,0x00000006,0x636f4c66,0x6e6f436b,0x62697274, + 0x6f697475,0x6968546e,0x61724673,0x0000656d,0x00360005,0x00000106,0x706d6f43,0x4d657475, + 0x654b7861,0x6c656e72,0x67696557,0x73287468,0x63757274,0x63412d74,0x756d7563,0x6974616c, + 0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266, + 0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373, + 0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366, + 0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d, + 0x3b313166,0x00000000,0x00040005,0x00000104,0x61726170,0x0000736d,0x00040005,0x00000105, + 0x61746164,0x00000000,0x00080005,0x00000109,0x64616f4c,0x70657250,0x64657261,0x6f6c6f43, + 0x69762872,0x00003b32,0x00050005,0x00000108,0x6d615369,0x50656c70,0x0000736f,0x00380005, + 0x0000010e,0x706d6f43,0x55657475,0x6d617370,0x64656c70,0x6f6c6f43,0x646e4172,0x67696557, + 0x73287468,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d, + 0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266, + 0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274, + 0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005, + 0x0000010c,0x61726170,0x0000736d,0x00040005,0x0000010d,0x61746164,0x00000000,0x00070005, + 0x00000111,0x70617257,0x74736948,0x2879726f,0x3b326976,0x00000000,0x00050005,0x00000110, + 0x53785069,0x6c706d61,0x00000065,0x000a0005,0x00000116,0x63746546,0x73694868,0x79726f74, + 0x706d6153,0x2873656c,0x3b326976,0x3b326976,0x00000000,0x00050005,0x00000114,0x53785069, + 0x6c706d61,0x00000065,0x00060005,0x00000115,0x78655469,0x65727574,0x657a6953,0x00000000, + 0x00080005,0x0000011b,0x74736948,0x5379726f,0x6c706d61,0x66762865,0x69763b32,0x00003b32, + 0x00050005,0x00000119,0x53765566,0x6c706d61,0x00000065,0x00060005,0x0000011a,0x78655469, + 0x65727574,0x657a6953,0x00000000,0x00090005,0x00000120,0x4d746547,0x6f69746f,0x6365566e, + 0x28726f74,0x3b326976,0x3b326676,0x00000000,0x00050005,0x0000011e,0x48785069,0x736f5072, + 0x00000000,0x00040005,0x0000011f,0x55724866,0x00000076,0x001e0005,0x00000125,0x706d6f43, + 0x52657475,0x6f727065,0x7463656a,0x56556465,0x74732873,0x74637572,0x6363412d,0x6c756d75, + 0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73,0x66762d32,0x66762d32, + 0x66762d32,0x66762d32,0x66762d32,0x31662d32,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x622d3166,0x31622d31,0x00003b31,0x00040005,0x00000124,0x61726170,0x0000736d,0x00350005, + 0x00000129,0x72706552,0x63656a6f,0x73694874,0x79726f74,0x6f6c6f43,0x74732872,0x74637572, + 0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73, + 0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x31662d32,0x2d31662d,0x662d3166, + 0x31662d31,0x2d31662d,0x622d3166,0x31622d31,0x74733b31,0x74637572,0x6363412d,0x6c756d75, + 0x6f697461,0x7361506e,0x74614473,0x74732d61,0x74637572,0x6365522d,0x69666974,0x69746163, + 0x6f426e6f,0x66762d78,0x66762d33,0x66762d33,0x66762d33,0x31662d33,0x66762d31,0x31662d33, + 0x3366762d,0x2d31662d,0x662d3166,0x003b3131,0x00040005,0x00000127,0x61726170,0x0000736d, + 0x00040005,0x00000128,0x61746164,0x00000000,0x00330005,0x0000012d,0x75636341,0x616c756d, + 0x73286574,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d, + 0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266, + 0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274, + 0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005, + 0x0000012b,0x61726170,0x0000736d,0x00040005,0x0000012c,0x61746164,0x00000000,0x00340005, + 0x00000131,0x74636552,0x48796669,0x6f747369,0x73287972,0x63757274,0x63412d74,0x756d7563, + 0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266, + 0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31, + 0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f, + 0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33, + 0x2d31662d,0x3b313166,0x00000000,0x00040005,0x0000012f,0x61726170,0x0000736d,0x00040005, + 0x00000130,0x61746164,0x00000000,0x00340005,0x00000136,0x61647055,0x6f4c6574,0x74536b63, + 0x73757461,0x72747328,0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43, + 0x61506e6f,0x736d6172,0x3269762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x662d3166,0x31622d31,0x3131622d,0x7274733b, + 0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x61746144,0x7274732d,0x2d746375, + 0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d, + 0x3131662d,0x3366762d,0x2d31662d,0x2d336676,0x662d3166,0x31662d31,0x00003b31,0x00040005, + 0x00000134,0x61726170,0x0000736d,0x00040005,0x00000135,0x61746164,0x00000000,0x00370005, + 0x0000013a,0x706d6f43,0x42657475,0x41657361,0x6d756363,0x74616c75,0x576e6f69,0x68676965, + 0x74732874,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d, + 0x6d617261,0x69762d73,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x31662d32, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3166,0x31622d31,0x74733b31,0x74637572, + 0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x74614473,0x74732d61,0x74637572,0x6365522d, + 0x69666974,0x69746163,0x6f426e6f,0x66762d78,0x66762d33,0x66762d33,0x66762d33,0x31662d33, + 0x66762d31,0x31662d33,0x3366762d,0x2d31662d,0x662d3166,0x003b3131,0x00040005,0x00000138, + 0x61726170,0x0000736d,0x00040005,0x00000139,0x61746164,0x00000000,0x00340005,0x00000140, + 0x74696e49,0x73736150,0x61746144,0x32697628,0x7274733b,0x2d746375,0x75636341,0x616c756d, + 0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f,0x736d6172,0x3269762d,0x3266762d,0x3266762d, + 0x3266762d,0x3266762d,0x3266762d,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x662d3166, + 0x31622d31,0x3131622d,0x7274733b,0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150, + 0x61746144,0x7274732d,0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d, + 0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366762d,0x2d31662d,0x2d336676,0x662d3166, + 0x31662d31,0x00003b31,0x00050005,0x0000013d,0x48785069,0x736f5072,0x00000000,0x00040005, + 0x0000013e,0x61726170,0x0000736d,0x00040005,0x0000013f,0x61746164,0x00000000,0x00060005, + 0x00000144,0x75636341,0x616c756d,0x76286574,0x003b3269,0x00050005,0x00000143,0x48785069, + 0x736f5072,0x00000000,0x00070005,0x00000194,0x53466263,0x50553352,0x4c414353,0x745f5245, + 0x00000000,0x00060006,0x00000194,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006, + 0x00000194,0x00000001,0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953, + 0x00000000,0x00070006,0x00000194,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000, + 0x000a0006,0x00000194,0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373, + 0x7a695365,0x00000065,0x00070006,0x00000194,0x00000004,0x78614d69,0x646e6552,0x69537265, + 0x0000657a,0x00070006,0x00000194,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69, + 0x00080006,0x00000194,0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00050006,0x00000194,0x00000007,0x74694a66,0x00726574,0x00090006,0x00000194,0x00000008, + 0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x00000194, + 0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x00000194, + 0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x00000194, + 0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c, + 0x006e6f69,0x00060006,0x00000194,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006, + 0x00000194,0x0000000d,0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068, + 0x00060006,0x00000194,0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x00000194, + 0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x00000194, + 0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000, + 0x00060006,0x00000194,0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x00000194, + 0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74,0x00080006,0x00000194,0x00000013, + 0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c,0x00080006,0x00000194,0x00000014, + 0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61,0x000a0006,0x00000194,0x00000015, + 0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006, + 0x00000194,0x00000016,0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d, + 0x6e6f6974,0x00000000,0x00060005,0x00000196,0x53466263,0x70553352,0x6c616373,0x00007265, + 0x00080005,0x000001ce,0x6e695f72,0x5f747570,0x6f6c6f63,0x696a5f72,0x72657474,0x00006465, + 0x00090005,0x000001d5,0x6e695f72,0x6e726574,0x755f6c61,0x61637370,0x5f64656c,0x6f6c6f63, + 0x00000072,0x00090005,0x000001dd,0x695f7772,0x7265746e,0x5f6c616e,0x63737075,0x64656c61, + 0x6c6f635f,0x0000726f,0x00070005,0x000001e3,0x755f7772,0x61637370,0x5f64656c,0x7074756f, + 0x00007475,0x00080005,0x000001eb,0x61665f72,0x65687472,0x645f7473,0x68747065,0x70696d5f, + 0x00000031,0x00060005,0x000001f3,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00070005, + 0x000001fe,0x756c5f72,0x695f616d,0x6174736e,0x696c6962,0x00007974,0x00060005,0x00000209, + 0x6e5f7772,0x6c5f7765,0x736b636f,0x00000000,0x00090005,0x00000214,0x69645f72,0x6574616c, + 0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005,0x0000021b,0x6f707865, + 0x65727573,0x00000000,0x00070005,0x0000021c,0x6e695f72,0x5f747570,0x6f707865,0x65727573, + 0x00000000,0x00090005,0x00000228,0x69645f72,0x6574616c,0x65725f64,0x69746361,0x6d5f6576, + 0x736b7361,0x00000000,0x00060005,0x0000023a,0x67696577,0x64657468,0x706d6153,0x0000656c, + 0x00040005,0x00000246,0x61726170,0x0000006d,0x00040005,0x0000024b,0x61726170,0x0000006d, + 0x00040005,0x0000024e,0x61726170,0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d, + 0x00040005,0x00000254,0x61726170,0x0000006d,0x00060005,0x00000257,0x67696577,0x64657468, + 0x706d6153,0x0000656c,0x00040005,0x00000283,0x44647473,0x00007665,0x00040005,0x00000290, + 0x62675266,0x00000000,0x00040005,0x000002ac,0x6f435966,0x00006743,0x00040005,0x000002d2, + 0x61726170,0x0000006d,0x00040005,0x000002d3,0x61726170,0x0000006d,0x00040005,0x000002d7, + 0x61726170,0x0000006d,0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002de, + 0x61726170,0x0000006d,0x00040005,0x000002df,0x61726170,0x0000006d,0x00040005,0x000002e8, + 0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170,0x0000006d,0x00040005,0x000002ef, + 0x61726170,0x0000006d,0x00040005,0x000002f2,0x61726170,0x0000006d,0x00040005,0x000002f5, + 0x61726170,0x0000006d,0x00040005,0x000002f6,0x61726170,0x0000006d,0x00040005,0x00000313, + 0x75736572,0x0000746c,0x00040005,0x0000031a,0x61726170,0x0000006d,0x00040005,0x0000031d, + 0x61726170,0x0000006d,0x00040005,0x0000031f,0x61726170,0x0000006d,0x00040005,0x00000320, + 0x61726170,0x0000006d,0x00040005,0x00000326,0x61726170,0x0000006d,0x00040005,0x00000329, + 0x61726170,0x0000006d,0x00040005,0x0000032b,0x61726170,0x0000006d,0x00040005,0x0000032c, + 0x61726170,0x0000006d,0x00060005,0x00000332,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69, + 0x00070005,0x00000337,0x616c4366,0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005, + 0x0000033c,0x61726170,0x0000006d,0x00040005,0x0000033e,0x61726170,0x0000006d,0x00040005, + 0x00000340,0x61726170,0x0000006d,0x00040005,0x00000341,0x61726170,0x0000006d,0x00050005, + 0x00000343,0x616c4366,0x6465706d,0x00007655,0x00040005,0x00000371,0x61726170,0x0000006d, + 0x00040005,0x00000372,0x61726170,0x0000006d,0x00040005,0x00000374,0x61726170,0x0000006d, + 0x00030005,0x00000379,0x00000061,0x00030005,0x0000037e,0x00000062,0x00040005,0x00000390, + 0x61726170,0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d,0x00040005,0x00000394, + 0x61726170,0x0000006d,0x00050005,0x00000399,0x69655766,0x30746867,0x00000000,0x00040005, + 0x0000039d,0x61726170,0x0000006d,0x00050005,0x0000039f,0x69655766,0x31746867,0x00000000, + 0x00040005,0x000003a3,0x61726170,0x0000006d,0x00050005,0x000003a5,0x69655766,0x32746867, + 0x00000000,0x00040005,0x000003a8,0x61726170,0x0000006d,0x00050005,0x000003aa,0x69655766, + 0x33746867,0x00000000,0x00040005,0x000003ad,0x61726170,0x0000006d,0x00050005,0x000003c9, + 0x6c6f4366,0x3058726f,0x00000000,0x00040005,0x000003ca,0x61726170,0x0000006d,0x00040005, + 0x000003cd,0x61726170,0x0000006d,0x00040005,0x000003d0,0x61726170,0x0000006d,0x00040005, + 0x000003d3,0x61726170,0x0000006d,0x00040005,0x000003d6,0x61726170,0x0000006d,0x00050005, + 0x000003da,0x6c6f4366,0x3158726f,0x00000000,0x00040005,0x000003dd,0x61726170,0x0000006d, + 0x00040005,0x000003e0,0x61726170,0x0000006d,0x00040005,0x000003e3,0x61726170,0x0000006d, + 0x00040005,0x000003e6,0x61726170,0x0000006d,0x00040005,0x000003e9,0x61726170,0x0000006d, + 0x00050005,0x000003ed,0x6c6f4366,0x3258726f,0x00000000,0x00040005,0x000003f1,0x61726170, + 0x0000006d,0x00040005,0x000003f4,0x61726170,0x0000006d,0x00040005,0x000003f7,0x61726170, + 0x0000006d,0x00040005,0x000003fa,0x61726170,0x0000006d,0x00040005,0x000003fd,0x61726170, + 0x0000006d,0x00050005,0x00000401,0x6c6f4366,0x3358726f,0x00000000,0x00040005,0x00000404, + 0x61726170,0x0000006d,0x00040005,0x00000407,0x61726170,0x0000006d,0x00040005,0x0000040a, + 0x61726170,0x0000006d,0x00040005,0x0000040d,0x61726170,0x0000006d,0x00040005,0x00000410, + 0x61726170,0x0000006d,0x00050005,0x00000414,0x6c6f4366,0x5958726f,0x00000000,0x00040005, + 0x00000415,0x61726170,0x0000006d,0x00040005,0x00000417,0x61726170,0x0000006d,0x00040005, + 0x00000419,0x61726170,0x0000006d,0x00040005,0x0000041b,0x61726170,0x0000006d,0x00040005, + 0x0000041d,0x61726170,0x0000006d,0x00070005,0x00000424,0x72654466,0x69676e69,0x6153676e, + 0x656c706d,0x00000073,0x00060005,0x0000042e,0x72654466,0x69676e69,0x694d676e,0x0000006e, + 0x00060005,0x00000431,0x72654466,0x69676e69,0x614d676e,0x00000078,0x00060005,0x00000434, + 0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x0000043d,0x61726170,0x0000006d, + 0x00040005,0x0000043f,0x61726170,0x0000006d,0x00040005,0x00000444,0x61726170,0x0000006d, + 0x00040005,0x00000446,0x61726170,0x0000006d,0x00040005,0x00000453,0x75736572,0x0000746c, + 0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045d,0x61726170,0x0000006d, + 0x00040005,0x0000045f,0x61726170,0x0000006d,0x00040005,0x00000460,0x61726170,0x0000006d, + 0x00040005,0x00000466,0x61726170,0x0000006d,0x00040005,0x00000469,0x61726170,0x0000006d, + 0x00040005,0x0000046b,0x61726170,0x0000006d,0x00040005,0x0000046c,0x61726170,0x0000006d, + 0x00080005,0x00000478,0x63725366,0x706d6153,0x664f656c,0x74657366,0x73616942,0x00006465, + 0x00060005,0x0000047d,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00040005,0x00000481, + 0x61726170,0x0000006d,0x00060005,0x00000486,0x72654b66,0x536c656e,0x42657a69,0x00736169, + 0x00040005,0x0000048f,0x61726170,0x0000006d,0x00040005,0x00000490,0x61726170,0x0000006d, + 0x00040005,0x00000495,0x62675266,0x00000000,0x00040005,0x00000497,0x61726170,0x0000006d, + 0x00040005,0x0000049a,0x61726170,0x0000006d,0x00040005,0x0000049b,0x61726170,0x0000006d, + 0x00060005,0x0000049f,0x65725066,0x65726170,0x6f435964,0x00006743,0x00040005,0x000004a0, + 0x61726170,0x0000006d,0x00060005,0x000004a6,0x74734466,0x7074754f,0x6f507475,0x00000073, + 0x00060005,0x000004aa,0x63725366,0x7074754f,0x6f507475,0x00000073,0x00060005,0x000004ae, + 0x63725369,0x75706e49,0x736f5074,0x00000000,0x00070005,0x000004b2,0x63725366,0x696a6e55, + 0x72657474,0x6f506465,0x00000073,0x00070005,0x000004b8,0x73614266,0x6d615365,0x4f656c70, + 0x65736666,0x00000074,0x00050005,0x000004bc,0x7366666f,0x4c547465,0x00000000,0x00050005, + 0x000004cd,0x696c4662,0x776f5270,0x00000000,0x00050005,0x000004d3,0x696c4662,0x6c6f4370, + 0x00000000,0x00050005,0x000004d9,0x66664f66,0x54746573,0x0000004c,0x00070005,0x000004dc, + 0x49734962,0x6974696e,0x61536c61,0x656c706d,0x00000000,0x00060005,0x000004df,0x6d615369, + 0x49656c70,0x7865646e,0x00000000,0x00030005,0x000004e0,0x00776f72,0x00030005,0x000004e8, + 0x006c6f63,0x00060005,0x000004f0,0x6d615369,0x43656c70,0x6f526c6f,0x00000077,0x00060005, + 0x00000504,0x63725369,0x706d6153,0x6f50656c,0x00000073,0x00060005,0x0000050a,0x6d615369, + 0x43656c70,0x64726f6f,0x00000000,0x00040005,0x0000050c,0x61726170,0x0000006d,0x00040005, + 0x0000050e,0x61726170,0x0000006d,0x00040005,0x0000050f,0x61726170,0x0000006d,0x00050005, + 0x00000514,0x6d615366,0x73656c70,0x00000000,0x00040005,0x00000516,0x61726170,0x0000006d, + 0x00040005,0x0000052c,0x61726170,0x0000006d,0x00040005,0x00000530,0x61726170,0x0000006d, + 0x00040005,0x00000532,0x61726170,0x0000006d,0x00060005,0x00000537,0x72654b66,0x426c656e, + 0x4d736169,0x00007861,0x00040005,0x00000538,0x61726170,0x0000006d,0x00060005,0x0000053c, + 0x72654b66,0x426c656e,0x4d736169,0x00006e69,0x00040005,0x00000541,0x61726170,0x0000006d, + 0x00040005,0x00000542,0x61726170,0x0000006d,0x00070005,0x00000544,0x72654b66,0x426c656e, + 0x57736169,0x68676965,0x00000074,0x00040005,0x0000054e,0x61726170,0x0000006d,0x00040005, + 0x00000550,0x61726170,0x0000006d,0x00040005,0x00000551,0x61726170,0x0000006d,0x00040005, + 0x00000553,0x61726170,0x0000006d,0x00040005,0x00000554,0x61726170,0x0000006d,0x00050005, + 0x00000556,0x72654b66,0x426c656e,0x00736169,0x00040005,0x00000557,0x61726170,0x0000006d, + 0x00040005,0x00000559,0x61726170,0x0000006d,0x00040005,0x0000055b,0x61726170,0x0000006d, + 0x00030005,0x0000055e,0x00776f72,0x00030005,0x00000566,0x006c6f63,0x00060005,0x0000056e, + 0x706d6173,0x6f43656c,0x776f526c,0x00000000,0x00040005,0x00000582,0x66664f66,0x00746573, + 0x00070005,0x00000587,0x63725366,0x706d6153,0x664f656c,0x74657366,0x00000000,0x00060005, + 0x0000058b,0x63725369,0x706d6153,0x6f50656c,0x00000073,0x00060005,0x00000591,0x536e4f66, + 0x65657263,0x6361466e,0x00726f74,0x00040005,0x00000594,0x61726170,0x0000006d,0x00040005, + 0x00000595,0x61726170,0x0000006d,0x00060005,0x0000059c,0x6d615366,0x57656c70,0x68676965, + 0x00000074,0x00040005,0x0000059e,0x61726170,0x0000006d,0x00040005,0x000005a0,0x61726170, + 0x0000006d,0x00070005,0x000005b2,0x63725366,0x706d6153,0x664f656c,0x74657366,0x00007153, + 0x00070005,0x000005b6,0x786f4266,0x706d6153,0x6557656c,0x74686769,0x00000000,0x00060005, + 0x000005bd,0x696e4962,0x6c616974,0x706d6153,0x0000656c,0x00040005,0x000005c7,0x61726170, + 0x0000006d,0x00040005,0x000005c9,0x61726170,0x0000006d,0x00040005,0x000005d5,0x61726170, + 0x0000006d,0x00040005,0x000005f4,0x61726170,0x0000006d,0x00040005,0x000005f7,0x61726170, + 0x0000006d,0x00040005,0x00000600,0x61726170,0x0000006d,0x00040005,0x00000604,0x61726170, + 0x0000006d,0x00040005,0x00000606,0x61726170,0x0000006d,0x00040005,0x0000060b,0x61726170, + 0x0000006d,0x00040005,0x00000610,0x706d6153,0x0073656c,0x00040005,0x00000612,0x61726170, + 0x0000006d,0x00040005,0x00000614,0x61726170,0x0000006d,0x00040005,0x00000615,0x61726170, + 0x0000006d,0x00040005,0x00000618,0x61726170,0x0000006d,0x00040005,0x0000061c,0x61726170, + 0x0000006d,0x00040005,0x0000061e,0x61726170,0x0000006d,0x00040005,0x0000061f,0x61726170, + 0x0000006d,0x00040005,0x00000622,0x61726170,0x0000006d,0x00040005,0x00000626,0x61726170, + 0x0000006d,0x00040005,0x00000628,0x61726170,0x0000006d,0x00040005,0x00000629,0x61726170, + 0x0000006d,0x00040005,0x0000062c,0x61726170,0x0000006d,0x00040005,0x00000630,0x61726170, + 0x0000006d,0x00040005,0x00000632,0x61726170,0x0000006d,0x00040005,0x00000633,0x61726170, + 0x0000006d,0x00040005,0x00000636,0x61726170,0x0000006d,0x00040005,0x0000063a,0x61726170, + 0x0000006d,0x00040005,0x0000063c,0x61726170,0x0000006d,0x00040005,0x0000063d,0x61726170, + 0x0000006d,0x00040005,0x00000640,0x61726170,0x0000006d,0x00040005,0x00000643,0x61726170, + 0x0000006d,0x00040005,0x00000645,0x61726170,0x0000006d,0x00040005,0x00000646,0x61726170, + 0x0000006d,0x00040005,0x00000649,0x61726170,0x0000006d,0x00040005,0x0000064d,0x61726170, + 0x0000006d,0x00040005,0x0000064f,0x61726170,0x0000006d,0x00040005,0x00000650,0x61726170, + 0x0000006d,0x00040005,0x00000653,0x61726170,0x0000006d,0x00040005,0x00000657,0x61726170, + 0x0000006d,0x00040005,0x00000659,0x61726170,0x0000006d,0x00040005,0x0000065a,0x61726170, + 0x0000006d,0x00040005,0x0000065d,0x61726170,0x0000006d,0x00040005,0x00000661,0x61726170, + 0x0000006d,0x00040005,0x00000663,0x61726170,0x0000006d,0x00040005,0x00000664,0x61726170, + 0x0000006d,0x00040005,0x00000667,0x61726170,0x0000006d,0x00040005,0x0000066b,0x61726170, + 0x0000006d,0x00040005,0x0000066d,0x61726170,0x0000006d,0x00040005,0x0000066e,0x61726170, + 0x0000006d,0x00040005,0x00000671,0x61726170,0x0000006d,0x00040005,0x00000675,0x61726170, + 0x0000006d,0x00040005,0x00000677,0x61726170,0x0000006d,0x00040005,0x00000678,0x61726170, + 0x0000006d,0x00040005,0x0000067b,0x61726170,0x0000006d,0x00040005,0x0000067f,0x61726170, + 0x0000006d,0x00040005,0x00000681,0x61726170,0x0000006d,0x00040005,0x00000682,0x61726170, + 0x0000006d,0x00040005,0x00000685,0x61726170,0x0000006d,0x00040005,0x00000689,0x61726170, + 0x0000006d,0x00040005,0x0000068b,0x61726170,0x0000006d,0x00040005,0x0000068c,0x61726170, + 0x0000006d,0x00040005,0x0000068f,0x61726170,0x0000006d,0x00040005,0x00000693,0x61726170, + 0x0000006d,0x00040005,0x00000695,0x61726170,0x0000006d,0x00040005,0x00000696,0x61726170, + 0x0000006d,0x00040005,0x00000699,0x61726170,0x0000006d,0x00040005,0x0000069d,0x61726170, + 0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a0,0x61726170, + 0x0000006d,0x00040005,0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006a7,0x61726170, + 0x0000006d,0x00040005,0x000006a9,0x61726170,0x0000006d,0x00040005,0x000006aa,0x61726170, + 0x0000006d,0x00040005,0x000006ad,0x61726170,0x0000006d,0x00050005,0x000006b3,0x53785066, + 0x6c706d61,0x00000065,0x00040005,0x000006b9,0x46785066,0x00636172,0x00040005,0x000006ba, + 0x61726170,0x0000006d,0x00040005,0x000006c1,0x61726170,0x0000006d,0x00040005,0x000006c2, + 0x61726170,0x0000006d,0x00040005,0x000006c6,0x61726170,0x0000006d,0x00040005,0x000006c7, + 0x61726170,0x0000006d,0x00040005,0x000006ce,0x61726170,0x0000006d,0x00040005,0x000006cf, + 0x61726170,0x0000006d,0x00040005,0x000006d3,0x61726170,0x0000006d,0x00040005,0x000006d4, + 0x61726170,0x0000006d,0x00050005,0x000006d7,0x53785069,0x6c706d61,0x00000065,0x00050005, + 0x000006db,0x6c6f4366,0x5958726f,0x00000000,0x00040005,0x000006dc,0x61726170,0x0000006d, + 0x00040005,0x000006de,0x61726170,0x0000006d,0x00040005,0x000006e1,0x61726170,0x0000006d, + 0x00040005,0x000006e2,0x61726170,0x0000006d,0x00080005,0x000006e8,0x6c694466,0x64657461, + 0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005,0x000006ee,0x61726170,0x0000006d, + 0x00040005,0x000006f9,0x61726170,0x0000006d,0x00070005,0x000006fe,0x70655266,0x656a6f72, + 0x64657463,0x74736948,0x0079726f,0x00040005,0x00000700,0x61726170,0x0000006d,0x00040005, + 0x00000702,0x61726170,0x0000006d,0x00040005,0x00000711,0x61726170,0x0000006d,0x00040005, + 0x00000727,0x61726170,0x0000006d,0x00040005,0x00000728,0x61726170,0x0000006d,0x00040005, + 0x0000072b,0x61726170,0x0000006d,0x00040005,0x0000072f,0x61726170,0x0000006d,0x00040005, + 0x00000731,0x61726170,0x0000006d,0x00040005,0x00000734,0x61726170,0x0000006d,0x00040005, + 0x00000738,0x61726170,0x0000006d,0x00040005,0x0000073a,0x61726170,0x0000006d,0x00040005, + 0x0000073d,0x706c4166,0x00006168,0x00040005,0x00000743,0x61726170,0x0000006d,0x00040005, + 0x00000745,0x61726170,0x0000006d,0x00040005,0x00000748,0x61726170,0x0000006d,0x00040005, + 0x0000074b,0x61726170,0x0000006d,0x00040005,0x0000074f,0x61726170,0x0000006d,0x00040005, + 0x00000754,0x61726170,0x0000006d,0x00070005,0x00000759,0x566b3466,0x636f6c65,0x46797469, + 0x6f746361,0x00000072,0x00040005,0x0000075d,0x61726170,0x0000006d,0x00060005,0x0000075f, + 0x73694466,0x636e6174,0x63614665,0x00726f74,0x00040005,0x00000764,0x61726170,0x0000006d, + 0x00070005,0x00000766,0x63634166,0x6c756d75,0x6f697461,0x6361466e,0x00726f74,0x00060005, + 0x00000769,0x61655266,0x76697463,0x63614665,0x00726f74,0x00040005,0x0000076a,0x61726170, + 0x0000006d,0x00040005,0x0000076c,0x61726170,0x0000006d,0x00080005,0x0000076e,0x61685366, + 0x676e6964,0x6e616843,0x61466567,0x726f7463,0x00000000,0x00050005,0x00000770,0x786f4266, + 0x6c616353,0x00005465,0x00040005,0x00000771,0x61726170,0x0000006d,0x00040005,0x00000773, + 0x61726170,0x0000006d,0x00040005,0x00000776,0x61726170,0x0000006d,0x00040005,0x00000778, + 0x61726170,0x0000006d,0x00040005,0x0000077a,0x61726170,0x0000006d,0x00040005,0x0000077c, + 0x61726170,0x0000006d,0x00040005,0x0000077e,0x61726170,0x0000006d,0x00040005,0x00000780, + 0x61726170,0x0000006d,0x00050005,0x00000782,0x786f4266,0x6c616353,0x00000065,0x00040005, + 0x00000784,0x61726170,0x0000006d,0x00040005,0x00000785,0x61726170,0x0000006d,0x00040005, + 0x00000786,0x61726170,0x0000006d,0x00060005,0x00000789,0x61635366,0x4264656c,0x6556786f, + 0x00000063,0x00080005,0x00000791,0x616c4366,0x6465706d,0x6c616353,0x6f426465,0x63655678, + 0x00000000,0x00040005,0x00000794,0x61726170,0x0000006d,0x00040005,0x00000796,0x61726170, + 0x0000006d,0x00090005,0x00000798,0x61725466,0x6f66736e,0x64656d72,0x74736948,0x4379726f, + 0x726f6c6f,0x00000000,0x00080005,0x000007a5,0x616c4366,0x6465706d,0x74736948,0x4379726f, + 0x726f6c6f,0x00000000,0x00090005,0x000007a8,0x6e694666,0x6c436c61,0x65706d61,0x73694864, + 0x79726f74,0x6f6c6f43,0x00000072,0x00080005,0x000007af,0x73694866,0x79726f74,0x746e6f43, + 0x75626972,0x6e6f6974,0x00000000,0x00040005,0x000007b0,0x61726170,0x0000006d,0x00040005, + 0x000007b2,0x61726170,0x0000006d,0x00040005,0x000007bb,0x61726170,0x0000006d,0x00040005, + 0x000007be,0x61726170,0x0000006d,0x00040005,0x000007c0,0x61726170,0x0000006d,0x00040005, + 0x000007c3,0x61726170,0x0000006d,0x00080005,0x000007cf,0x66694c66,0x6d697465,0x63654465, + 0x73616572,0x63614665,0x00726f74,0x00040005,0x000007d0,0x61726170,0x0000006d,0x00040005, + 0x000007d4,0x61726170,0x0000006d,0x00040005,0x000007d7,0x61726170,0x0000006d,0x00040005, + 0x000007db,0x61726170,0x0000006d,0x00040005,0x000007dc,0x61726170,0x0000006d,0x00040005, + 0x000007e3,0x61726170,0x0000006d,0x00040005,0x000007e4,0x61726170,0x0000006d,0x00040005, + 0x000007ea,0x61726170,0x0000006d,0x00040005,0x000007ed,0x61726170,0x0000006d,0x00070005, + 0x000007f0,0x77654e66,0x6b636f4c,0x65746e49,0x7469736e,0x00000079,0x00040005,0x000007f1, + 0x61726170,0x0000006d,0x00040005,0x000007f8,0x61726170,0x0000006d,0x00040005,0x000007f9, + 0x61726170,0x0000006d,0x00040005,0x00000803,0x61726170,0x0000006d,0x00040005,0x00000804, + 0x61726170,0x0000006d,0x00040005,0x00000806,0x61726170,0x0000006d,0x00040005,0x00000807, + 0x61726170,0x0000006d,0x00070005,0x0000080a,0x66694c66,0x6d697465,0x63654465,0x73616572, + 0x00000065,0x00040005,0x00000815,0x61726170,0x0000006d,0x00040005,0x00000816,0x61726170, + 0x0000006d,0x00080005,0x00000819,0x74734566,0x74616d69,0x76556465,0x7478654e,0x6d617246, + 0x00000065,0x00040005,0x0000081f,0x61726170,0x0000006d,0x00070005,0x00000829,0x73614266, + 0x63634165,0x6c756d75,0x6f697461,0x0000006e,0x00040005,0x00000830,0x61726170,0x0000006d, + 0x00040005,0x00000831,0x61726170,0x0000006d,0x00040005,0x00000833,0x61726170,0x0000006d, + 0x00040005,0x00000835,0x61726170,0x0000006d,0x00040005,0x00000837,0x61726170,0x0000006d, + 0x00040005,0x00000838,0x61726170,0x0000006d,0x00040005,0x0000083a,0x61726170,0x0000006d, + 0x00040005,0x0000083c,0x61726170,0x0000006d,0x00040005,0x00000842,0x55724866,0x00000076, + 0x00040005,0x00000855,0x61726170,0x0000006d,0x00040005,0x00000858,0x61726170,0x0000006d, + 0x00040005,0x00000859,0x61726170,0x0000006d,0x00040005,0x0000085c,0x61726170,0x0000006d, + 0x00040005,0x0000085e,0x61726170,0x0000006d,0x00040005,0x00000862,0x61726170,0x0000006d, + 0x00040005,0x00000867,0x61726170,0x0000006d,0x00080005,0x0000086b,0x6d754c66,0x736e4961, + 0x69626174,0x7974696c,0x485f7655,0x00000057,0x00040005,0x0000086e,0x61726170,0x0000006d, + 0x00040005,0x00000870,0x61726170,0x0000006d,0x00040005,0x00000871,0x61726170,0x0000006d, + 0x00040005,0x00000873,0x61726170,0x0000006d,0x00070005,0x00000877,0x72614666,0x73656874, + 0x70654474,0x76556874,0x00000000,0x00040005,0x0000087c,0x61726170,0x0000006d,0x00040005, + 0x0000087f,0x61726170,0x0000006d,0x00040005,0x00000880,0x61726170,0x0000006d,0x00040005, + 0x00000882,0x61726170,0x0000006d,0x00080005,0x00000890,0x6c694466,0x64657461,0x63616552, + 0x65766974,0x6b73614d,0x00000073,0x00040005,0x00000891,0x61726170,0x0000006d,0x00040005, + 0x00000895,0x61726170,0x0000006d,0x00040005,0x0000089a,0x61726170,0x0000006d,0x00040005, + 0x0000089f,0x61726170,0x0000006d,0x00040005,0x000008a4,0x61726170,0x0000006d,0x00040005, + 0x000008ba,0x61726170,0x0000736d,0x00040005,0x000008bb,0x61746164,0x00000000,0x00040005, + 0x000008bc,0x61726170,0x0000006d,0x00040005,0x000008be,0x61726170,0x0000006d,0x00040005, + 0x000008c0,0x61726170,0x0000006d,0x00040005,0x000008d0,0x61726170,0x0000006d,0x00040005, + 0x000008d4,0x61726170,0x0000006d,0x00040005,0x000008d6,0x61726170,0x0000006d,0x00040005, + 0x000008db,0x61726170,0x0000006d,0x00040005,0x000008e0,0x61726170,0x0000006d,0x00040005, + 0x000008e5,0x61726170,0x0000006d,0x00040005,0x000008ea,0x61726170,0x0000006d,0x00040005, + 0x000008f4,0x61726170,0x0000006d,0x00040005,0x000008f7,0x61726170,0x0000006d,0x00040005, + 0x00000902,0x61726170,0x0000006d,0x00040005,0x00000904,0x61726170,0x0000006d,0x00040005, + 0x00000906,0x61726170,0x0000006d,0x00040005,0x00000908,0x61726170,0x0000006d,0x00040005, + 0x0000090c,0x61726170,0x0000006d,0x00040005,0x0000090e,0x61726170,0x0000006d,0x00080005, + 0x00000912,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x00000916,0x61726170,0x0000006d,0x00060005,0x0000091a,0x6f505f73,0x43746e69,0x706d616c, + 0x00000000,0x00060005,0x0000091b,0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00060005, + 0x0000091c,0x616c5f72,0x6f7a636e,0x756c5f73,0x00000074,0x00030047,0x00000194,0x00000002, + 0x00050048,0x00000194,0x00000000,0x00000023,0x00000000,0x00050048,0x00000194,0x00000001, + 0x00000023,0x00000008,0x00050048,0x00000194,0x00000002,0x00000023,0x00000010,0x00050048, + 0x00000194,0x00000003,0x00000023,0x00000018,0x00050048,0x00000194,0x00000004,0x00000023, + 0x00000020,0x00050048,0x00000194,0x00000005,0x00000023,0x00000028,0x00050048,0x00000194, + 0x00000006,0x00000023,0x00000030,0x00050048,0x00000194,0x00000007,0x00000023,0x00000040, + 0x00050048,0x00000194,0x00000008,0x00000023,0x00000048,0x00050048,0x00000194,0x00000009, + 0x00000023,0x00000050,0x00050048,0x00000194,0x0000000a,0x00000023,0x00000058,0x00050048, + 0x00000194,0x0000000b,0x00000023,0x00000060,0x00050048,0x00000194,0x0000000c,0x00000023, + 0x00000068,0x00050048,0x00000194,0x0000000d,0x00000023,0x0000006c,0x00050048,0x00000194, + 0x0000000e,0x00000023,0x00000070,0x00050048,0x00000194,0x0000000f,0x00000023,0x00000074, + 0x00050048,0x00000194,0x00000010,0x00000023,0x00000078,0x00050048,0x00000194,0x00000011, + 0x00000023,0x0000007c,0x00050048,0x00000194,0x00000012,0x00000023,0x00000080,0x00050048, + 0x00000194,0x00000013,0x00000023,0x00000084,0x00050048,0x00000194,0x00000014,0x00000023, + 0x00000088,0x00050048,0x00000194,0x00000015,0x00000023,0x0000008c,0x00050048,0x00000194, + 0x00000016,0x00000023,0x00000090,0x00040047,0x00000196,0x00000021,0x0000000c,0x00040047, + 0x00000196,0x00000022,0x00000000,0x00040047,0x000001ce,0x00000021,0x00000008,0x00040047, + 0x000001ce,0x00000022,0x00000000,0x00040047,0x000001d5,0x00000021,0x00000003,0x00040047, + 0x000001d5,0x00000022,0x00000000,0x00030047,0x000001dd,0x00000019,0x00040047,0x000001dd, + 0x00000021,0x00000009,0x00040047,0x000001dd,0x00000022,0x00000000,0x00030047,0x000001e3, + 0x00000019,0x00040047,0x000001e3,0x00000021,0x0000000a,0x00040047,0x000001e3,0x00000022, + 0x00000000,0x00040047,0x000001eb,0x00000021,0x00000005,0x00040047,0x000001eb,0x00000022, + 0x00000000,0x00040047,0x000001f3,0x00000021,0x000003e9,0x00040047,0x000001f3,0x00000022, + 0x00000000,0x00040047,0x000001fe,0x00000021,0x00000007,0x00040047,0x000001fe,0x00000022, + 0x00000000,0x00040047,0x00000209,0x00000021,0x0000000b,0x00040047,0x00000209,0x00000022, + 0x00000000,0x00040047,0x00000214,0x00000021,0x00000002,0x00040047,0x00000214,0x00000022, + 0x00000000,0x00040047,0x0000021c,0x00000021,0x00000000,0x00040047,0x0000021c,0x00000022, + 0x00000000,0x00040047,0x00000228,0x00000021,0x00000001,0x00040047,0x00000228,0x00000022, + 0x00000000,0x00040047,0x00000912,0x0000000b,0x0000001c,0x00040047,0x0000091a,0x00000021, + 0x000003e8,0x00040047,0x0000091a,0x00000022,0x00000000,0x00040047,0x0000091b,0x00000021, + 0x00000006,0x00040047,0x0000091b,0x00000022,0x00000000,0x00040047,0x0000091c,0x00000021, + 0x00000004,0x00040047,0x0000091c,0x00000022,0x00000000,0x00040047,0x00000923,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, + 0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006, + 0x00000007,0x00000007,0x00000007,0x00040017,0x0000000e,0x00000006,0x00000003,0x00040020, + 0x0000000f,0x00000007,0x0000000e,0x00060021,0x00000010,0x0000000e,0x0000000f,0x0000000f, + 0x00000007,0x00040021,0x00000016,0x00000006,0x00000007,0x00040017,0x0000001a,0x00000006, + 0x00000002,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00040021,0x0000001c,0x0000001a, + 0x0000001b,0x00050021,0x00000020,0x00000006,0x00000007,0x00000007,0x00050021,0x00000025, + 0x0000001a,0x0000001b,0x0000001b,0x00050021,0x0000002a,0x0000000e,0x0000000f,0x0000000f, + 0x00040017,0x0000002f,0x00000006,0x00000004,0x00040020,0x00000030,0x00000007,0x0000002f, + 0x00050021,0x00000031,0x0000002f,0x00000030,0x00000030,0x00040015,0x00000036,0x00000020, + 0x00000001,0x00040020,0x00000037,0x00000007,0x00000036,0x00050021,0x00000038,0x00000036, + 0x00000037,0x00000037,0x00040017,0x00000055,0x00000036,0x00000002,0x00030021,0x00000056, + 0x00000055,0x00030021,0x0000005f,0x0000001a,0x00030021,0x00000064,0x00000006,0x00040020, + 0x0000006d,0x00000007,0x00000055,0x00040021,0x0000006e,0x0000000e,0x0000006d,0x00040021, + 0x00000072,0x0000002f,0x0000006d,0x00050021,0x00000076,0x00000002,0x0000006d,0x00000030, + 0x00050021,0x0000007b,0x00000002,0x0000006d,0x0000000f,0x00040021,0x00000082,0x00000006, + 0x0000001b,0x00040021,0x00000089,0x00000006,0x0000006d,0x00050021,0x0000008d,0x00000002, + 0x0000006d,0x00000007,0x00040021,0x00000092,0x0000001a,0x0000006d,0x00040021,0x00000098, + 0x0000002f,0x0000001b,0x0007001e,0x0000009f,0x0000000e,0x0000000e,0x0000000e,0x0000000e, + 0x00000006,0x00040020,0x000000a0,0x00000007,0x0000009f,0x00060021,0x000000a1,0x00000002, + 0x000000a0,0x0000000e,0x00000006,0x00020014,0x000000a7,0x00040020,0x000000a8,0x00000007, + 0x000000a7,0x00070021,0x000000a9,0x00000002,0x000000a8,0x000000a0,0x0000000e,0x00000006, + 0x00040021,0x000000b0,0x00000002,0x000000a0,0x00040021,0x000000b4,0x0000000e,0x0000000f, + 0x00040021,0x000000c1,0x000000a7,0x0000001b,0x00060021,0x000000c5,0x00000055,0x0000006d, + 0x0000006d,0x0000006d,0x00060021,0x000000cb,0x0000001a,0x0000001b,0x0000006d,0x0000006d, + 0x00050021,0x000000d1,0x000000a7,0x0000006d,0x0000006d,0x00080021,0x000000e2,0x0000002f, + 0x00000030,0x00000030,0x00000030,0x00000030,0x00000007,0x0012001e,0x000000ea,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x00040020, + 0x000000eb,0x00000007,0x000000ea,0x00050021,0x000000ec,0x0000002f,0x000000eb,0x0000001b, + 0x00050021,0x000000f6,0x00000002,0x000000a0,0x0000000f,0x00050021,0x000000fb,0x00000006, + 0x0000001b,0x00000007,0x0011001e,0x00000100,0x00000055,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x0000001a,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x000000a7,0x000000a7,0x0009001e,0x00000101,0x0000009f,0x0000000e,0x00000006, + 0x0000000e,0x00000006,0x00000006,0x00000006,0x00040020,0x00000102,0x00000007,0x00000101, + 0x00050021,0x00000103,0x00000006,0x00000100,0x00000102,0x00050021,0x0000010b,0x00000002, + 0x00000100,0x00000102,0x00050021,0x00000113,0x000000ea,0x0000006d,0x0000006d,0x00050021, + 0x00000118,0x0000002f,0x0000001b,0x0000006d,0x00050021,0x0000011d,0x0000001a,0x0000006d, + 0x0000001b,0x00040020,0x00000122,0x00000007,0x00000100,0x00040021,0x00000123,0x00000002, + 0x00000122,0x00050021,0x00000133,0x00000002,0x00000122,0x00000102,0x00060021,0x0000013c, + 0x00000002,0x0000006d,0x00000122,0x00000102,0x00040021,0x00000142,0x00000002,0x0000006d, + 0x0004002b,0x00000006,0x00000154,0x00000000,0x0004002b,0x00000006,0x00000155,0x3f800000, + 0x0019001e,0x00000194,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055, + 0x0000002f,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00040020,0x00000195,0x00000002,0x00000194,0x0004003b,0x00000195,0x00000196, + 0x00000002,0x0004002b,0x00000036,0x00000197,0x00000000,0x00040020,0x00000198,0x00000002, + 0x00000055,0x0004002b,0x00000036,0x0000019d,0x00000004,0x0004002b,0x00000036,0x000001a2, + 0x00000002,0x0004002b,0x00000036,0x000001a7,0x00000003,0x0004002b,0x00000036,0x000001ac, + 0x00000007,0x00040020,0x000001ad,0x00000002,0x0000001a,0x0004002b,0x00000036,0x000001b2, + 0x0000000a,0x0004002b,0x00000036,0x000001b7,0x0000000d,0x00040020,0x000001b8,0x00000002, + 0x00000006,0x0004002b,0x00000036,0x000001bd,0x0000000f,0x0004002b,0x00000036,0x000001c2, + 0x00000011,0x0004002b,0x00000036,0x000001c7,0x00000012,0x00090019,0x000001cc,0x00000006, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001cd, + 0x00000000,0x000001cc,0x0004003b,0x000001cd,0x000001ce,0x00000000,0x0004003b,0x000001cd, + 0x000001d5,0x00000000,0x00090019,0x000001db,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000002,0x00040020,0x000001dc,0x00000000,0x000001db,0x0004003b, + 0x000001dc,0x000001dd,0x00000000,0x00090019,0x000001e1,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x000001e2,0x00000000,0x000001e1, + 0x0004003b,0x000001e2,0x000001e3,0x00000000,0x0004003b,0x000001cd,0x000001eb,0x00000000, + 0x0002001a,0x000001f1,0x00040020,0x000001f2,0x00000000,0x000001f1,0x0004003b,0x000001f2, + 0x000001f3,0x00000000,0x0003001b,0x000001f5,0x000001cc,0x00040015,0x000001f9,0x00000020, + 0x00000000,0x0004002b,0x000001f9,0x000001fa,0x00000000,0x0004003b,0x000001cd,0x000001fe, + 0x00000000,0x00090019,0x00000207,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000000f,0x00040020,0x00000208,0x00000000,0x00000207,0x0004003b,0x00000208, + 0x00000209,0x00000000,0x0004003b,0x000001cd,0x00000214,0x00000000,0x0004003b,0x000001cd, + 0x0000021c,0x00000000,0x0005002c,0x00000055,0x0000021e,0x00000197,0x00000197,0x0004003b, + 0x000001cd,0x00000228,0x00000000,0x0004002b,0x00000006,0x00000231,0x45700000,0x0004002b, + 0x00000006,0x00000232,0x45070000,0x0005002c,0x0000001a,0x00000233,0x00000231,0x00000232, + 0x0004002b,0x00000036,0x0000023e,0x00000001,0x0004002b,0x00000006,0x0000026b,0x00800000, + 0x0004002b,0x000001f9,0x00000293,0x00000001,0x0004002b,0x000001f9,0x00000297,0x00000002, + 0x0004002b,0x00000006,0x000002ad,0x3e800000,0x0004002b,0x00000006,0x000002b1,0x3f000000, + 0x0004002b,0x00000006,0x000002c1,0xbe800000,0x0004002b,0x00000006,0x000002e7,0x387fda40, + 0x0005002c,0x0000001a,0x00000338,0x000002b1,0x000002b1,0x00040017,0x0000034c,0x000001f9, + 0x00000002,0x00040017,0x00000350,0x000000a7,0x00000002,0x0004002b,0x00000006,0x0000035c, + 0x40490fdb,0x0004002b,0x00000006,0x00000363,0x3fc90fdb,0x0004002b,0x00000006,0x00000370, + 0x40000000,0x0004002b,0x00000006,0x0000037a,0x3ecccccd,0x0004002b,0x00000006,0x00000382, + 0x3fc80000,0x0004002b,0x00000006,0x00000387,0x3f100000,0x0004002b,0x00000006,0x0000038f, + 0x40800000,0x0004002b,0x00000006,0x0000039a,0xbf800000,0x0004002b,0x00000006,0x000003a0, + 0x80000000,0x0004002b,0x00000036,0x000003db,0x00000005,0x0004002b,0x00000036,0x000003dc, + 0x00000006,0x0004002b,0x00000036,0x000003ee,0x00000008,0x0004002b,0x00000036,0x000003ef, + 0x00000009,0x0004002b,0x00000036,0x000003f0,0x0000000b,0x0004002b,0x00000036,0x00000402, + 0x0000000c,0x0004002b,0x00000036,0x00000403,0x0000000e,0x0004002b,0x000001f9,0x00000421, + 0x00000004,0x0004001c,0x00000422,0x0000002f,0x00000421,0x00040020,0x00000423,0x00000007, + 0x00000422,0x0004002b,0x00000006,0x0000048e,0x3ffeb852,0x0006002c,0x0000000e,0x00000496, + 0x00000154,0x00000154,0x00000154,0x0004002b,0x00000036,0x000004c2,0xfffffffe,0x0004002b, + 0x00000036,0x000004c3,0xffffffff,0x0004002b,0x000001f9,0x00000511,0x00000009,0x0004001c, + 0x00000512,0x0000000e,0x00000511,0x00040020,0x00000513,0x00000007,0x00000512,0x0004002b, + 0x00000006,0x0000053f,0x3e99999a,0x0004002b,0x00000006,0x0000054c,0x40a00000,0x0004002b, + 0x00000006,0x000005b7,0xc0133333,0x0004002b,0x00000006,0x000005ef,0x3d3d70a4,0x0005002c, + 0x00000055,0x00000611,0x000004c3,0x000004c3,0x0005002c,0x00000055,0x0000061b,0x00000197, + 0x000004c3,0x0005002c,0x00000055,0x00000625,0x0000023e,0x000004c3,0x0005002c,0x00000055, + 0x0000062f,0x000001a2,0x000004c3,0x0005002c,0x00000055,0x00000639,0x000004c3,0x00000197, + 0x0005002c,0x00000055,0x0000064c,0x0000023e,0x00000197,0x0005002c,0x00000055,0x00000656, + 0x000001a2,0x00000197,0x0005002c,0x00000055,0x00000660,0x000004c3,0x0000023e,0x0005002c, + 0x00000055,0x0000066a,0x00000197,0x0000023e,0x0005002c,0x00000055,0x00000674,0x0000023e, + 0x0000023e,0x0005002c,0x00000055,0x0000067e,0x000001a2,0x0000023e,0x0005002c,0x00000055, + 0x00000688,0x000004c3,0x000001a2,0x0005002c,0x00000055,0x00000692,0x00000197,0x000001a2, + 0x0005002c,0x00000055,0x0000069c,0x0000023e,0x000001a2,0x0005002c,0x00000055,0x000006a6, + 0x000001a2,0x000001a2,0x0004002b,0x000001f9,0x00000716,0x00000003,0x0004002b,0x00000006, + 0x0000075b,0x41a00000,0x0004002b,0x00000006,0x00000760,0x3f400000,0x0004002b,0x00000006, + 0x00000783,0x40400000,0x0004002b,0x00000006,0x0000078c,0x3fd9999a,0x0006002c,0x0000000e, + 0x0000078d,0x0000078c,0x00000155,0x00000155,0x0004002b,0x00000006,0x00000792,0x340018ef, + 0x0006002c,0x0000000e,0x00000793,0x00000792,0x00000792,0x00000792,0x0003002a,0x000000a7, + 0x000007c8,0x0004002b,0x00000006,0x0000080b,0x3dcccccd,0x00030029,0x000000a7,0x00000822, + 0x0004002b,0x00000006,0x0000082b,0x3e19999a,0x0004002b,0x00000006,0x000008ab,0x42c80000, + 0x00040017,0x00000910,0x000001f9,0x00000003,0x00040020,0x00000911,0x00000001,0x00000910, + 0x0004003b,0x00000911,0x00000912,0x00000001,0x0004002b,0x00000006,0x00000918,0x477fe000, + 0x0004002b,0x00000006,0x00000919,0x37801002,0x0004003b,0x000001f2,0x0000091a,0x00000000, + 0x0004003b,0x000001cd,0x0000091b,0x00000000,0x0004003b,0x000001cd,0x0000091c,0x00000000, + 0x0004002b,0x00000006,0x0000091d,0x7f7fffff,0x0004002b,0x00000006,0x0000091e,0x3a1fe868, + 0x0004002b,0x00000006,0x0000091f,0x3d800000,0x0004002b,0x00000006,0x00000920,0x3e400000, + 0x0004002b,0x00000006,0x00000921,0x461c4000,0x0004002b,0x000001f9,0x00000922,0x00000008, + 0x0006002c,0x00000910,0x00000923,0x00000922,0x00000922,0x00000293,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000006d,0x00000916, + 0x00000007,0x0004003d,0x00000910,0x00000913,0x00000912,0x0007004f,0x0000034c,0x00000914, + 0x00000913,0x00000913,0x00000000,0x00000001,0x0004007c,0x00000055,0x00000915,0x00000914, + 0x0003003e,0x00000916,0x00000915,0x00050039,0x00000002,0x00000917,0x00000144,0x00000916, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x00000146,0x00000009,0x0004003d,0x00000006, + 0x00000147,0x0000000a,0x0004003d,0x00000006,0x00000148,0x0000000b,0x0008000c,0x00000006, + 0x00000149,0x00000001,0x0000002e,0x00000146,0x00000147,0x00000148,0x000200fe,0x00000149, + 0x00010038,0x00050036,0x0000000e,0x00000014,0x00000000,0x00000010,0x00030037,0x0000000f, + 0x00000011,0x00030037,0x0000000f,0x00000012,0x00030037,0x00000007,0x00000013,0x000200f8, + 0x00000015,0x0004003d,0x0000000e,0x0000014c,0x00000011,0x0004003d,0x0000000e,0x0000014d, + 0x00000012,0x0004003d,0x00000006,0x0000014e,0x00000013,0x00060050,0x0000000e,0x0000014f, + 0x0000014e,0x0000014e,0x0000014e,0x0008000c,0x0000000e,0x00000150,0x00000001,0x0000002e, + 0x0000014c,0x0000014d,0x0000014f,0x000200fe,0x00000150,0x00010038,0x00050036,0x00000006, + 0x00000018,0x00000000,0x00000016,0x00030037,0x00000007,0x00000017,0x000200f8,0x00000019, + 0x0004003d,0x00000006,0x00000153,0x00000017,0x0008000c,0x00000006,0x00000156,0x00000001, + 0x0000002b,0x00000153,0x00000154,0x00000155,0x000200fe,0x00000156,0x00010038,0x00050036, + 0x0000001a,0x0000001e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x000200f8, + 0x0000001f,0x0004003d,0x0000001a,0x00000159,0x0000001d,0x0006000c,0x0000001a,0x0000015a, + 0x00000001,0x0000000a,0x00000159,0x000200fe,0x0000015a,0x00010038,0x00050036,0x00000006, + 0x00000023,0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x00030037,0x00000007, + 0x00000022,0x000200f8,0x00000024,0x0004003d,0x00000006,0x0000015d,0x00000021,0x0004003d, + 0x00000006,0x0000015e,0x00000022,0x0007000c,0x00000006,0x0000015f,0x00000001,0x00000025, + 0x0000015d,0x0000015e,0x000200fe,0x0000015f,0x00010038,0x00050036,0x0000001a,0x00000028, + 0x00000000,0x00000025,0x00030037,0x0000001b,0x00000026,0x00030037,0x0000001b,0x00000027, + 0x000200f8,0x00000029,0x0004003d,0x0000001a,0x00000162,0x00000026,0x0004003d,0x0000001a, + 0x00000163,0x00000027,0x0007000c,0x0000001a,0x00000164,0x00000001,0x00000025,0x00000162, + 0x00000163,0x000200fe,0x00000164,0x00010038,0x00050036,0x0000000e,0x0000002d,0x00000000, + 0x0000002a,0x00030037,0x0000000f,0x0000002b,0x00030037,0x0000000f,0x0000002c,0x000200f8, + 0x0000002e,0x0004003d,0x0000000e,0x00000167,0x0000002b,0x0004003d,0x0000000e,0x00000168, + 0x0000002c,0x0007000c,0x0000000e,0x00000169,0x00000001,0x00000025,0x00000167,0x00000168, + 0x000200fe,0x00000169,0x00010038,0x00050036,0x0000002f,0x00000034,0x00000000,0x00000031, + 0x00030037,0x00000030,0x00000032,0x00030037,0x00000030,0x00000033,0x000200f8,0x00000035, + 0x0004003d,0x0000002f,0x0000016c,0x00000032,0x0004003d,0x0000002f,0x0000016d,0x00000033, + 0x0007000c,0x0000002f,0x0000016e,0x00000001,0x00000025,0x0000016c,0x0000016d,0x000200fe, + 0x0000016e,0x00010038,0x00050036,0x00000036,0x0000003b,0x00000000,0x00000038,0x00030037, + 0x00000037,0x00000039,0x00030037,0x00000037,0x0000003a,0x000200f8,0x0000003c,0x0004003d, + 0x00000036,0x00000171,0x00000039,0x0004003d,0x00000036,0x00000172,0x0000003a,0x0007000c, + 0x00000036,0x00000173,0x00000001,0x00000027,0x00000171,0x00000172,0x000200fe,0x00000173, + 0x00010038,0x00050036,0x00000006,0x0000003f,0x00000000,0x00000020,0x00030037,0x00000007, + 0x0000003d,0x00030037,0x00000007,0x0000003e,0x000200f8,0x00000040,0x0004003d,0x00000006, + 0x00000176,0x0000003d,0x0004003d,0x00000006,0x00000177,0x0000003e,0x0007000c,0x00000006, + 0x00000178,0x00000001,0x00000028,0x00000176,0x00000177,0x000200fe,0x00000178,0x00010038, + 0x00050036,0x0000001a,0x00000043,0x00000000,0x00000025,0x00030037,0x0000001b,0x00000041, + 0x00030037,0x0000001b,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000001a,0x0000017b, + 0x00000041,0x0004003d,0x0000001a,0x0000017c,0x00000042,0x0007000c,0x0000001a,0x0000017d, + 0x00000001,0x00000028,0x0000017b,0x0000017c,0x000200fe,0x0000017d,0x00010038,0x00050036, + 0x0000000e,0x00000047,0x00000000,0x0000002a,0x00030037,0x0000000f,0x00000045,0x00030037, + 0x0000000f,0x00000046,0x000200f8,0x00000048,0x0004003d,0x0000000e,0x00000180,0x00000045, + 0x0004003d,0x0000000e,0x00000181,0x00000046,0x0007000c,0x0000000e,0x00000182,0x00000001, + 0x00000028,0x00000180,0x00000181,0x000200fe,0x00000182,0x00010038,0x00050036,0x0000002f, + 0x0000004b,0x00000000,0x00000031,0x00030037,0x00000030,0x00000049,0x00030037,0x00000030, + 0x0000004a,0x000200f8,0x0000004c,0x0004003d,0x0000002f,0x00000185,0x00000049,0x0004003d, + 0x0000002f,0x00000186,0x0000004a,0x0007000c,0x0000002f,0x00000187,0x00000001,0x00000028, + 0x00000185,0x00000186,0x000200fe,0x00000187,0x00010038,0x00050036,0x00000036,0x0000004f, + 0x00000000,0x00000038,0x00030037,0x00000037,0x0000004d,0x00030037,0x00000037,0x0000004e, + 0x000200f8,0x00000050,0x0004003d,0x00000036,0x0000018a,0x0000004d,0x0004003d,0x00000036, + 0x0000018b,0x0000004e,0x0007000c,0x00000036,0x0000018c,0x00000001,0x0000002a,0x0000018a, + 0x0000018b,0x000200fe,0x0000018c,0x00010038,0x00050036,0x00000006,0x00000053,0x00000000, + 0x00000020,0x00030037,0x00000007,0x00000051,0x00030037,0x00000007,0x00000052,0x000200f8, + 0x00000054,0x0004003d,0x00000006,0x0000018f,0x00000051,0x0004003d,0x00000006,0x00000190, + 0x00000052,0x0007000c,0x00000006,0x00000191,0x00000001,0x0000001a,0x0000018f,0x00000190, + 0x000200fe,0x00000191,0x00010038,0x00050036,0x00000055,0x00000057,0x00000000,0x00000056, + 0x000200f8,0x00000058,0x00050041,0x00000198,0x00000199,0x00000196,0x00000197,0x0004003d, + 0x00000055,0x0000019a,0x00000199,0x000200fe,0x0000019a,0x00010038,0x00050036,0x00000055, + 0x00000059,0x00000000,0x00000056,0x000200f8,0x0000005a,0x00050041,0x00000198,0x0000019e, + 0x00000196,0x0000019d,0x0004003d,0x00000055,0x0000019f,0x0000019e,0x000200fe,0x0000019f, + 0x00010038,0x00050036,0x00000055,0x0000005b,0x00000000,0x00000056,0x000200f8,0x0000005c, + 0x00050041,0x00000198,0x000001a3,0x00000196,0x000001a2,0x0004003d,0x00000055,0x000001a4, + 0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036,0x00000055,0x0000005d,0x00000000, + 0x00000056,0x000200f8,0x0000005e,0x00050041,0x00000198,0x000001a8,0x00000196,0x000001a7, + 0x0004003d,0x00000055,0x000001a9,0x000001a8,0x000200fe,0x000001a9,0x00010038,0x00050036, + 0x0000001a,0x00000060,0x00000000,0x0000005f,0x000200f8,0x00000061,0x00050041,0x000001ad, + 0x000001ae,0x00000196,0x000001ac,0x0004003d,0x0000001a,0x000001af,0x000001ae,0x000200fe, + 0x000001af,0x00010038,0x00050036,0x0000001a,0x00000062,0x00000000,0x0000005f,0x000200f8, + 0x00000063,0x00050041,0x000001ad,0x000001b3,0x00000196,0x000001b2,0x0004003d,0x0000001a, + 0x000001b4,0x000001b3,0x000200fe,0x000001b4,0x00010038,0x00050036,0x00000006,0x00000065, + 0x00000000,0x00000064,0x000200f8,0x00000066,0x00050041,0x000001b8,0x000001b9,0x00000196, + 0x000001b7,0x0004003d,0x00000006,0x000001ba,0x000001b9,0x000200fe,0x000001ba,0x00010038, + 0x00050036,0x00000006,0x00000067,0x00000000,0x00000064,0x000200f8,0x00000068,0x00050041, + 0x000001b8,0x000001be,0x00000196,0x000001bd,0x0004003d,0x00000006,0x000001bf,0x000001be, + 0x000200fe,0x000001bf,0x00010038,0x00050036,0x00000006,0x00000069,0x00000000,0x00000064, + 0x000200f8,0x0000006a,0x00050041,0x000001b8,0x000001c3,0x00000196,0x000001c2,0x0004003d, + 0x00000006,0x000001c4,0x000001c3,0x000200fe,0x000001c4,0x00010038,0x00050036,0x00000006, + 0x0000006b,0x00000000,0x00000064,0x000200f8,0x0000006c,0x00050041,0x000001b8,0x000001c8, + 0x00000196,0x000001c7,0x0004003d,0x00000006,0x000001c9,0x000001c8,0x000200fe,0x000001c9, + 0x00010038,0x00050036,0x0000000e,0x00000070,0x00000000,0x0000006e,0x00030037,0x0000006d, + 0x0000006f,0x000200f8,0x00000071,0x0004003d,0x000001cc,0x000001cf,0x000001ce,0x0004003d, + 0x00000055,0x000001d0,0x0000006f,0x0007005f,0x0000002f,0x000001d1,0x000001cf,0x000001d0, + 0x00000002,0x00000197,0x0008004f,0x0000000e,0x000001d2,0x000001d1,0x000001d1,0x00000000, + 0x00000001,0x00000002,0x000200fe,0x000001d2,0x00010038,0x00050036,0x0000002f,0x00000074, + 0x00000000,0x00000072,0x00030037,0x0000006d,0x00000073,0x000200f8,0x00000075,0x0004003d, + 0x000001cc,0x000001d6,0x000001d5,0x0004003d,0x00000055,0x000001d7,0x00000073,0x0007005f, + 0x0000002f,0x000001d8,0x000001d6,0x000001d7,0x00000002,0x00000197,0x000200fe,0x000001d8, + 0x00010038,0x00050036,0x00000002,0x00000079,0x00000000,0x00000076,0x00030037,0x0000006d, + 0x00000077,0x00030037,0x00000030,0x00000078,0x000200f8,0x0000007a,0x0004003d,0x000001db, + 0x000001de,0x000001dd,0x0004003d,0x00000055,0x000001df,0x00000077,0x0004003d,0x0000002f, + 0x000001e0,0x00000078,0x00040063,0x000001de,0x000001df,0x000001e0,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000007e,0x00000000,0x0000007b,0x00030037,0x0000006d,0x0000007c, + 0x00030037,0x0000000f,0x0000007d,0x000200f8,0x0000007f,0x0004003d,0x000001e1,0x000001e4, + 0x000001e3,0x0004003d,0x00000055,0x000001e5,0x0000007c,0x0004003d,0x0000000e,0x000001e6, + 0x0000007d,0x00050051,0x00000006,0x000001e7,0x000001e6,0x00000000,0x00050051,0x00000006, + 0x000001e8,0x000001e6,0x00000001,0x00050051,0x00000006,0x000001e9,0x000001e6,0x00000002, + 0x00070050,0x0000002f,0x000001ea,0x000001e7,0x000001e8,0x000001e9,0x00000155,0x00040063, + 0x000001e4,0x000001e5,0x000001ea,0x000100fd,0x00010038,0x00050036,0x00000055,0x00000080, + 0x00000000,0x00000056,0x000200f8,0x00000081,0x0004003d,0x000001cc,0x000001ec,0x000001eb, + 0x00050067,0x00000055,0x000001ed,0x000001ec,0x00000197,0x000200fe,0x000001ed,0x00010038, + 0x00050036,0x00000006,0x00000084,0x00000000,0x00000082,0x00030037,0x0000001b,0x00000083, + 0x000200f8,0x00000085,0x0004003d,0x000001cc,0x000001f0,0x000001eb,0x0004003d,0x000001f1, + 0x000001f4,0x000001f3,0x00050056,0x000001f5,0x000001f6,0x000001f0,0x000001f4,0x0004003d, + 0x0000001a,0x000001f7,0x00000083,0x00070058,0x0000002f,0x000001f8,0x000001f6,0x000001f7, + 0x00000002,0x00000154,0x00050051,0x00000006,0x000001fb,0x000001f8,0x00000000,0x000200fe, + 0x000001fb,0x00010038,0x00050036,0x00000006,0x00000087,0x00000000,0x00000082,0x00030037, + 0x0000001b,0x00000086,0x000200f8,0x00000088,0x0004003d,0x000001cc,0x000001ff,0x000001fe, + 0x0004003d,0x000001f1,0x00000200,0x000001f3,0x00050056,0x000001f5,0x00000201,0x000001ff, + 0x00000200,0x0004003d,0x0000001a,0x00000202,0x00000086,0x00070058,0x0000002f,0x00000203, + 0x00000201,0x00000202,0x00000002,0x00000154,0x00050051,0x00000006,0x00000204,0x00000203, + 0x00000000,0x000200fe,0x00000204,0x00010038,0x00050036,0x00000006,0x0000008b,0x00000000, + 0x00000089,0x00030037,0x0000006d,0x0000008a,0x000200f8,0x0000008c,0x0004003d,0x00000207, + 0x0000020a,0x00000209,0x0004003d,0x00000055,0x0000020b,0x0000008a,0x00050062,0x0000002f, + 0x0000020c,0x0000020a,0x0000020b,0x00050051,0x00000006,0x0000020d,0x0000020c,0x00000000, + 0x000200fe,0x0000020d,0x00010038,0x00050036,0x00000002,0x00000090,0x00000000,0x0000008d, + 0x00030037,0x0000006d,0x0000008e,0x00030037,0x00000007,0x0000008f,0x000200f8,0x00000091, + 0x0004003d,0x00000207,0x00000210,0x00000209,0x0004003d,0x00000055,0x00000211,0x0000008e, + 0x0004003d,0x00000006,0x00000212,0x0000008f,0x00070050,0x0000002f,0x00000213,0x00000212, + 0x00000154,0x00000154,0x00000154,0x00040063,0x00000210,0x00000211,0x00000213,0x000100fd, + 0x00010038,0x00050036,0x0000001a,0x00000094,0x00000000,0x00000092,0x00030037,0x0000006d, + 0x00000093,0x000200f8,0x00000095,0x0004003d,0x000001cc,0x00000215,0x00000214,0x0004003d, + 0x00000055,0x00000216,0x00000093,0x0007005f,0x0000002f,0x00000217,0x00000215,0x00000216, + 0x00000002,0x00000197,0x0007004f,0x0000001a,0x00000218,0x00000217,0x00000217,0x00000000, + 0x00000001,0x000200fe,0x00000218,0x00010038,0x00050036,0x00000006,0x00000096,0x00000000, + 0x00000064,0x000200f8,0x00000097,0x0004003b,0x00000007,0x0000021b,0x00000007,0x0004003d, + 0x000001cc,0x0000021d,0x0000021c,0x0007005f,0x0000002f,0x0000021f,0x0000021d,0x0000021e, + 0x00000002,0x00000197,0x00050051,0x00000006,0x00000220,0x0000021f,0x00000000,0x0003003e, + 0x0000021b,0x00000220,0x0004003d,0x00000006,0x00000221,0x0000021b,0x000500b4,0x000000a7, + 0x00000222,0x00000221,0x00000154,0x000300f7,0x00000224,0x00000000,0x000400fa,0x00000222, + 0x00000223,0x00000224,0x000200f8,0x00000223,0x0003003e,0x0000021b,0x00000155,0x000200f9, + 0x00000224,0x000200f8,0x00000224,0x0004003d,0x00000006,0x00000225,0x0000021b,0x000200fe, + 0x00000225,0x00010038,0x00050036,0x0000002f,0x0000009a,0x00000000,0x00000098,0x00030037, + 0x0000001b,0x00000099,0x000200f8,0x0000009b,0x0004003d,0x000001cc,0x00000229,0x00000228, + 0x0004003d,0x000001f1,0x0000022a,0x000001f3,0x00050056,0x000001f5,0x0000022b,0x00000229, + 0x0000022a,0x0004003d,0x0000001a,0x0000022c,0x00000099,0x00070058,0x0000002f,0x0000022d, + 0x0000022b,0x0000022c,0x00000002,0x00000154,0x000200fe,0x0000022d,0x00010038,0x00050036, + 0x00000006,0x0000009d,0x00000000,0x00000082,0x00030037,0x0000001b,0x0000009c,0x000200f8, + 0x0000009e,0x0004003d,0x0000001a,0x00000230,0x0000009c,0x00050085,0x0000001a,0x00000234, + 0x00000230,0x00000233,0x0006000c,0x00000006,0x00000235,0x00000001,0x00000042,0x00000234, + 0x000200fe,0x00000235,0x00010038,0x00050036,0x00000002,0x000000a5,0x00000000,0x000000a1, + 0x00030037,0x000000a0,0x000000a2,0x00030037,0x0000000e,0x000000a3,0x00030037,0x00000006, + 0x000000a4,0x000200f8,0x000000a6,0x0004003b,0x0000000f,0x0000023a,0x00000007,0x00050041, + 0x0000000f,0x00000238,0x000000a2,0x000001a2,0x0003003e,0x00000238,0x000000a3,0x00050041, + 0x0000000f,0x00000239,0x000000a2,0x000001a7,0x0003003e,0x00000239,0x000000a3,0x0005008e, + 0x0000000e,0x0000023b,0x000000a3,0x000000a4,0x0003003e,0x0000023a,0x0000023b,0x0004003d, + 0x0000000e,0x0000023c,0x0000023a,0x00050041,0x0000000f,0x0000023d,0x000000a2,0x00000197, + 0x0003003e,0x0000023d,0x0000023c,0x0004003d,0x0000000e,0x0000023f,0x0000023a,0x00050085, + 0x0000000e,0x00000240,0x000000a3,0x0000023f,0x00050041,0x0000000f,0x00000241,0x000000a2, + 0x0000023e,0x0003003e,0x00000241,0x00000240,0x00050041,0x00000007,0x00000242,0x000000a2, + 0x0000019d,0x0003003e,0x00000242,0x000000a4,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000ae,0x00000000,0x000000a9,0x00030037,0x000000a8,0x000000aa,0x00030037,0x000000a0, + 0x000000ab,0x00030037,0x0000000e,0x000000ac,0x00030037,0x00000006,0x000000ad,0x000200f8, + 0x000000af,0x0004003b,0x000000a0,0x00000246,0x00000007,0x0004003b,0x0000000f,0x0000024b, + 0x00000007,0x0004003b,0x0000000f,0x0000024e,0x00000007,0x0004003b,0x0000000f,0x00000251, + 0x00000007,0x0004003b,0x0000000f,0x00000254,0x00000007,0x0004003b,0x0000000f,0x00000257, + 0x00000007,0x0004003d,0x000000a7,0x00000243,0x000000aa,0x000300f7,0x00000245,0x00000000, + 0x000400fa,0x00000243,0x00000244,0x0000024a,0x000200f8,0x00000244,0x0004003d,0x0000009f, + 0x00000247,0x000000ab,0x0003003e,0x00000246,0x00000247,0x00070039,0x00000002,0x00000248, + 0x000000a5,0x00000246,0x000000ac,0x000000ad,0x0004003d,0x0000009f,0x00000249,0x00000246, + 0x0003003e,0x000000ab,0x00000249,0x000200f9,0x00000245,0x000200f8,0x0000024a,0x00050041, + 0x0000000f,0x0000024c,0x000000ab,0x000001a2,0x0004003d,0x0000000e,0x0000024d,0x0000024c, + 0x0003003e,0x0000024b,0x0000024d,0x0003003e,0x0000024e,0x000000ac,0x00060039,0x0000000e, + 0x0000024f,0x0000002d,0x0000024b,0x0000024e,0x00050041,0x0000000f,0x00000250,0x000000ab, + 0x000001a2,0x0003003e,0x00000250,0x0000024f,0x00050041,0x0000000f,0x00000252,0x000000ab, + 0x000001a7,0x0004003d,0x0000000e,0x00000253,0x00000252,0x0003003e,0x00000251,0x00000253, + 0x0003003e,0x00000254,0x000000ac,0x00060039,0x0000000e,0x00000255,0x00000047,0x00000251, + 0x00000254,0x00050041,0x0000000f,0x00000256,0x000000ab,0x000001a7,0x0003003e,0x00000256, + 0x00000255,0x0005008e,0x0000000e,0x00000258,0x000000ac,0x000000ad,0x0003003e,0x00000257, + 0x00000258,0x0004003d,0x0000000e,0x00000259,0x00000257,0x00050041,0x0000000f,0x0000025a, + 0x000000ab,0x00000197,0x0004003d,0x0000000e,0x0000025b,0x0000025a,0x00050081,0x0000000e, + 0x0000025c,0x0000025b,0x00000259,0x00050041,0x0000000f,0x0000025d,0x000000ab,0x00000197, + 0x0003003e,0x0000025d,0x0000025c,0x0004003d,0x0000000e,0x0000025e,0x00000257,0x00050085, + 0x0000000e,0x0000025f,0x000000ac,0x0000025e,0x00050041,0x0000000f,0x00000260,0x000000ab, + 0x0000023e,0x0004003d,0x0000000e,0x00000261,0x00000260,0x00050081,0x0000000e,0x00000262, + 0x00000261,0x0000025f,0x00050041,0x0000000f,0x00000263,0x000000ab,0x0000023e,0x0003003e, + 0x00000263,0x00000262,0x00050041,0x00000007,0x00000264,0x000000ab,0x0000019d,0x0004003d, + 0x00000006,0x00000265,0x00000264,0x00050081,0x00000006,0x00000266,0x00000265,0x000000ad, + 0x00050041,0x00000007,0x00000267,0x000000ab,0x0000019d,0x0003003e,0x00000267,0x00000266, + 0x000200f9,0x00000245,0x000200f8,0x00000245,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000b2,0x00000000,0x000000b0,0x00030037,0x000000a0,0x000000b1,0x000200f8,0x000000b3, + 0x0004003b,0x00000007,0x0000026d,0x00000007,0x0004003b,0x0000000f,0x00000283,0x00000007, + 0x00050041,0x00000007,0x00000268,0x000000b1,0x0000019d,0x0004003d,0x00000006,0x00000269, + 0x00000268,0x0006000c,0x00000006,0x0000026a,0x00000001,0x00000004,0x00000269,0x000500ba, + 0x000000a7,0x0000026c,0x0000026a,0x0000026b,0x000300f7,0x0000026f,0x00000000,0x000400fa, + 0x0000026c,0x0000026e,0x00000272,0x000200f8,0x0000026e,0x00050041,0x00000007,0x00000270, + 0x000000b1,0x0000019d,0x0004003d,0x00000006,0x00000271,0x00000270,0x0003003e,0x0000026d, + 0x00000271,0x000200f9,0x0000026f,0x000200f8,0x00000272,0x0003003e,0x0000026d,0x00000155, + 0x000200f9,0x0000026f,0x000200f8,0x0000026f,0x0004003d,0x00000006,0x00000273,0x0000026d, + 0x00050041,0x00000007,0x00000274,0x000000b1,0x0000019d,0x0003003e,0x00000274,0x00000273, + 0x00050041,0x00000007,0x00000275,0x000000b1,0x0000019d,0x0004003d,0x00000006,0x00000276, + 0x00000275,0x00050041,0x0000000f,0x00000277,0x000000b1,0x00000197,0x0004003d,0x0000000e, + 0x00000278,0x00000277,0x00060050,0x0000000e,0x00000279,0x00000276,0x00000276,0x00000276, + 0x00050088,0x0000000e,0x0000027a,0x00000278,0x00000279,0x00050041,0x0000000f,0x0000027b, + 0x000000b1,0x00000197,0x0003003e,0x0000027b,0x0000027a,0x00050041,0x00000007,0x0000027c, + 0x000000b1,0x0000019d,0x0004003d,0x00000006,0x0000027d,0x0000027c,0x00050041,0x0000000f, + 0x0000027e,0x000000b1,0x0000023e,0x0004003d,0x0000000e,0x0000027f,0x0000027e,0x00060050, + 0x0000000e,0x00000280,0x0000027d,0x0000027d,0x0000027d,0x00050088,0x0000000e,0x00000281, + 0x0000027f,0x00000280,0x00050041,0x0000000f,0x00000282,0x000000b1,0x0000023e,0x0003003e, + 0x00000282,0x00000281,0x00050041,0x0000000f,0x00000284,0x000000b1,0x0000023e,0x0004003d, + 0x0000000e,0x00000285,0x00000284,0x00050041,0x0000000f,0x00000286,0x000000b1,0x00000197, + 0x0004003d,0x0000000e,0x00000287,0x00000286,0x00050041,0x0000000f,0x00000288,0x000000b1, + 0x00000197,0x0004003d,0x0000000e,0x00000289,0x00000288,0x00050085,0x0000000e,0x0000028a, + 0x00000287,0x00000289,0x00050083,0x0000000e,0x0000028b,0x00000285,0x0000028a,0x0006000c, + 0x0000000e,0x0000028c,0x00000001,0x00000004,0x0000028b,0x0006000c,0x0000000e,0x0000028d, + 0x00000001,0x0000001f,0x0000028c,0x0003003e,0x00000283,0x0000028d,0x0004003d,0x0000000e, + 0x0000028e,0x00000283,0x00050041,0x0000000f,0x0000028f,0x000000b1,0x0000023e,0x0003003e, + 0x0000028f,0x0000028e,0x000100fd,0x00010038,0x00050036,0x0000000e,0x000000b6,0x00000000, + 0x000000b4,0x00030037,0x0000000f,0x000000b5,0x000200f8,0x000000b7,0x0004003b,0x0000000f, + 0x00000290,0x00000007,0x00050041,0x00000007,0x00000291,0x000000b5,0x000001fa,0x0004003d, + 0x00000006,0x00000292,0x00000291,0x00050041,0x00000007,0x00000294,0x000000b5,0x00000293, + 0x0004003d,0x00000006,0x00000295,0x00000294,0x00050081,0x00000006,0x00000296,0x00000292, + 0x00000295,0x00050041,0x00000007,0x00000298,0x000000b5,0x00000297,0x0004003d,0x00000006, + 0x00000299,0x00000298,0x00050083,0x00000006,0x0000029a,0x00000296,0x00000299,0x00050041, + 0x00000007,0x0000029b,0x000000b5,0x000001fa,0x0004003d,0x00000006,0x0000029c,0x0000029b, + 0x00050041,0x00000007,0x0000029d,0x000000b5,0x00000297,0x0004003d,0x00000006,0x0000029e, + 0x0000029d,0x00050081,0x00000006,0x0000029f,0x0000029c,0x0000029e,0x00050041,0x00000007, + 0x000002a0,0x000000b5,0x000001fa,0x0004003d,0x00000006,0x000002a1,0x000002a0,0x00050041, + 0x00000007,0x000002a2,0x000000b5,0x00000293,0x0004003d,0x00000006,0x000002a3,0x000002a2, + 0x00050083,0x00000006,0x000002a4,0x000002a1,0x000002a3,0x00050041,0x00000007,0x000002a5, + 0x000000b5,0x00000297,0x0004003d,0x00000006,0x000002a6,0x000002a5,0x00050083,0x00000006, + 0x000002a7,0x000002a4,0x000002a6,0x00060050,0x0000000e,0x000002a8,0x0000029a,0x0000029f, + 0x000002a7,0x0003003e,0x00000290,0x000002a8,0x0004003d,0x0000000e,0x000002a9,0x00000290, + 0x000200fe,0x000002a9,0x00010038,0x00050036,0x0000000e,0x000000b9,0x00000000,0x000000b4, + 0x00030037,0x0000000f,0x000000b8,0x000200f8,0x000000ba,0x0004003b,0x0000000f,0x000002ac, + 0x00000007,0x00050041,0x00000007,0x000002ae,0x000000b8,0x000001fa,0x0004003d,0x00000006, + 0x000002af,0x000002ae,0x00050085,0x00000006,0x000002b0,0x000002ad,0x000002af,0x00050041, + 0x00000007,0x000002b2,0x000000b8,0x00000293,0x0004003d,0x00000006,0x000002b3,0x000002b2, + 0x00050085,0x00000006,0x000002b4,0x000002b1,0x000002b3,0x00050081,0x00000006,0x000002b5, + 0x000002b0,0x000002b4,0x00050041,0x00000007,0x000002b6,0x000000b8,0x00000297,0x0004003d, + 0x00000006,0x000002b7,0x000002b6,0x00050085,0x00000006,0x000002b8,0x000002ad,0x000002b7, + 0x00050081,0x00000006,0x000002b9,0x000002b5,0x000002b8,0x00050041,0x00000007,0x000002ba, + 0x000000b8,0x000001fa,0x0004003d,0x00000006,0x000002bb,0x000002ba,0x00050085,0x00000006, + 0x000002bc,0x000002b1,0x000002bb,0x00050041,0x00000007,0x000002bd,0x000000b8,0x00000297, + 0x0004003d,0x00000006,0x000002be,0x000002bd,0x00050085,0x00000006,0x000002bf,0x000002b1, + 0x000002be,0x00050083,0x00000006,0x000002c0,0x000002bc,0x000002bf,0x00050041,0x00000007, + 0x000002c2,0x000000b8,0x000001fa,0x0004003d,0x00000006,0x000002c3,0x000002c2,0x00050085, + 0x00000006,0x000002c4,0x000002c1,0x000002c3,0x00050041,0x00000007,0x000002c5,0x000000b8, + 0x00000293,0x0004003d,0x00000006,0x000002c6,0x000002c5,0x00050085,0x00000006,0x000002c7, + 0x000002b1,0x000002c6,0x00050081,0x00000006,0x000002c8,0x000002c4,0x000002c7,0x00050041, + 0x00000007,0x000002c9,0x000000b8,0x00000297,0x0004003d,0x00000006,0x000002ca,0x000002c9, + 0x00050085,0x00000006,0x000002cb,0x000002ad,0x000002ca,0x00050083,0x00000006,0x000002cc, + 0x000002c8,0x000002cb,0x00060050,0x0000000e,0x000002cd,0x000002b9,0x000002c0,0x000002cc, + 0x0003003e,0x000002ac,0x000002cd,0x0004003d,0x0000000e,0x000002ce,0x000002ac,0x000200fe, + 0x000002ce,0x00010038,0x00050036,0x0000000e,0x000000bc,0x00000000,0x000000b4,0x00030037, + 0x0000000f,0x000000bb,0x000200f8,0x000000bd,0x0004003b,0x00000007,0x000002d2,0x00000007, + 0x0004003b,0x00000007,0x000002d3,0x00000007,0x0004003b,0x00000007,0x000002d7,0x00000007, + 0x0004003b,0x00000007,0x000002da,0x00000007,0x0004003b,0x00000007,0x000002de,0x00000007, + 0x0004003b,0x00000007,0x000002df,0x00000007,0x0004003d,0x0000000e,0x000002d1,0x000000bb, + 0x0003003e,0x000002d2,0x00000154,0x00050041,0x00000007,0x000002d4,0x000000bb,0x000001fa, + 0x0004003d,0x00000006,0x000002d5,0x000002d4,0x0003003e,0x000002d3,0x000002d5,0x00060039, + 0x00000006,0x000002d6,0x0000003f,0x000002d2,0x000002d3,0x00050041,0x00000007,0x000002d8, + 0x000000bb,0x00000293,0x0004003d,0x00000006,0x000002d9,0x000002d8,0x0003003e,0x000002d7, + 0x000002d9,0x00050041,0x00000007,0x000002db,0x000000bb,0x00000297,0x0004003d,0x00000006, + 0x000002dc,0x000002db,0x0003003e,0x000002da,0x000002dc,0x00060039,0x00000006,0x000002dd, + 0x0000003f,0x000002d7,0x000002da,0x0003003e,0x000002de,0x000002d6,0x0003003e,0x000002df, + 0x000002dd,0x00060039,0x00000006,0x000002e0,0x0000003f,0x000002de,0x000002df,0x00050081, + 0x00000006,0x000002e1,0x000002e0,0x00000155,0x00060050,0x0000000e,0x000002e2,0x000002e1, + 0x000002e1,0x000002e1,0x00050088,0x0000000e,0x000002e3,0x000002d1,0x000002e2,0x000200fe, + 0x000002e3,0x00010038,0x00050036,0x0000000e,0x000000bf,0x00000000,0x000000b4,0x00030037, + 0x0000000f,0x000000be,0x000200f8,0x000000c0,0x0004003b,0x00000007,0x000002e8,0x00000007, + 0x0004003b,0x00000007,0x000002eb,0x00000007,0x0004003b,0x00000007,0x000002ef,0x00000007, + 0x0004003b,0x00000007,0x000002f2,0x00000007,0x0004003b,0x00000007,0x000002f5,0x00000007, + 0x0004003b,0x00000007,0x000002f6,0x00000007,0x0004003d,0x0000000e,0x000002e6,0x000000be, + 0x00050041,0x00000007,0x000002e9,0x000000be,0x00000293,0x0004003d,0x00000006,0x000002ea, + 0x000002e9,0x0003003e,0x000002e8,0x000002ea,0x00050041,0x00000007,0x000002ec,0x000000be, + 0x00000297,0x0004003d,0x00000006,0x000002ed,0x000002ec,0x0003003e,0x000002eb,0x000002ed, + 0x00060039,0x00000006,0x000002ee,0x0000003f,0x000002e8,0x000002eb,0x00050041,0x00000007, + 0x000002f0,0x000000be,0x000001fa,0x0004003d,0x00000006,0x000002f1,0x000002f0,0x0003003e, + 0x000002ef,0x000002f1,0x0003003e,0x000002f2,0x000002ee,0x00060039,0x00000006,0x000002f3, + 0x0000003f,0x000002ef,0x000002f2,0x00050083,0x00000006,0x000002f4,0x00000155,0x000002f3, + 0x0003003e,0x000002f5,0x000002e7,0x0003003e,0x000002f6,0x000002f4,0x00060039,0x00000006, + 0x000002f7,0x0000003f,0x000002f5,0x000002f6,0x00060050,0x0000000e,0x000002f8,0x000002f7, + 0x000002f7,0x000002f7,0x00050088,0x0000000e,0x000002f9,0x000002e6,0x000002f8,0x000200fe, + 0x000002f9,0x00010038,0x00050036,0x000000a7,0x000000c3,0x00000000,0x000000c1,0x00030037, + 0x0000001b,0x000000c2,0x000200f8,0x000000c4,0x00050041,0x00000007,0x000002fc,0x000000c2, + 0x000001fa,0x0004003d,0x00000006,0x000002fd,0x000002fc,0x000500be,0x000000a7,0x000002fe, + 0x000002fd,0x00000154,0x000300f7,0x00000300,0x00000000,0x000400fa,0x000002fe,0x000002ff, + 0x00000300,0x000200f8,0x000002ff,0x00050041,0x00000007,0x00000301,0x000000c2,0x000001fa, + 0x0004003d,0x00000006,0x00000302,0x00000301,0x000500bc,0x000000a7,0x00000303,0x00000302, + 0x00000155,0x000200f9,0x00000300,0x000200f8,0x00000300,0x000700f5,0x000000a7,0x00000304, + 0x000002fe,0x000000c4,0x00000303,0x000002ff,0x000300f7,0x00000306,0x00000000,0x000400fa, + 0x00000304,0x00000305,0x00000306,0x000200f8,0x00000305,0x00050041,0x00000007,0x00000307, + 0x000000c2,0x00000293,0x0004003d,0x00000006,0x00000308,0x00000307,0x000500be,0x000000a7, + 0x00000309,0x00000308,0x00000154,0x000300f7,0x0000030b,0x00000000,0x000400fa,0x00000309, + 0x0000030a,0x0000030b,0x000200f8,0x0000030a,0x00050041,0x00000007,0x0000030c,0x000000c2, + 0x00000293,0x0004003d,0x00000006,0x0000030d,0x0000030c,0x000500bc,0x000000a7,0x0000030e, + 0x0000030d,0x00000155,0x000200f9,0x0000030b,0x000200f8,0x0000030b,0x000700f5,0x000000a7, + 0x0000030f,0x00000309,0x00000305,0x0000030e,0x0000030a,0x000200f9,0x00000306,0x000200f8, + 0x00000306,0x000700f5,0x000000a7,0x00000310,0x00000304,0x00000300,0x0000030f,0x0000030b, + 0x000200fe,0x00000310,0x00010038,0x00050036,0x00000055,0x000000c9,0x00000000,0x000000c5, + 0x00030037,0x0000006d,0x000000c6,0x00030037,0x0000006d,0x000000c7,0x00030037,0x0000006d, + 0x000000c8,0x000200f8,0x000000ca,0x0004003b,0x0000006d,0x00000313,0x00000007,0x0004003b, + 0x00000037,0x0000031a,0x00000007,0x0004003b,0x00000037,0x0000031d,0x00000007,0x0004003b, + 0x00000037,0x0000031f,0x00000007,0x0004003b,0x00000037,0x00000320,0x00000007,0x0004003b, + 0x00000037,0x00000326,0x00000007,0x0004003b,0x00000037,0x00000329,0x00000007,0x0004003b, + 0x00000037,0x0000032b,0x00000007,0x0004003b,0x00000037,0x0000032c,0x00000007,0x0004003d, + 0x00000055,0x00000314,0x000000c6,0x0004003d,0x00000055,0x00000315,0x000000c7,0x00050080, + 0x00000055,0x00000316,0x00000314,0x00000315,0x0003003e,0x00000313,0x00000316,0x00050041, + 0x00000037,0x00000317,0x000000c8,0x000001fa,0x0004003d,0x00000036,0x00000318,0x00000317, + 0x00050082,0x00000036,0x00000319,0x00000318,0x0000023e,0x00050041,0x00000037,0x0000031b, + 0x00000313,0x000001fa,0x0004003d,0x00000036,0x0000031c,0x0000031b,0x0003003e,0x0000031a, + 0x0000031c,0x0003003e,0x0000031d,0x00000319,0x00060039,0x00000036,0x0000031e,0x0000003b, + 0x0000031a,0x0000031d,0x0003003e,0x0000031f,0x00000197,0x0003003e,0x00000320,0x0000031e, + 0x00060039,0x00000036,0x00000321,0x0000004f,0x0000031f,0x00000320,0x00050041,0x00000037, + 0x00000322,0x00000313,0x000001fa,0x0003003e,0x00000322,0x00000321,0x00050041,0x00000037, + 0x00000323,0x000000c8,0x00000293,0x0004003d,0x00000036,0x00000324,0x00000323,0x00050082, + 0x00000036,0x00000325,0x00000324,0x0000023e,0x00050041,0x00000037,0x00000327,0x00000313, + 0x00000293,0x0004003d,0x00000036,0x00000328,0x00000327,0x0003003e,0x00000326,0x00000328, + 0x0003003e,0x00000329,0x00000325,0x00060039,0x00000036,0x0000032a,0x0000003b,0x00000326, + 0x00000329,0x0003003e,0x0000032b,0x00000197,0x0003003e,0x0000032c,0x0000032a,0x00060039, + 0x00000036,0x0000032d,0x0000004f,0x0000032b,0x0000032c,0x00050041,0x00000037,0x0000032e, + 0x00000313,0x00000293,0x0003003e,0x0000032e,0x0000032d,0x0004003d,0x00000055,0x0000032f, + 0x00000313,0x000200fe,0x0000032f,0x00010038,0x00050036,0x0000001a,0x000000cf,0x00000000, + 0x000000cb,0x00030037,0x0000001b,0x000000cc,0x00030037,0x0000006d,0x000000cd,0x00030037, + 0x0000006d,0x000000ce,0x000200f8,0x000000d0,0x0004003b,0x0000001b,0x00000332,0x00000007, + 0x0004003b,0x0000001b,0x00000337,0x00000007,0x0004003b,0x0000001b,0x0000033c,0x00000007, + 0x0004003b,0x0000001b,0x0000033e,0x00000007,0x0004003b,0x0000001b,0x00000340,0x00000007, + 0x0004003b,0x0000001b,0x00000341,0x00000007,0x0004003b,0x0000001b,0x00000343,0x00000007, + 0x0004003d,0x0000001a,0x00000333,0x000000cc,0x0004003d,0x00000055,0x00000334,0x000000cd, + 0x0004006f,0x0000001a,0x00000335,0x00000334,0x00050085,0x0000001a,0x00000336,0x00000333, + 0x00000335,0x0003003e,0x00000332,0x00000336,0x0004003d,0x00000055,0x00000339,0x000000cd, + 0x0004006f,0x0000001a,0x0000033a,0x00000339,0x00050083,0x0000001a,0x0000033b,0x0000033a, + 0x00000338,0x0004003d,0x0000001a,0x0000033d,0x00000332,0x0003003e,0x0000033c,0x0000033d, + 0x0003003e,0x0000033e,0x0000033b,0x00060039,0x0000001a,0x0000033f,0x00000028,0x0000033c, + 0x0000033e,0x0003003e,0x00000340,0x00000338,0x0003003e,0x00000341,0x0000033f,0x00060039, + 0x0000001a,0x00000342,0x00000043,0x00000340,0x00000341,0x0003003e,0x00000337,0x00000342, + 0x0004003d,0x0000001a,0x00000344,0x00000337,0x0004003d,0x00000055,0x00000345,0x000000ce, + 0x0004006f,0x0000001a,0x00000346,0x00000345,0x00050088,0x0000001a,0x00000347,0x00000344, + 0x00000346,0x0003003e,0x00000343,0x00000347,0x0004003d,0x0000001a,0x00000348,0x00000343, + 0x000200fe,0x00000348,0x00010038,0x00050036,0x000000a7,0x000000d4,0x00000000,0x000000d1, + 0x00030037,0x0000006d,0x000000d2,0x00030037,0x0000006d,0x000000d3,0x000200f8,0x000000d5, + 0x0004003d,0x00000055,0x0000034b,0x000000d2,0x0004007c,0x0000034c,0x0000034d,0x0000034b, + 0x0004003d,0x00000055,0x0000034e,0x000000d3,0x0004007c,0x0000034c,0x0000034f,0x0000034e, + 0x000500b0,0x00000350,0x00000351,0x0000034d,0x0000034f,0x0004009b,0x000000a7,0x00000352, + 0x00000351,0x000200fe,0x00000352,0x00010038,0x00050036,0x00000006,0x000000d7,0x00000000, + 0x00000016,0x00030037,0x00000007,0x000000d6,0x000200f8,0x000000d8,0x0004003b,0x00000007, + 0x00000358,0x00000007,0x0004003d,0x00000006,0x00000355,0x000000d6,0x0006000c,0x00000006, + 0x00000356,0x00000001,0x00000004,0x00000355,0x000500b8,0x000000a7,0x00000357,0x00000356, + 0x000002e7,0x000300f7,0x0000035a,0x00000000,0x000400fa,0x00000357,0x00000359,0x0000035b, + 0x000200f8,0x00000359,0x0003003e,0x00000358,0x00000155,0x000200f9,0x0000035a,0x000200f8, + 0x0000035b,0x0004003d,0x00000006,0x0000035d,0x000000d6,0x00050085,0x00000006,0x0000035e, + 0x0000035c,0x0000035d,0x0006000c,0x00000006,0x0000035f,0x00000001,0x0000000d,0x0000035e, + 0x0004003d,0x00000006,0x00000360,0x000000d6,0x00050085,0x00000006,0x00000361,0x0000035c, + 0x00000360,0x00050088,0x00000006,0x00000362,0x0000035f,0x00000361,0x0004003d,0x00000006, + 0x00000364,0x000000d6,0x00050085,0x00000006,0x00000365,0x00000363,0x00000364,0x0006000c, + 0x00000006,0x00000366,0x00000001,0x0000000d,0x00000365,0x0004003d,0x00000006,0x00000367, + 0x000000d6,0x00050085,0x00000006,0x00000368,0x00000363,0x00000367,0x00050088,0x00000006, + 0x00000369,0x00000366,0x00000368,0x00050085,0x00000006,0x0000036a,0x00000362,0x00000369, + 0x0003003e,0x00000358,0x0000036a,0x000200f9,0x0000035a,0x000200f8,0x0000035a,0x0004003d, + 0x00000006,0x0000036b,0x00000358,0x000200fe,0x0000036b,0x00010038,0x00050036,0x00000006, + 0x000000da,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d9,0x000200f8,0x000000db, + 0x0004003b,0x00000007,0x00000371,0x00000007,0x0004003b,0x00000007,0x00000372,0x00000007, + 0x0004003b,0x00000007,0x00000374,0x00000007,0x0004003d,0x00000006,0x0000036e,0x000000d9, + 0x0006000c,0x00000006,0x0000036f,0x00000001,0x00000004,0x0000036e,0x0003003e,0x00000371, + 0x0000036f,0x0003003e,0x00000372,0x00000370,0x00060039,0x00000006,0x00000373,0x00000023, + 0x00000371,0x00000372,0x0003003e,0x000000d9,0x00000373,0x0004003d,0x00000006,0x00000375, + 0x000000d9,0x0003003e,0x00000374,0x00000375,0x00050039,0x00000006,0x00000376,0x000000d7, + 0x00000374,0x000200fe,0x00000376,0x00010038,0x00050036,0x00000006,0x000000dd,0x00000000, + 0x00000016,0x00030037,0x00000007,0x000000dc,0x000200f8,0x000000de,0x0004003b,0x00000007, + 0x00000379,0x00000007,0x0004003b,0x00000007,0x0000037e,0x00000007,0x0004003d,0x00000006, + 0x0000037b,0x000000dc,0x00050085,0x00000006,0x0000037c,0x0000037a,0x0000037b,0x00050083, + 0x00000006,0x0000037d,0x0000037c,0x00000155,0x0003003e,0x00000379,0x0000037d,0x0004003d, + 0x00000006,0x0000037f,0x000000dc,0x00050085,0x00000006,0x00000380,0x000002ad,0x0000037f, + 0x00050083,0x00000006,0x00000381,0x00000380,0x00000155,0x0003003e,0x0000037e,0x00000381, + 0x0004003d,0x00000006,0x00000383,0x00000379,0x00050085,0x00000006,0x00000384,0x00000382, + 0x00000383,0x0004003d,0x00000006,0x00000385,0x00000379,0x00050085,0x00000006,0x00000386, + 0x00000384,0x00000385,0x00050083,0x00000006,0x00000388,0x00000386,0x00000387,0x0004003d, + 0x00000006,0x00000389,0x0000037e,0x0004003d,0x00000006,0x0000038a,0x0000037e,0x00050085, + 0x00000006,0x0000038b,0x00000389,0x0000038a,0x00050085,0x00000006,0x0000038c,0x00000388, + 0x0000038b,0x000200fe,0x0000038c,0x00010038,0x00050036,0x00000006,0x000000e0,0x00000000, + 0x00000016,0x00030037,0x00000007,0x000000df,0x000200f8,0x000000e1,0x0004003b,0x00000007, + 0x00000390,0x00000007,0x0004003b,0x00000007,0x00000392,0x00000007,0x0004003b,0x00000007, + 0x00000394,0x00000007,0x0004003d,0x00000006,0x00000391,0x000000df,0x0003003e,0x00000390, + 0x00000391,0x0003003e,0x00000392,0x0000038f,0x00060039,0x00000006,0x00000393,0x00000023, + 0x00000390,0x00000392,0x0003003e,0x000000df,0x00000393,0x0004003d,0x00000006,0x00000395, + 0x000000df,0x0003003e,0x00000394,0x00000395,0x00050039,0x00000006,0x00000396,0x000000dd, + 0x00000394,0x000200fe,0x00000396,0x00010038,0x00050036,0x0000002f,0x000000e8,0x00000000, + 0x000000e2,0x00030037,0x00000030,0x000000e3,0x00030037,0x00000030,0x000000e4,0x00030037, + 0x00000030,0x000000e5,0x00030037,0x00000030,0x000000e6,0x00030037,0x00000007,0x000000e7, + 0x000200f8,0x000000e9,0x0004003b,0x00000007,0x00000399,0x00000007,0x0004003b,0x00000007, + 0x0000039d,0x00000007,0x0004003b,0x00000007,0x0000039f,0x00000007,0x0004003b,0x00000007, + 0x000003a3,0x00000007,0x0004003b,0x00000007,0x000003a5,0x00000007,0x0004003b,0x00000007, + 0x000003a8,0x00000007,0x0004003b,0x00000007,0x000003aa,0x00000007,0x0004003b,0x00000007, + 0x000003ad,0x00000007,0x0004003d,0x00000006,0x0000039b,0x000000e7,0x00050083,0x00000006, + 0x0000039c,0x0000039a,0x0000039b,0x0003003e,0x0000039d,0x0000039c,0x00050039,0x00000006, + 0x0000039e,0x000000da,0x0000039d,0x0003003e,0x00000399,0x0000039e,0x0004003d,0x00000006, + 0x000003a1,0x000000e7,0x00050083,0x00000006,0x000003a2,0x000003a0,0x000003a1,0x0003003e, + 0x000003a3,0x000003a2,0x00050039,0x00000006,0x000003a4,0x000000da,0x000003a3,0x0003003e, + 0x0000039f,0x000003a4,0x0004003d,0x00000006,0x000003a6,0x000000e7,0x00050083,0x00000006, + 0x000003a7,0x00000155,0x000003a6,0x0003003e,0x000003a8,0x000003a7,0x00050039,0x00000006, + 0x000003a9,0x000000da,0x000003a8,0x0003003e,0x000003a5,0x000003a9,0x0004003d,0x00000006, + 0x000003ab,0x000000e7,0x00050083,0x00000006,0x000003ac,0x00000370,0x000003ab,0x0003003e, + 0x000003ad,0x000003ac,0x00050039,0x00000006,0x000003ae,0x000000da,0x000003ad,0x0003003e, + 0x000003aa,0x000003ae,0x0004003d,0x00000006,0x000003af,0x00000399,0x0004003d,0x0000002f, + 0x000003b0,0x000000e3,0x0005008e,0x0000002f,0x000003b1,0x000003b0,0x000003af,0x0004003d, + 0x00000006,0x000003b2,0x0000039f,0x0004003d,0x0000002f,0x000003b3,0x000000e4,0x0005008e, + 0x0000002f,0x000003b4,0x000003b3,0x000003b2,0x00050081,0x0000002f,0x000003b5,0x000003b1, + 0x000003b4,0x0004003d,0x00000006,0x000003b6,0x000003a5,0x0004003d,0x0000002f,0x000003b7, + 0x000000e5,0x0005008e,0x0000002f,0x000003b8,0x000003b7,0x000003b6,0x00050081,0x0000002f, + 0x000003b9,0x000003b5,0x000003b8,0x0004003d,0x00000006,0x000003ba,0x000003aa,0x0004003d, + 0x0000002f,0x000003bb,0x000000e6,0x0005008e,0x0000002f,0x000003bc,0x000003bb,0x000003ba, + 0x00050081,0x0000002f,0x000003bd,0x000003b9,0x000003bc,0x0004003d,0x00000006,0x000003be, + 0x00000399,0x0004003d,0x00000006,0x000003bf,0x0000039f,0x00050081,0x00000006,0x000003c0, + 0x000003be,0x000003bf,0x0004003d,0x00000006,0x000003c1,0x000003a5,0x00050081,0x00000006, + 0x000003c2,0x000003c0,0x000003c1,0x0004003d,0x00000006,0x000003c3,0x000003aa,0x00050081, + 0x00000006,0x000003c4,0x000003c2,0x000003c3,0x00070050,0x0000002f,0x000003c5,0x000003c4, + 0x000003c4,0x000003c4,0x000003c4,0x00050088,0x0000002f,0x000003c6,0x000003bd,0x000003c5, + 0x000200fe,0x000003c6,0x00010038,0x00050036,0x0000002f,0x000000ef,0x00000000,0x000000ec, + 0x00030037,0x000000eb,0x000000ed,0x00030037,0x0000001b,0x000000ee,0x000200f8,0x000000f0, + 0x0004003b,0x00000030,0x000003c9,0x00000007,0x0004003b,0x00000030,0x000003ca,0x00000007, + 0x0004003b,0x00000030,0x000003cd,0x00000007,0x0004003b,0x00000030,0x000003d0,0x00000007, + 0x0004003b,0x00000030,0x000003d3,0x00000007,0x0004003b,0x00000007,0x000003d6,0x00000007, + 0x0004003b,0x00000030,0x000003da,0x00000007,0x0004003b,0x00000030,0x000003dd,0x00000007, + 0x0004003b,0x00000030,0x000003e0,0x00000007,0x0004003b,0x00000030,0x000003e3,0x00000007, + 0x0004003b,0x00000030,0x000003e6,0x00000007,0x0004003b,0x00000007,0x000003e9,0x00000007, + 0x0004003b,0x00000030,0x000003ed,0x00000007,0x0004003b,0x00000030,0x000003f1,0x00000007, + 0x0004003b,0x00000030,0x000003f4,0x00000007,0x0004003b,0x00000030,0x000003f7,0x00000007, + 0x0004003b,0x00000030,0x000003fa,0x00000007,0x0004003b,0x00000007,0x000003fd,0x00000007, + 0x0004003b,0x00000030,0x00000401,0x00000007,0x0004003b,0x00000030,0x00000404,0x00000007, + 0x0004003b,0x00000030,0x00000407,0x00000007,0x0004003b,0x00000030,0x0000040a,0x00000007, + 0x0004003b,0x00000030,0x0000040d,0x00000007,0x0004003b,0x00000007,0x00000410,0x00000007, + 0x0004003b,0x00000030,0x00000414,0x00000007,0x0004003b,0x00000030,0x00000415,0x00000007, + 0x0004003b,0x00000030,0x00000417,0x00000007,0x0004003b,0x00000030,0x00000419,0x00000007, + 0x0004003b,0x00000030,0x0000041b,0x00000007,0x0004003b,0x00000007,0x0000041d,0x00000007, + 0x0004003b,0x00000423,0x00000424,0x00000007,0x0004003b,0x00000030,0x0000042e,0x00000007, + 0x0004003b,0x00000030,0x00000431,0x00000007,0x0004003b,0x00000037,0x00000434,0x00000007, + 0x0004003b,0x00000030,0x0000043d,0x00000007,0x0004003b,0x00000030,0x0000043f,0x00000007, + 0x0004003b,0x00000030,0x00000444,0x00000007,0x0004003b,0x00000030,0x00000446,0x00000007, + 0x00050041,0x00000030,0x000003cb,0x000000ed,0x00000197,0x0004003d,0x0000002f,0x000003cc, + 0x000003cb,0x0003003e,0x000003ca,0x000003cc,0x00050041,0x00000030,0x000003ce,0x000000ed, + 0x0000023e,0x0004003d,0x0000002f,0x000003cf,0x000003ce,0x0003003e,0x000003cd,0x000003cf, + 0x00050041,0x00000030,0x000003d1,0x000000ed,0x000001a2,0x0004003d,0x0000002f,0x000003d2, + 0x000003d1,0x0003003e,0x000003d0,0x000003d2,0x00050041,0x00000030,0x000003d4,0x000000ed, + 0x000001a7,0x0004003d,0x0000002f,0x000003d5,0x000003d4,0x0003003e,0x000003d3,0x000003d5, + 0x00050041,0x00000007,0x000003d7,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x000003d8, + 0x000003d7,0x0003003e,0x000003d6,0x000003d8,0x00090039,0x0000002f,0x000003d9,0x000000e8, + 0x000003ca,0x000003cd,0x000003d0,0x000003d3,0x000003d6,0x0003003e,0x000003c9,0x000003d9, + 0x00050041,0x00000030,0x000003de,0x000000ed,0x0000019d,0x0004003d,0x0000002f,0x000003df, + 0x000003de,0x0003003e,0x000003dd,0x000003df,0x00050041,0x00000030,0x000003e1,0x000000ed, + 0x000003db,0x0004003d,0x0000002f,0x000003e2,0x000003e1,0x0003003e,0x000003e0,0x000003e2, + 0x00050041,0x00000030,0x000003e4,0x000000ed,0x000003dc,0x0004003d,0x0000002f,0x000003e5, + 0x000003e4,0x0003003e,0x000003e3,0x000003e5,0x00050041,0x00000030,0x000003e7,0x000000ed, + 0x000001ac,0x0004003d,0x0000002f,0x000003e8,0x000003e7,0x0003003e,0x000003e6,0x000003e8, + 0x00050041,0x00000007,0x000003ea,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x000003eb, + 0x000003ea,0x0003003e,0x000003e9,0x000003eb,0x00090039,0x0000002f,0x000003ec,0x000000e8, + 0x000003dd,0x000003e0,0x000003e3,0x000003e6,0x000003e9,0x0003003e,0x000003da,0x000003ec, + 0x00050041,0x00000030,0x000003f2,0x000000ed,0x000003ee,0x0004003d,0x0000002f,0x000003f3, + 0x000003f2,0x0003003e,0x000003f1,0x000003f3,0x00050041,0x00000030,0x000003f5,0x000000ed, + 0x000003ef,0x0004003d,0x0000002f,0x000003f6,0x000003f5,0x0003003e,0x000003f4,0x000003f6, + 0x00050041,0x00000030,0x000003f8,0x000000ed,0x000001b2,0x0004003d,0x0000002f,0x000003f9, + 0x000003f8,0x0003003e,0x000003f7,0x000003f9,0x00050041,0x00000030,0x000003fb,0x000000ed, + 0x000003f0,0x0004003d,0x0000002f,0x000003fc,0x000003fb,0x0003003e,0x000003fa,0x000003fc, + 0x00050041,0x00000007,0x000003fe,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x000003ff, + 0x000003fe,0x0003003e,0x000003fd,0x000003ff,0x00090039,0x0000002f,0x00000400,0x000000e8, + 0x000003f1,0x000003f4,0x000003f7,0x000003fa,0x000003fd,0x0003003e,0x000003ed,0x00000400, + 0x00050041,0x00000030,0x00000405,0x000000ed,0x00000402,0x0004003d,0x0000002f,0x00000406, + 0x00000405,0x0003003e,0x00000404,0x00000406,0x00050041,0x00000030,0x00000408,0x000000ed, + 0x000001b7,0x0004003d,0x0000002f,0x00000409,0x00000408,0x0003003e,0x00000407,0x00000409, + 0x00050041,0x00000030,0x0000040b,0x000000ed,0x00000403,0x0004003d,0x0000002f,0x0000040c, + 0x0000040b,0x0003003e,0x0000040a,0x0000040c,0x00050041,0x00000030,0x0000040e,0x000000ed, + 0x000001bd,0x0004003d,0x0000002f,0x0000040f,0x0000040e,0x0003003e,0x0000040d,0x0000040f, + 0x00050041,0x00000007,0x00000411,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x00000412, + 0x00000411,0x0003003e,0x00000410,0x00000412,0x00090039,0x0000002f,0x00000413,0x000000e8, + 0x00000404,0x00000407,0x0000040a,0x0000040d,0x00000410,0x0003003e,0x00000401,0x00000413, + 0x0004003d,0x0000002f,0x00000416,0x000003c9,0x0003003e,0x00000415,0x00000416,0x0004003d, + 0x0000002f,0x00000418,0x000003da,0x0003003e,0x00000417,0x00000418,0x0004003d,0x0000002f, + 0x0000041a,0x000003ed,0x0003003e,0x00000419,0x0000041a,0x0004003d,0x0000002f,0x0000041c, + 0x00000401,0x0003003e,0x0000041b,0x0000041c,0x00050041,0x00000007,0x0000041e,0x000000ee, + 0x00000293,0x0004003d,0x00000006,0x0000041f,0x0000041e,0x0003003e,0x0000041d,0x0000041f, + 0x00090039,0x0000002f,0x00000420,0x000000e8,0x00000415,0x00000417,0x00000419,0x0000041b, + 0x0000041d,0x0003003e,0x00000414,0x00000420,0x00050041,0x00000030,0x00000425,0x000000ed, + 0x000003db,0x0004003d,0x0000002f,0x00000426,0x00000425,0x00050041,0x00000030,0x00000427, + 0x000000ed,0x000003dc,0x0004003d,0x0000002f,0x00000428,0x00000427,0x00050041,0x00000030, + 0x00000429,0x000000ed,0x000003ef,0x0004003d,0x0000002f,0x0000042a,0x00000429,0x00050041, + 0x00000030,0x0000042b,0x000000ed,0x000001b2,0x0004003d,0x0000002f,0x0000042c,0x0000042b, + 0x00070050,0x00000422,0x0000042d,0x00000426,0x00000428,0x0000042a,0x0000042c,0x0003003e, + 0x00000424,0x0000042d,0x00050041,0x00000030,0x0000042f,0x00000424,0x00000197,0x0004003d, + 0x0000002f,0x00000430,0x0000042f,0x0003003e,0x0000042e,0x00000430,0x00050041,0x00000030, + 0x00000432,0x00000424,0x00000197,0x0004003d,0x0000002f,0x00000433,0x00000432,0x0003003e, + 0x00000431,0x00000433,0x0003003e,0x00000434,0x0000023e,0x000200f9,0x00000435,0x000200f8, + 0x00000435,0x000400f6,0x00000437,0x00000438,0x00000000,0x000200f9,0x00000439,0x000200f8, + 0x00000439,0x0004003d,0x00000036,0x0000043a,0x00000434,0x000500b1,0x000000a7,0x0000043b, + 0x0000043a,0x0000019d,0x000400fa,0x0000043b,0x00000436,0x00000437,0x000200f8,0x00000436, + 0x0004003d,0x00000036,0x0000043c,0x00000434,0x0004003d,0x0000002f,0x0000043e,0x0000042e, + 0x0003003e,0x0000043d,0x0000043e,0x00050041,0x00000030,0x00000440,0x00000424,0x0000043c, + 0x0004003d,0x0000002f,0x00000441,0x00000440,0x0003003e,0x0000043f,0x00000441,0x00060039, + 0x0000002f,0x00000442,0x00000034,0x0000043d,0x0000043f,0x0003003e,0x0000042e,0x00000442, + 0x0004003d,0x00000036,0x00000443,0x00000434,0x0004003d,0x0000002f,0x00000445,0x00000431, + 0x0003003e,0x00000444,0x00000445,0x00050041,0x00000030,0x00000447,0x00000424,0x00000443, + 0x0004003d,0x0000002f,0x00000448,0x00000447,0x0003003e,0x00000446,0x00000448,0x00060039, + 0x0000002f,0x00000449,0x0000004b,0x00000444,0x00000446,0x0003003e,0x00000431,0x00000449, + 0x000200f9,0x00000438,0x000200f8,0x00000438,0x0004003d,0x00000036,0x0000044a,0x00000434, + 0x00050080,0x00000036,0x0000044b,0x0000044a,0x0000023e,0x0003003e,0x00000434,0x0000044b, + 0x000200f9,0x00000435,0x000200f8,0x00000437,0x0004003d,0x0000002f,0x0000044c,0x00000414, + 0x0004003d,0x0000002f,0x0000044d,0x0000042e,0x0004003d,0x0000002f,0x0000044e,0x00000431, + 0x0008000c,0x0000002f,0x0000044f,0x00000001,0x0000002b,0x0000044c,0x0000044d,0x0000044e, + 0x0003003e,0x00000414,0x0000044f,0x0004003d,0x0000002f,0x00000450,0x00000414,0x000200fe, + 0x00000450,0x00010038,0x00050036,0x00000055,0x000000f4,0x00000000,0x000000c5,0x00030037, + 0x0000006d,0x000000f1,0x00030037,0x0000006d,0x000000f2,0x00030037,0x0000006d,0x000000f3, + 0x000200f8,0x000000f5,0x0004003b,0x0000006d,0x00000453,0x00000007,0x0004003b,0x00000037, + 0x0000045a,0x00000007,0x0004003b,0x00000037,0x0000045d,0x00000007,0x0004003b,0x00000037, + 0x0000045f,0x00000007,0x0004003b,0x00000037,0x00000460,0x00000007,0x0004003b,0x00000037, + 0x00000466,0x00000007,0x0004003b,0x00000037,0x00000469,0x00000007,0x0004003b,0x00000037, + 0x0000046b,0x00000007,0x0004003b,0x00000037,0x0000046c,0x00000007,0x0004003d,0x00000055, + 0x00000454,0x000000f1,0x0004003d,0x00000055,0x00000455,0x000000f2,0x00050080,0x00000055, + 0x00000456,0x00000454,0x00000455,0x0003003e,0x00000453,0x00000456,0x00050041,0x00000037, + 0x00000457,0x000000f3,0x000001fa,0x0004003d,0x00000036,0x00000458,0x00000457,0x00050082, + 0x00000036,0x00000459,0x00000458,0x000001a2,0x00050041,0x00000037,0x0000045b,0x00000453, + 0x000001fa,0x0004003d,0x00000036,0x0000045c,0x0000045b,0x0003003e,0x0000045a,0x0000045c, + 0x0003003e,0x0000045d,0x00000459,0x00060039,0x00000036,0x0000045e,0x0000003b,0x0000045a, + 0x0000045d,0x0003003e,0x0000045f,0x0000023e,0x0003003e,0x00000460,0x0000045e,0x00060039, + 0x00000036,0x00000461,0x0000004f,0x0000045f,0x00000460,0x00050041,0x00000037,0x00000462, + 0x00000453,0x000001fa,0x0003003e,0x00000462,0x00000461,0x00050041,0x00000037,0x00000463, + 0x000000f3,0x00000293,0x0004003d,0x00000036,0x00000464,0x00000463,0x00050082,0x00000036, + 0x00000465,0x00000464,0x000001a2,0x00050041,0x00000037,0x00000467,0x00000453,0x00000293, + 0x0004003d,0x00000036,0x00000468,0x00000467,0x0003003e,0x00000466,0x00000468,0x0003003e, + 0x00000469,0x00000465,0x00060039,0x00000036,0x0000046a,0x0000003b,0x00000466,0x00000469, + 0x0003003e,0x0000046b,0x0000023e,0x0003003e,0x0000046c,0x0000046a,0x00060039,0x00000036, + 0x0000046d,0x0000004f,0x0000046b,0x0000046c,0x00050041,0x00000037,0x0000046e,0x00000453, + 0x00000293,0x0003003e,0x0000046e,0x0000046d,0x0004003d,0x00000055,0x0000046f,0x00000453, + 0x000200fe,0x0000046f,0x00010038,0x00050036,0x00000002,0x000000f9,0x00000000,0x000000f6, + 0x00030037,0x000000a0,0x000000f7,0x00030037,0x0000000f,0x000000f8,0x000200f8,0x000000fa, + 0x0004003d,0x0000000e,0x00000472,0x000000f8,0x00050041,0x0000000f,0x00000473,0x000000f7, + 0x000001a2,0x0004003d,0x0000000e,0x00000474,0x00000473,0x00050041,0x0000000f,0x00000475, + 0x000000f7,0x000001a7,0x0004003d,0x0000000e,0x00000476,0x00000475,0x0008000c,0x0000000e, + 0x00000477,0x00000001,0x0000002b,0x00000472,0x00000474,0x00000476,0x0003003e,0x000000f8, + 0x00000477,0x000100fd,0x00010038,0x00050036,0x00000006,0x000000fe,0x00000000,0x000000fb, + 0x00030037,0x0000001b,0x000000fc,0x00030037,0x00000007,0x000000fd,0x000200f8,0x000000ff, + 0x0004003b,0x0000001b,0x00000478,0x00000007,0x0004003b,0x00000007,0x0000047d,0x00000007, + 0x0004003b,0x00000007,0x00000481,0x00000007,0x0004003d,0x0000001a,0x00000479,0x000000fc, + 0x0004003d,0x00000006,0x0000047a,0x000000fd,0x00050050,0x0000001a,0x0000047b,0x0000047a, + 0x0000047a,0x00050085,0x0000001a,0x0000047c,0x00000479,0x0000047b,0x0003003e,0x00000478, + 0x0000047c,0x0004003d,0x0000001a,0x0000047e,0x00000478,0x0004003d,0x0000001a,0x0000047f, + 0x00000478,0x00050094,0x00000006,0x00000480,0x0000047e,0x0000047f,0x0003003e,0x00000481, + 0x00000480,0x00050039,0x00000006,0x00000482,0x000000e0,0x00000481,0x0003003e,0x0000047d, + 0x00000482,0x0004003d,0x00000006,0x00000483,0x0000047d,0x000200fe,0x00000483,0x00010038, + 0x00050036,0x00000006,0x00000106,0x00000000,0x00000103,0x00030037,0x00000100,0x00000104, + 0x00030037,0x00000102,0x00000105,0x000200f8,0x00000107,0x0004003b,0x00000007,0x00000486, + 0x00000007,0x0004003b,0x00000007,0x0000048f,0x00000007,0x0004003b,0x00000007,0x00000490, + 0x00000007,0x00040039,0x0000001a,0x00000487,0x00000062,0x00050050,0x0000001a,0x00000488, + 0x00000155,0x00000155,0x00050088,0x0000001a,0x00000489,0x00000488,0x00000487,0x00050050, + 0x0000001a,0x0000048a,0x00000155,0x00000155,0x00050083,0x0000001a,0x0000048b,0x00000489, + 0x0000048a,0x00050051,0x00000006,0x0000048c,0x0000048b,0x00000000,0x00050081,0x00000006, + 0x0000048d,0x00000155,0x0000048c,0x0003003e,0x00000486,0x0000048d,0x0003003e,0x0000048f, + 0x0000048e,0x0004003d,0x00000006,0x00000491,0x00000486,0x0003003e,0x00000490,0x00000491, + 0x00060039,0x00000006,0x00000492,0x00000023,0x0000048f,0x00000490,0x000200fe,0x00000492, + 0x00010038,0x00050036,0x0000000e,0x00000109,0x00000000,0x0000006e,0x00030037,0x0000006d, + 0x00000108,0x000200f8,0x0000010a,0x0004003b,0x0000000f,0x00000495,0x00000007,0x0004003b, + 0x0000006d,0x00000497,0x00000007,0x0004003b,0x0000000f,0x0000049a,0x00000007,0x0004003b, + 0x0000000f,0x0000049b,0x00000007,0x0004003b,0x0000000f,0x0000049f,0x00000007,0x0004003b, + 0x0000000f,0x000004a0,0x00000007,0x0004003d,0x00000055,0x00000498,0x00000108,0x0003003e, + 0x00000497,0x00000498,0x00050039,0x0000000e,0x00000499,0x00000070,0x00000497,0x0003003e, + 0x0000049a,0x00000496,0x0003003e,0x0000049b,0x00000499,0x00060039,0x0000000e,0x0000049c, + 0x00000047,0x0000049a,0x0000049b,0x00040039,0x00000006,0x0000049d,0x00000096,0x0005008e, + 0x0000000e,0x0000049e,0x0000049c,0x0000049d,0x0003003e,0x00000495,0x0000049e,0x0004003d, + 0x0000000e,0x000004a1,0x00000495,0x0003003e,0x000004a0,0x000004a1,0x00050039,0x0000000e, + 0x000004a2,0x000000b9,0x000004a0,0x0003003e,0x0000049f,0x000004a2,0x0004003d,0x0000000e, + 0x000004a3,0x0000049f,0x000200fe,0x000004a3,0x00010038,0x00050036,0x00000002,0x0000010e, + 0x00000000,0x0000010b,0x00030037,0x00000100,0x0000010c,0x00030037,0x00000102,0x0000010d, + 0x000200f8,0x0000010f,0x0004003b,0x0000001b,0x000004a6,0x00000007,0x0004003b,0x0000001b, + 0x000004aa,0x00000007,0x0004003b,0x0000006d,0x000004ae,0x00000007,0x0004003b,0x0000001b, + 0x000004b2,0x00000007,0x0004003b,0x0000001b,0x000004b8,0x00000007,0x0004003b,0x0000006d, + 0x000004bc,0x00000007,0x0004003b,0x000000a8,0x000004cd,0x00000007,0x0004003b,0x000000a8, + 0x000004d3,0x00000007,0x0004003b,0x0000001b,0x000004d9,0x00000007,0x0004003b,0x000000a8, + 0x000004dc,0x00000007,0x0004003b,0x00000037,0x000004df,0x00000007,0x0004003b,0x00000037, + 0x000004e0,0x00000007,0x0004003b,0x00000037,0x000004e8,0x00000007,0x0004003b,0x0000006d, + 0x000004f0,0x00000007,0x0004003b,0x00000037,0x000004f2,0x00000007,0x0004003b,0x00000037, + 0x000004fb,0x00000007,0x0004003b,0x0000006d,0x00000504,0x00000007,0x0004003b,0x0000006d, + 0x0000050a,0x00000007,0x0004003b,0x0000006d,0x0000050c,0x00000007,0x0004003b,0x0000006d, + 0x0000050e,0x00000007,0x0004003b,0x0000006d,0x0000050f,0x00000007,0x0004003b,0x00000513, + 0x00000514,0x00000007,0x0004003b,0x0000006d,0x00000516,0x00000007,0x0004003b,0x0000000f, + 0x0000052c,0x00000007,0x0004003b,0x0000000f,0x00000530,0x00000007,0x0004003b,0x0000000f, + 0x00000532,0x00000007,0x0004003b,0x00000007,0x00000537,0x00000007,0x0004003b,0x00000102, + 0x00000538,0x00000007,0x0004003b,0x00000007,0x0000053c,0x00000007,0x0004003b,0x00000007, + 0x00000541,0x00000007,0x0004003b,0x00000007,0x00000542,0x00000007,0x0004003b,0x00000007, + 0x00000544,0x00000007,0x0004003b,0x00000007,0x0000054e,0x00000007,0x0004003b,0x00000007, + 0x00000550,0x00000007,0x0004003b,0x00000007,0x00000551,0x00000007,0x0004003b,0x00000007, + 0x00000553,0x00000007,0x0004003b,0x00000007,0x00000554,0x00000007,0x0004003b,0x00000007, + 0x00000556,0x00000007,0x0004003b,0x00000007,0x00000557,0x00000007,0x0004003b,0x00000007, + 0x00000559,0x00000007,0x0004003b,0x00000007,0x0000055b,0x00000007,0x0004003b,0x00000037, + 0x0000055e,0x00000007,0x0004003b,0x00000037,0x00000566,0x00000007,0x0004003b,0x0000006d, + 0x0000056e,0x00000007,0x0004003b,0x00000037,0x00000570,0x00000007,0x0004003b,0x00000037, + 0x00000579,0x00000007,0x0004003b,0x0000001b,0x00000582,0x00000007,0x0004003b,0x0000001b, + 0x00000587,0x00000007,0x0004003b,0x0000006d,0x0000058b,0x00000007,0x0004003b,0x00000007, + 0x00000591,0x00000007,0x0004003b,0x0000006d,0x00000594,0x00000007,0x0004003b,0x0000006d, + 0x00000595,0x00000007,0x0004003b,0x00000007,0x0000059c,0x00000007,0x0004003b,0x0000001b, + 0x0000059e,0x00000007,0x0004003b,0x00000007,0x000005a0,0x00000007,0x0004003b,0x00000007, + 0x000005b2,0x00000007,0x0004003b,0x00000007,0x000005b6,0x00000007,0x0004003b,0x000000a8, + 0x000005bd,0x00000007,0x0004003b,0x000000a8,0x000005c7,0x00000007,0x0004003b,0x000000a0, + 0x000005c9,0x00000007,0x0004003b,0x000000a0,0x000005d5,0x00000007,0x0004003b,0x000000a0, + 0x000005f4,0x00000007,0x0004003b,0x0000000f,0x000005f7,0x00000007,0x0004003b,0x0000000f, + 0x00000600,0x00000007,0x0004003b,0x0000000f,0x00000604,0x00000007,0x0004003b,0x0000000f, + 0x00000606,0x00000007,0x00050051,0x00000055,0x000004a7,0x0000010c,0x00000000,0x0004006f, + 0x0000001a,0x000004a8,0x000004a7,0x00050081,0x0000001a,0x000004a9,0x000004a8,0x00000338, + 0x0003003e,0x000004a6,0x000004a9,0x0004003d,0x0000001a,0x000004ab,0x000004a6,0x00040039, + 0x0000001a,0x000004ac,0x00000062,0x00050085,0x0000001a,0x000004ad,0x000004ab,0x000004ac, + 0x0003003e,0x000004aa,0x000004ad,0x0004003d,0x0000001a,0x000004af,0x000004aa,0x0006000c, + 0x0000001a,0x000004b0,0x00000001,0x00000008,0x000004af,0x0004006e,0x00000055,0x000004b1, + 0x000004b0,0x0003003e,0x000004ae,0x000004b1,0x0004003d,0x00000055,0x000004b3,0x000004ae, + 0x0004006f,0x0000001a,0x000004b4,0x000004b3,0x00050081,0x0000001a,0x000004b5,0x000004b4, + 0x00000338,0x00040039,0x0000001a,0x000004b6,0x00000060,0x00050083,0x0000001a,0x000004b7, + 0x000004b5,0x000004b6,0x0003003e,0x000004b2,0x000004b7,0x0004003d,0x0000001a,0x000004b9, + 0x000004b2,0x0004003d,0x0000001a,0x000004ba,0x000004aa,0x00050083,0x0000001a,0x000004bb, + 0x000004b9,0x000004ba,0x0003003e,0x000004b8,0x000004bb,0x00050041,0x00000007,0x000004bd, + 0x000004b2,0x000001fa,0x0004003d,0x00000006,0x000004be,0x000004bd,0x00050041,0x00000007, + 0x000004bf,0x000004aa,0x000001fa,0x0004003d,0x00000006,0x000004c0,0x000004bf,0x000500ba, + 0x000000a7,0x000004c1,0x000004be,0x000004c0,0x000600a9,0x00000036,0x000004c4,0x000004c1, + 0x000004c2,0x000004c3,0x00050041,0x00000037,0x000004c5,0x000004bc,0x000001fa,0x0003003e, + 0x000004c5,0x000004c4,0x00050041,0x00000007,0x000004c6,0x000004b2,0x00000293,0x0004003d, + 0x00000006,0x000004c7,0x000004c6,0x00050041,0x00000007,0x000004c8,0x000004aa,0x00000293, + 0x0004003d,0x00000006,0x000004c9,0x000004c8,0x000500ba,0x000000a7,0x000004ca,0x000004c7, + 0x000004c9,0x000600a9,0x00000036,0x000004cb,0x000004ca,0x000004c2,0x000004c3,0x00050041, + 0x00000037,0x000004cc,0x000004bc,0x00000293,0x0003003e,0x000004cc,0x000004cb,0x00050041, + 0x00000007,0x000004ce,0x000004b2,0x00000293,0x0004003d,0x00000006,0x000004cf,0x000004ce, + 0x00050041,0x00000007,0x000004d0,0x000004aa,0x00000293,0x0004003d,0x00000006,0x000004d1, + 0x000004d0,0x000500ba,0x000000a7,0x000004d2,0x000004cf,0x000004d1,0x0003003e,0x000004cd, + 0x000004d2,0x00050041,0x00000007,0x000004d4,0x000004b2,0x000001fa,0x0004003d,0x00000006, + 0x000004d5,0x000004d4,0x00050041,0x00000007,0x000004d6,0x000004aa,0x000001fa,0x0004003d, + 0x00000006,0x000004d7,0x000004d6,0x000500ba,0x000000a7,0x000004d8,0x000004d5,0x000004d7, + 0x0003003e,0x000004d3,0x000004d8,0x0004003d,0x00000055,0x000004da,0x000004bc,0x0004006f, + 0x0000001a,0x000004db,0x000004da,0x0003003e,0x000004d9,0x000004db,0x00050051,0x00000006, + 0x000004dd,0x0000010c,0x0000000a,0x000500b4,0x000000a7,0x000004de,0x000004dd,0x00000154, + 0x0003003e,0x000004dc,0x000004de,0x0003003e,0x000004df,0x00000197,0x0003003e,0x000004e0, + 0x00000197,0x000200f9,0x000004e1,0x000200f8,0x000004e1,0x000400f6,0x000004e3,0x000004e4, + 0x00000000,0x000200f9,0x000004e5,0x000200f8,0x000004e5,0x0004003d,0x00000036,0x000004e6, + 0x000004e0,0x000500b1,0x000000a7,0x000004e7,0x000004e6,0x000001a7,0x000400fa,0x000004e7, + 0x000004e2,0x000004e3,0x000200f8,0x000004e2,0x0003003e,0x000004e8,0x00000197,0x000200f9, + 0x000004e9,0x000200f8,0x000004e9,0x000400f6,0x000004eb,0x000004ec,0x00000000,0x000200f9, + 0x000004ed,0x000200f8,0x000004ed,0x0004003d,0x00000036,0x000004ee,0x000004e8,0x000500b1, + 0x000000a7,0x000004ef,0x000004ee,0x000001a7,0x000400fa,0x000004ef,0x000004ea,0x000004eb, + 0x000200f8,0x000004ea,0x0004003d,0x000000a7,0x000004f1,0x000004d3,0x000300f7,0x000004f4, + 0x00000000,0x000400fa,0x000004f1,0x000004f3,0x000004f7,0x000200f8,0x000004f3,0x0004003d, + 0x00000036,0x000004f5,0x000004e8,0x00050082,0x00000036,0x000004f6,0x000001a7,0x000004f5, + 0x0003003e,0x000004f2,0x000004f6,0x000200f9,0x000004f4,0x000200f8,0x000004f7,0x0004003d, + 0x00000036,0x000004f8,0x000004e8,0x0003003e,0x000004f2,0x000004f8,0x000200f9,0x000004f4, + 0x000200f8,0x000004f4,0x0004003d,0x00000036,0x000004f9,0x000004f2,0x0004003d,0x000000a7, + 0x000004fa,0x000004cd,0x000300f7,0x000004fd,0x00000000,0x000400fa,0x000004fa,0x000004fc, + 0x00000500,0x000200f8,0x000004fc,0x0004003d,0x00000036,0x000004fe,0x000004e0,0x00050082, + 0x00000036,0x000004ff,0x000001a7,0x000004fe,0x0003003e,0x000004fb,0x000004ff,0x000200f9, + 0x000004fd,0x000200f8,0x00000500,0x0004003d,0x00000036,0x00000501,0x000004e0,0x0003003e, + 0x000004fb,0x00000501,0x000200f9,0x000004fd,0x000200f8,0x000004fd,0x0004003d,0x00000036, + 0x00000502,0x000004fb,0x00050050,0x00000055,0x00000503,0x000004f9,0x00000502,0x0003003e, + 0x000004f0,0x00000503,0x0004003d,0x00000055,0x00000505,0x000004ae,0x0004003d,0x00000055, + 0x00000506,0x000004bc,0x00050080,0x00000055,0x00000507,0x00000505,0x00000506,0x0004003d, + 0x00000055,0x00000508,0x000004f0,0x00050080,0x00000055,0x00000509,0x00000507,0x00000508, + 0x0003003e,0x00000504,0x00000509,0x00040039,0x00000055,0x0000050b,0x00000057,0x0004003d, + 0x00000055,0x0000050d,0x00000504,0x0003003e,0x0000050c,0x0000050d,0x0003003e,0x0000050e, + 0x0000021e,0x0003003e,0x0000050f,0x0000050b,0x00070039,0x00000055,0x00000510,0x000000c9, + 0x0000050c,0x0000050e,0x0000050f,0x0003003e,0x0000050a,0x00000510,0x0004003d,0x00000036, + 0x00000515,0x000004df,0x0004003d,0x00000055,0x00000517,0x0000050a,0x0003003e,0x00000516, + 0x00000517,0x00050039,0x0000000e,0x00000518,0x00000109,0x00000516,0x00050041,0x0000000f, + 0x00000519,0x00000514,0x00000515,0x0003003e,0x00000519,0x00000518,0x0004003d,0x00000036, + 0x0000051a,0x000004df,0x00050080,0x00000036,0x0000051b,0x0000051a,0x0000023e,0x0003003e, + 0x000004df,0x0000051b,0x000200f9,0x000004ec,0x000200f8,0x000004ec,0x0004003d,0x00000036, + 0x0000051c,0x000004e8,0x00050080,0x00000036,0x0000051d,0x0000051c,0x0000023e,0x0003003e, + 0x000004e8,0x0000051d,0x000200f9,0x000004e9,0x000200f8,0x000004eb,0x000200f9,0x000004e4, + 0x000200f8,0x000004e4,0x0004003d,0x00000036,0x0000051e,0x000004e0,0x00050080,0x00000036, + 0x0000051f,0x0000051e,0x0000023e,0x0003003e,0x000004e0,0x0000051f,0x000200f9,0x000004e1, + 0x000200f8,0x000004e3,0x0004003d,0x000000a7,0x00000520,0x000004dc,0x000300f7,0x00000522, + 0x00000000,0x000400fa,0x00000520,0x00000521,0x00000522,0x000200f8,0x00000521,0x0003003e, + 0x000004df,0x00000197,0x000200f9,0x00000523,0x000200f8,0x00000523,0x000400f6,0x00000525, + 0x00000526,0x00000000,0x000200f9,0x00000527,0x000200f8,0x00000527,0x0004003d,0x00000036, + 0x00000528,0x000004df,0x000500b1,0x000000a7,0x00000529,0x00000528,0x000003ef,0x000400fa, + 0x00000529,0x00000524,0x00000525,0x000200f8,0x00000524,0x0004003d,0x00000036,0x0000052a, + 0x000004df,0x0004003d,0x00000036,0x0000052b,0x000004df,0x00050041,0x0000000f,0x0000052d, + 0x00000514,0x0000052b,0x0004003d,0x0000000e,0x0000052e,0x0000052d,0x0003003e,0x0000052c, + 0x0000052e,0x00050039,0x0000000e,0x0000052f,0x000000b6,0x0000052c,0x0003003e,0x00000530, + 0x0000052f,0x00050039,0x0000000e,0x00000531,0x000000bc,0x00000530,0x0003003e,0x00000532, + 0x00000531,0x00050039,0x0000000e,0x00000533,0x000000b9,0x00000532,0x00050041,0x0000000f, + 0x00000534,0x00000514,0x0000052a,0x0003003e,0x00000534,0x00000533,0x000200f9,0x00000526, + 0x000200f8,0x00000526,0x0004003d,0x00000036,0x00000535,0x000004df,0x00050080,0x00000036, + 0x00000536,0x00000535,0x0000023e,0x0003003e,0x000004df,0x00000536,0x000200f9,0x00000523, + 0x000200f8,0x00000525,0x000200f9,0x00000522,0x000200f8,0x00000522,0x0004003d,0x00000101, + 0x00000539,0x0000010d,0x0003003e,0x00000538,0x00000539,0x00060039,0x00000006,0x0000053a, + 0x00000106,0x0000010c,0x00000538,0x0004003d,0x00000101,0x0000053b,0x00000538,0x0003003e, + 0x0000010d,0x0000053b,0x0003003e,0x00000537,0x0000053a,0x0004003d,0x00000006,0x0000053d, + 0x00000537,0x00050081,0x00000006,0x0000053e,0x00000155,0x0000053d,0x00050085,0x00000006, + 0x00000540,0x0000053e,0x0000053f,0x0003003e,0x00000541,0x00000155,0x0003003e,0x00000542, + 0x00000540,0x00060039,0x00000006,0x00000543,0x0000003f,0x00000541,0x00000542,0x0003003e, + 0x0000053c,0x00000543,0x00050051,0x00000006,0x00000545,0x0000010c,0x00000007,0x00050085, + 0x00000006,0x00000546,0x00000545,0x000002b1,0x00050083,0x00000006,0x00000547,0x00000155, + 0x00000546,0x00050051,0x00000006,0x00000548,0x0000010c,0x00000009,0x00050083,0x00000006, + 0x00000549,0x00000155,0x00000548,0x00050041,0x00000007,0x0000054a,0x0000010d,0x0000019d, + 0x0004003d,0x00000006,0x0000054b,0x0000054a,0x00050085,0x00000006,0x0000054d,0x0000054b, + 0x0000054c,0x0003003e,0x0000054e,0x0000054d,0x00050039,0x00000006,0x0000054f,0x00000018, + 0x0000054e,0x0003003e,0x00000550,0x00000549,0x0003003e,0x00000551,0x0000054f,0x00060039, + 0x00000006,0x00000552,0x00000023,0x00000550,0x00000551,0x0003003e,0x00000553,0x00000547, + 0x0003003e,0x00000554,0x00000552,0x00060039,0x00000006,0x00000555,0x00000023,0x00000553, + 0x00000554,0x0003003e,0x00000544,0x00000555,0x0004003d,0x00000006,0x00000558,0x0000053c, + 0x0003003e,0x00000557,0x00000558,0x0004003d,0x00000006,0x0000055a,0x00000537,0x0003003e, + 0x00000559,0x0000055a,0x0004003d,0x00000006,0x0000055c,0x00000544,0x0003003e,0x0000055b, + 0x0000055c,0x00070039,0x00000006,0x0000055d,0x0000000c,0x00000557,0x00000559,0x0000055b, + 0x0003003e,0x00000556,0x0000055d,0x0003003e,0x000004df,0x00000197,0x0003003e,0x0000055e, + 0x00000197,0x000200f9,0x0000055f,0x000200f8,0x0000055f,0x000400f6,0x00000561,0x00000562, + 0x00000000,0x000200f9,0x00000563,0x000200f8,0x00000563,0x0004003d,0x00000036,0x00000564, + 0x0000055e,0x000500b1,0x000000a7,0x00000565,0x00000564,0x000001a7,0x000400fa,0x00000565, + 0x00000560,0x00000561,0x000200f8,0x00000560,0x0003003e,0x00000566,0x00000197,0x000200f9, + 0x00000567,0x000200f8,0x00000567,0x000400f6,0x00000569,0x0000056a,0x00000000,0x000200f9, + 0x0000056b,0x000200f8,0x0000056b,0x0004003d,0x00000036,0x0000056c,0x00000566,0x000500b1, + 0x000000a7,0x0000056d,0x0000056c,0x000001a7,0x000400fa,0x0000056d,0x00000568,0x00000569, + 0x000200f8,0x00000568,0x0004003d,0x000000a7,0x0000056f,0x000004d3,0x000300f7,0x00000572, + 0x00000000,0x000400fa,0x0000056f,0x00000571,0x00000575,0x000200f8,0x00000571,0x0004003d, + 0x00000036,0x00000573,0x00000566,0x00050082,0x00000036,0x00000574,0x000001a7,0x00000573, + 0x0003003e,0x00000570,0x00000574,0x000200f9,0x00000572,0x000200f8,0x00000575,0x0004003d, + 0x00000036,0x00000576,0x00000566,0x0003003e,0x00000570,0x00000576,0x000200f9,0x00000572, + 0x000200f8,0x00000572,0x0004003d,0x00000036,0x00000577,0x00000570,0x0004003d,0x000000a7, + 0x00000578,0x000004cd,0x000300f7,0x0000057b,0x00000000,0x000400fa,0x00000578,0x0000057a, + 0x0000057e,0x000200f8,0x0000057a,0x0004003d,0x00000036,0x0000057c,0x0000055e,0x00050082, + 0x00000036,0x0000057d,0x000001a7,0x0000057c,0x0003003e,0x00000579,0x0000057d,0x000200f9, + 0x0000057b,0x000200f8,0x0000057e,0x0004003d,0x00000036,0x0000057f,0x0000055e,0x0003003e, + 0x00000579,0x0000057f,0x000200f9,0x0000057b,0x000200f8,0x0000057b,0x0004003d,0x00000036, + 0x00000580,0x00000579,0x00050050,0x00000055,0x00000581,0x00000577,0x00000580,0x0003003e, + 0x0000056e,0x00000581,0x0004003d,0x0000001a,0x00000583,0x000004d9,0x0004003d,0x00000055, + 0x00000584,0x0000056e,0x0004006f,0x0000001a,0x00000585,0x00000584,0x00050081,0x0000001a, + 0x00000586,0x00000583,0x00000585,0x0003003e,0x00000582,0x00000586,0x0004003d,0x0000001a, + 0x00000588,0x000004b8,0x0004003d,0x0000001a,0x00000589,0x00000582,0x00050081,0x0000001a, + 0x0000058a,0x00000588,0x00000589,0x0003003e,0x00000587,0x0000058a,0x0004003d,0x00000055, + 0x0000058c,0x000004ae,0x0004003d,0x00000055,0x0000058d,0x000004bc,0x00050080,0x00000055, + 0x0000058e,0x0000058c,0x0000058d,0x0004003d,0x00000055,0x0000058f,0x0000056e,0x00050080, + 0x00000055,0x00000590,0x0000058e,0x0000058f,0x0003003e,0x0000058b,0x00000590,0x0004003d, + 0x00000055,0x00000592,0x0000058b,0x00040039,0x00000055,0x00000593,0x00000057,0x0003003e, + 0x00000594,0x00000592,0x0003003e,0x00000595,0x00000593,0x00060039,0x000000a7,0x00000596, + 0x000000d4,0x00000594,0x00000595,0x000600a9,0x00000006,0x00000597,0x00000596,0x00000155, + 0x00000154,0x0003003e,0x00000591,0x00000597,0x0004003d,0x000000a7,0x00000598,0x000004dc, + 0x000400a8,0x000000a7,0x00000599,0x00000598,0x000300f7,0x0000059b,0x00000000,0x000400fa, + 0x00000599,0x0000059a,0x0000059b,0x000200f8,0x0000059a,0x0004003d,0x00000006,0x0000059d, + 0x00000591,0x0004003d,0x0000001a,0x0000059f,0x00000587,0x0003003e,0x0000059e,0x0000059f, + 0x0004003d,0x00000006,0x000005a1,0x00000556,0x0003003e,0x000005a0,0x000005a1,0x00060039, + 0x00000006,0x000005a2,0x000000fe,0x0000059e,0x000005a0,0x00050085,0x00000006,0x000005a3, + 0x0000059d,0x000005a2,0x0003003e,0x0000059c,0x000005a3,0x0004003d,0x00000036,0x000005a4, + 0x000004df,0x00050041,0x0000000f,0x000005a5,0x00000514,0x000005a4,0x0004003d,0x0000000e, + 0x000005a6,0x000005a5,0x0004003d,0x00000006,0x000005a7,0x0000059c,0x0005008e,0x0000000e, + 0x000005a8,0x000005a6,0x000005a7,0x00050041,0x0000000f,0x000005a9,0x0000010d,0x0000023e, + 0x0004003d,0x0000000e,0x000005aa,0x000005a9,0x00050081,0x0000000e,0x000005ab,0x000005aa, + 0x000005a8,0x00050041,0x0000000f,0x000005ac,0x0000010d,0x0000023e,0x0003003e,0x000005ac, + 0x000005ab,0x0004003d,0x00000006,0x000005ad,0x0000059c,0x00050041,0x00000007,0x000005ae, + 0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005af,0x000005ae,0x00050081,0x00000006, + 0x000005b0,0x000005af,0x000005ad,0x00050041,0x00000007,0x000005b1,0x0000010d,0x000001a2, + 0x0003003e,0x000005b1,0x000005b0,0x000200f9,0x0000059b,0x000200f8,0x0000059b,0x0004003d, + 0x0000001a,0x000005b3,0x00000587,0x0004003d,0x0000001a,0x000005b4,0x00000587,0x00050094, + 0x00000006,0x000005b5,0x000005b3,0x000005b4,0x0003003e,0x000005b2,0x000005b5,0x0004003d, + 0x00000006,0x000005b8,0x000005b2,0x00050085,0x00000006,0x000005b9,0x000005b7,0x000005b8, + 0x0006000c,0x00000006,0x000005ba,0x00000001,0x0000001b,0x000005b9,0x0004003d,0x00000006, + 0x000005bb,0x00000591,0x00050085,0x00000006,0x000005bc,0x000005ba,0x000005bb,0x0003003e, + 0x000005b6,0x000005bc,0x0004003d,0x00000036,0x000005be,0x0000055e,0x000500aa,0x000000a7, + 0x000005bf,0x000005be,0x00000197,0x0004003d,0x00000036,0x000005c0,0x00000566,0x000500aa, + 0x000000a7,0x000005c1,0x000005c0,0x00000197,0x000500a7,0x000000a7,0x000005c2,0x000005bf, + 0x000005c1,0x0003003e,0x000005bd,0x000005c2,0x0004003d,0x00000036,0x000005c3,0x000004df, + 0x00050041,0x0000000f,0x000005c4,0x00000514,0x000005c3,0x0004003d,0x0000000e,0x000005c5, + 0x000005c4,0x0004003d,0x00000006,0x000005c6,0x000005b6,0x0004003d,0x000000a7,0x000005c8, + 0x000005bd,0x0003003e,0x000005c7,0x000005c8,0x00050041,0x000000a0,0x000005ca,0x0000010d, + 0x00000197,0x0004003d,0x0000009f,0x000005cb,0x000005ca,0x0003003e,0x000005c9,0x000005cb, + 0x00080039,0x00000002,0x000005cc,0x000000ae,0x000005c7,0x000005c9,0x000005c5,0x000005c6, + 0x0004003d,0x0000009f,0x000005cd,0x000005c9,0x00050041,0x000000a0,0x000005ce,0x0000010d, + 0x00000197,0x0003003e,0x000005ce,0x000005cd,0x0004003d,0x00000036,0x000005cf,0x000004df, + 0x00050080,0x00000036,0x000005d0,0x000005cf,0x0000023e,0x0003003e,0x000004df,0x000005d0, + 0x000200f9,0x0000056a,0x000200f8,0x0000056a,0x0004003d,0x00000036,0x000005d1,0x00000566, + 0x00050080,0x00000036,0x000005d2,0x000005d1,0x0000023e,0x0003003e,0x00000566,0x000005d2, + 0x000200f9,0x00000567,0x000200f8,0x00000569,0x000200f9,0x00000562,0x000200f8,0x00000562, + 0x0004003d,0x00000036,0x000005d3,0x0000055e,0x00050080,0x00000036,0x000005d4,0x000005d3, + 0x0000023e,0x0003003e,0x0000055e,0x000005d4,0x000200f9,0x0000055f,0x000200f8,0x00000561, + 0x00050041,0x000000a0,0x000005d6,0x0000010d,0x00000197,0x0004003d,0x0000009f,0x000005d7, + 0x000005d6,0x0003003e,0x000005d5,0x000005d7,0x00050039,0x00000002,0x000005d8,0x000000b2, + 0x000005d5,0x0004003d,0x0000009f,0x000005d9,0x000005d5,0x00050041,0x000000a0,0x000005da, + 0x0000010d,0x00000197,0x0003003e,0x000005da,0x000005d9,0x00050041,0x00000007,0x000005db, + 0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005dc,0x000005db,0x000500ba,0x000000a7, + 0x000005dd,0x000005dc,0x000002e7,0x000600a9,0x00000006,0x000005de,0x000005dd,0x00000155, + 0x00000154,0x00050041,0x00000007,0x000005df,0x0000010d,0x000001a2,0x0004003d,0x00000006, + 0x000005e0,0x000005df,0x00050085,0x00000006,0x000005e1,0x000005e0,0x000005de,0x00050041, + 0x00000007,0x000005e2,0x0000010d,0x000001a2,0x0003003e,0x000005e2,0x000005e1,0x00050041, + 0x00000007,0x000005e3,0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005e4,0x000005e3, + 0x000500ba,0x000000a7,0x000005e5,0x000005e4,0x000002e7,0x000300f7,0x000005e7,0x00000000, + 0x000400fa,0x000005e5,0x000005e6,0x000005e7,0x000200f8,0x000005e6,0x00050041,0x0000000f, + 0x000005e8,0x0000010d,0x0000023e,0x0004003d,0x0000000e,0x000005e9,0x000005e8,0x00050041, + 0x00000007,0x000005ea,0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005eb,0x000005ea, + 0x00060050,0x0000000e,0x000005ec,0x000005eb,0x000005eb,0x000005eb,0x00050088,0x0000000e, + 0x000005ed,0x000005e9,0x000005ec,0x00050041,0x0000000f,0x000005ee,0x0000010d,0x0000023e, + 0x0003003e,0x000005ee,0x000005ed,0x00050041,0x00000007,0x000005f0,0x0000010d,0x000001a2, + 0x0004003d,0x00000006,0x000005f1,0x000005f0,0x00050085,0x00000006,0x000005f2,0x000005f1, + 0x000005ef,0x00050041,0x00000007,0x000005f3,0x0000010d,0x000001a2,0x0003003e,0x000005f3, + 0x000005f2,0x00050041,0x000000a0,0x000005f5,0x0000010d,0x00000197,0x0004003d,0x0000009f, + 0x000005f6,0x000005f5,0x0003003e,0x000005f4,0x000005f6,0x00050041,0x0000000f,0x000005f8, + 0x0000010d,0x0000023e,0x0004003d,0x0000000e,0x000005f9,0x000005f8,0x0003003e,0x000005f7, + 0x000005f9,0x00060039,0x00000002,0x000005fa,0x000000f9,0x000005f4,0x000005f7,0x0004003d, + 0x0000000e,0x000005fb,0x000005f7,0x00050041,0x0000000f,0x000005fc,0x0000010d,0x0000023e, + 0x0003003e,0x000005fc,0x000005fb,0x000200f9,0x000005e7,0x000200f8,0x000005e7,0x0004003d, + 0x000000a7,0x000005fd,0x000004dc,0x000300f7,0x000005ff,0x00000000,0x000400fa,0x000005fd, + 0x000005fe,0x000005ff,0x000200f8,0x000005fe,0x00060041,0x0000000f,0x00000601,0x0000010d, + 0x00000197,0x00000197,0x0004003d,0x0000000e,0x00000602,0x00000601,0x0003003e,0x00000600, + 0x00000602,0x00050039,0x0000000e,0x00000603,0x000000b6,0x00000600,0x0003003e,0x00000604, + 0x00000603,0x00050039,0x0000000e,0x00000605,0x000000bf,0x00000604,0x0003003e,0x00000606, + 0x00000605,0x00050039,0x0000000e,0x00000607,0x000000b9,0x00000606,0x00050041,0x0000000f, + 0x00000608,0x0000010d,0x0000023e,0x0003003e,0x00000608,0x00000607,0x00050041,0x00000007, + 0x00000609,0x0000010d,0x000001a2,0x0003003e,0x00000609,0x00000155,0x00050041,0x00000007, + 0x0000060a,0x0000010d,0x0000019d,0x0003003e,0x0000060a,0x00000154,0x000200f9,0x000005ff, + 0x000200f8,0x000005ff,0x000100fd,0x00010038,0x00050036,0x0000002f,0x00000111,0x00000000, + 0x00000072,0x00030037,0x0000006d,0x00000110,0x000200f8,0x00000112,0x0004003b,0x0000006d, + 0x0000060b,0x00000007,0x0004003d,0x00000055,0x0000060c,0x00000110,0x0003003e,0x0000060b, + 0x0000060c,0x00050039,0x0000002f,0x0000060d,0x00000074,0x0000060b,0x000200fe,0x0000060d, + 0x00010038,0x00050036,0x000000ea,0x00000116,0x00000000,0x00000113,0x00030037,0x0000006d, + 0x00000114,0x00030037,0x0000006d,0x00000115,0x000200f8,0x00000117,0x0004003b,0x000000eb, + 0x00000610,0x00000007,0x0004003b,0x0000006d,0x00000612,0x00000007,0x0004003b,0x0000006d, + 0x00000614,0x00000007,0x0004003b,0x0000006d,0x00000615,0x00000007,0x0004003b,0x0000006d, + 0x00000618,0x00000007,0x0004003b,0x0000006d,0x0000061c,0x00000007,0x0004003b,0x0000006d, + 0x0000061e,0x00000007,0x0004003b,0x0000006d,0x0000061f,0x00000007,0x0004003b,0x0000006d, + 0x00000622,0x00000007,0x0004003b,0x0000006d,0x00000626,0x00000007,0x0004003b,0x0000006d, + 0x00000628,0x00000007,0x0004003b,0x0000006d,0x00000629,0x00000007,0x0004003b,0x0000006d, + 0x0000062c,0x00000007,0x0004003b,0x0000006d,0x00000630,0x00000007,0x0004003b,0x0000006d, + 0x00000632,0x00000007,0x0004003b,0x0000006d,0x00000633,0x00000007,0x0004003b,0x0000006d, + 0x00000636,0x00000007,0x0004003b,0x0000006d,0x0000063a,0x00000007,0x0004003b,0x0000006d, + 0x0000063c,0x00000007,0x0004003b,0x0000006d,0x0000063d,0x00000007,0x0004003b,0x0000006d, + 0x00000640,0x00000007,0x0004003b,0x0000006d,0x00000643,0x00000007,0x0004003b,0x0000006d, + 0x00000645,0x00000007,0x0004003b,0x0000006d,0x00000646,0x00000007,0x0004003b,0x0000006d, + 0x00000649,0x00000007,0x0004003b,0x0000006d,0x0000064d,0x00000007,0x0004003b,0x0000006d, + 0x0000064f,0x00000007,0x0004003b,0x0000006d,0x00000650,0x00000007,0x0004003b,0x0000006d, + 0x00000653,0x00000007,0x0004003b,0x0000006d,0x00000657,0x00000007,0x0004003b,0x0000006d, + 0x00000659,0x00000007,0x0004003b,0x0000006d,0x0000065a,0x00000007,0x0004003b,0x0000006d, + 0x0000065d,0x00000007,0x0004003b,0x0000006d,0x00000661,0x00000007,0x0004003b,0x0000006d, + 0x00000663,0x00000007,0x0004003b,0x0000006d,0x00000664,0x00000007,0x0004003b,0x0000006d, + 0x00000667,0x00000007,0x0004003b,0x0000006d,0x0000066b,0x00000007,0x0004003b,0x0000006d, + 0x0000066d,0x00000007,0x0004003b,0x0000006d,0x0000066e,0x00000007,0x0004003b,0x0000006d, + 0x00000671,0x00000007,0x0004003b,0x0000006d,0x00000675,0x00000007,0x0004003b,0x0000006d, + 0x00000677,0x00000007,0x0004003b,0x0000006d,0x00000678,0x00000007,0x0004003b,0x0000006d, + 0x0000067b,0x00000007,0x0004003b,0x0000006d,0x0000067f,0x00000007,0x0004003b,0x0000006d, + 0x00000681,0x00000007,0x0004003b,0x0000006d,0x00000682,0x00000007,0x0004003b,0x0000006d, + 0x00000685,0x00000007,0x0004003b,0x0000006d,0x00000689,0x00000007,0x0004003b,0x0000006d, + 0x0000068b,0x00000007,0x0004003b,0x0000006d,0x0000068c,0x00000007,0x0004003b,0x0000006d, + 0x0000068f,0x00000007,0x0004003b,0x0000006d,0x00000693,0x00000007,0x0004003b,0x0000006d, + 0x00000695,0x00000007,0x0004003b,0x0000006d,0x00000696,0x00000007,0x0004003b,0x0000006d, + 0x00000699,0x00000007,0x0004003b,0x0000006d,0x0000069d,0x00000007,0x0004003b,0x0000006d, + 0x0000069f,0x00000007,0x0004003b,0x0000006d,0x000006a0,0x00000007,0x0004003b,0x0000006d, + 0x000006a3,0x00000007,0x0004003b,0x0000006d,0x000006a7,0x00000007,0x0004003b,0x0000006d, + 0x000006a9,0x00000007,0x0004003b,0x0000006d,0x000006aa,0x00000007,0x0004003b,0x0000006d, + 0x000006ad,0x00000007,0x0004003d,0x00000055,0x00000613,0x00000114,0x0003003e,0x00000612, + 0x00000613,0x0003003e,0x00000614,0x00000611,0x0004003d,0x00000055,0x00000616,0x00000115, + 0x0003003e,0x00000615,0x00000616,0x00070039,0x00000055,0x00000617,0x000000f4,0x00000612, + 0x00000614,0x00000615,0x0003003e,0x00000618,0x00000617,0x00050039,0x0000002f,0x00000619, + 0x00000111,0x00000618,0x00050041,0x00000030,0x0000061a,0x00000610,0x00000197,0x0003003e, + 0x0000061a,0x00000619,0x0004003d,0x00000055,0x0000061d,0x00000114,0x0003003e,0x0000061c, + 0x0000061d,0x0003003e,0x0000061e,0x0000061b,0x0004003d,0x00000055,0x00000620,0x00000115, + 0x0003003e,0x0000061f,0x00000620,0x00070039,0x00000055,0x00000621,0x000000f4,0x0000061c, + 0x0000061e,0x0000061f,0x0003003e,0x00000622,0x00000621,0x00050039,0x0000002f,0x00000623, + 0x00000111,0x00000622,0x00050041,0x00000030,0x00000624,0x00000610,0x0000023e,0x0003003e, + 0x00000624,0x00000623,0x0004003d,0x00000055,0x00000627,0x00000114,0x0003003e,0x00000626, + 0x00000627,0x0003003e,0x00000628,0x00000625,0x0004003d,0x00000055,0x0000062a,0x00000115, + 0x0003003e,0x00000629,0x0000062a,0x00070039,0x00000055,0x0000062b,0x000000f4,0x00000626, + 0x00000628,0x00000629,0x0003003e,0x0000062c,0x0000062b,0x00050039,0x0000002f,0x0000062d, + 0x00000111,0x0000062c,0x00050041,0x00000030,0x0000062e,0x00000610,0x000001a2,0x0003003e, + 0x0000062e,0x0000062d,0x0004003d,0x00000055,0x00000631,0x00000114,0x0003003e,0x00000630, + 0x00000631,0x0003003e,0x00000632,0x0000062f,0x0004003d,0x00000055,0x00000634,0x00000115, + 0x0003003e,0x00000633,0x00000634,0x00070039,0x00000055,0x00000635,0x000000f4,0x00000630, + 0x00000632,0x00000633,0x0003003e,0x00000636,0x00000635,0x00050039,0x0000002f,0x00000637, + 0x00000111,0x00000636,0x00050041,0x00000030,0x00000638,0x00000610,0x000001a7,0x0003003e, + 0x00000638,0x00000637,0x0004003d,0x00000055,0x0000063b,0x00000114,0x0003003e,0x0000063a, + 0x0000063b,0x0003003e,0x0000063c,0x00000639,0x0004003d,0x00000055,0x0000063e,0x00000115, + 0x0003003e,0x0000063d,0x0000063e,0x00070039,0x00000055,0x0000063f,0x000000f4,0x0000063a, + 0x0000063c,0x0000063d,0x0003003e,0x00000640,0x0000063f,0x00050039,0x0000002f,0x00000641, + 0x00000111,0x00000640,0x00050041,0x00000030,0x00000642,0x00000610,0x0000019d,0x0003003e, + 0x00000642,0x00000641,0x0004003d,0x00000055,0x00000644,0x00000114,0x0003003e,0x00000643, + 0x00000644,0x0003003e,0x00000645,0x0000021e,0x0004003d,0x00000055,0x00000647,0x00000115, + 0x0003003e,0x00000646,0x00000647,0x00070039,0x00000055,0x00000648,0x000000f4,0x00000643, + 0x00000645,0x00000646,0x0003003e,0x00000649,0x00000648,0x00050039,0x0000002f,0x0000064a, + 0x00000111,0x00000649,0x00050041,0x00000030,0x0000064b,0x00000610,0x000003db,0x0003003e, + 0x0000064b,0x0000064a,0x0004003d,0x00000055,0x0000064e,0x00000114,0x0003003e,0x0000064d, + 0x0000064e,0x0003003e,0x0000064f,0x0000064c,0x0004003d,0x00000055,0x00000651,0x00000115, + 0x0003003e,0x00000650,0x00000651,0x00070039,0x00000055,0x00000652,0x000000f4,0x0000064d, + 0x0000064f,0x00000650,0x0003003e,0x00000653,0x00000652,0x00050039,0x0000002f,0x00000654, + 0x00000111,0x00000653,0x00050041,0x00000030,0x00000655,0x00000610,0x000003dc,0x0003003e, + 0x00000655,0x00000654,0x0004003d,0x00000055,0x00000658,0x00000114,0x0003003e,0x00000657, + 0x00000658,0x0003003e,0x00000659,0x00000656,0x0004003d,0x00000055,0x0000065b,0x00000115, + 0x0003003e,0x0000065a,0x0000065b,0x00070039,0x00000055,0x0000065c,0x000000f4,0x00000657, + 0x00000659,0x0000065a,0x0003003e,0x0000065d,0x0000065c,0x00050039,0x0000002f,0x0000065e, + 0x00000111,0x0000065d,0x00050041,0x00000030,0x0000065f,0x00000610,0x000001ac,0x0003003e, + 0x0000065f,0x0000065e,0x0004003d,0x00000055,0x00000662,0x00000114,0x0003003e,0x00000661, + 0x00000662,0x0003003e,0x00000663,0x00000660,0x0004003d,0x00000055,0x00000665,0x00000115, + 0x0003003e,0x00000664,0x00000665,0x00070039,0x00000055,0x00000666,0x000000f4,0x00000661, + 0x00000663,0x00000664,0x0003003e,0x00000667,0x00000666,0x00050039,0x0000002f,0x00000668, + 0x00000111,0x00000667,0x00050041,0x00000030,0x00000669,0x00000610,0x000003ee,0x0003003e, + 0x00000669,0x00000668,0x0004003d,0x00000055,0x0000066c,0x00000114,0x0003003e,0x0000066b, + 0x0000066c,0x0003003e,0x0000066d,0x0000066a,0x0004003d,0x00000055,0x0000066f,0x00000115, + 0x0003003e,0x0000066e,0x0000066f,0x00070039,0x00000055,0x00000670,0x000000f4,0x0000066b, + 0x0000066d,0x0000066e,0x0003003e,0x00000671,0x00000670,0x00050039,0x0000002f,0x00000672, + 0x00000111,0x00000671,0x00050041,0x00000030,0x00000673,0x00000610,0x000003ef,0x0003003e, + 0x00000673,0x00000672,0x0004003d,0x00000055,0x00000676,0x00000114,0x0003003e,0x00000675, + 0x00000676,0x0003003e,0x00000677,0x00000674,0x0004003d,0x00000055,0x00000679,0x00000115, + 0x0003003e,0x00000678,0x00000679,0x00070039,0x00000055,0x0000067a,0x000000f4,0x00000675, + 0x00000677,0x00000678,0x0003003e,0x0000067b,0x0000067a,0x00050039,0x0000002f,0x0000067c, + 0x00000111,0x0000067b,0x00050041,0x00000030,0x0000067d,0x00000610,0x000001b2,0x0003003e, + 0x0000067d,0x0000067c,0x0004003d,0x00000055,0x00000680,0x00000114,0x0003003e,0x0000067f, + 0x00000680,0x0003003e,0x00000681,0x0000067e,0x0004003d,0x00000055,0x00000683,0x00000115, + 0x0003003e,0x00000682,0x00000683,0x00070039,0x00000055,0x00000684,0x000000f4,0x0000067f, + 0x00000681,0x00000682,0x0003003e,0x00000685,0x00000684,0x00050039,0x0000002f,0x00000686, + 0x00000111,0x00000685,0x00050041,0x00000030,0x00000687,0x00000610,0x000003f0,0x0003003e, + 0x00000687,0x00000686,0x0004003d,0x00000055,0x0000068a,0x00000114,0x0003003e,0x00000689, + 0x0000068a,0x0003003e,0x0000068b,0x00000688,0x0004003d,0x00000055,0x0000068d,0x00000115, + 0x0003003e,0x0000068c,0x0000068d,0x00070039,0x00000055,0x0000068e,0x000000f4,0x00000689, + 0x0000068b,0x0000068c,0x0003003e,0x0000068f,0x0000068e,0x00050039,0x0000002f,0x00000690, + 0x00000111,0x0000068f,0x00050041,0x00000030,0x00000691,0x00000610,0x00000402,0x0003003e, + 0x00000691,0x00000690,0x0004003d,0x00000055,0x00000694,0x00000114,0x0003003e,0x00000693, + 0x00000694,0x0003003e,0x00000695,0x00000692,0x0004003d,0x00000055,0x00000697,0x00000115, + 0x0003003e,0x00000696,0x00000697,0x00070039,0x00000055,0x00000698,0x000000f4,0x00000693, + 0x00000695,0x00000696,0x0003003e,0x00000699,0x00000698,0x00050039,0x0000002f,0x0000069a, + 0x00000111,0x00000699,0x00050041,0x00000030,0x0000069b,0x00000610,0x000001b7,0x0003003e, + 0x0000069b,0x0000069a,0x0004003d,0x00000055,0x0000069e,0x00000114,0x0003003e,0x0000069d, + 0x0000069e,0x0003003e,0x0000069f,0x0000069c,0x0004003d,0x00000055,0x000006a1,0x00000115, + 0x0003003e,0x000006a0,0x000006a1,0x00070039,0x00000055,0x000006a2,0x000000f4,0x0000069d, + 0x0000069f,0x000006a0,0x0003003e,0x000006a3,0x000006a2,0x00050039,0x0000002f,0x000006a4, + 0x00000111,0x000006a3,0x00050041,0x00000030,0x000006a5,0x00000610,0x00000403,0x0003003e, + 0x000006a5,0x000006a4,0x0004003d,0x00000055,0x000006a8,0x00000114,0x0003003e,0x000006a7, + 0x000006a8,0x0003003e,0x000006a9,0x000006a6,0x0004003d,0x00000055,0x000006ab,0x00000115, + 0x0003003e,0x000006aa,0x000006ab,0x00070039,0x00000055,0x000006ac,0x000000f4,0x000006a7, + 0x000006a9,0x000006aa,0x0003003e,0x000006ad,0x000006ac,0x00050039,0x0000002f,0x000006ae, + 0x00000111,0x000006ad,0x00050041,0x00000030,0x000006af,0x00000610,0x000001bd,0x0003003e, + 0x000006af,0x000006ae,0x0004003d,0x000000ea,0x000006b0,0x00000610,0x000200fe,0x000006b0, + 0x00010038,0x00050036,0x0000002f,0x0000011b,0x00000000,0x00000118,0x00030037,0x0000001b, + 0x00000119,0x00030037,0x0000006d,0x0000011a,0x000200f8,0x0000011c,0x0004003b,0x0000001b, + 0x000006b3,0x00000007,0x0004003b,0x0000001b,0x000006b9,0x00000007,0x0004003b,0x0000001b, + 0x000006ba,0x00000007,0x0004003b,0x00000007,0x000006c1,0x00000007,0x0004003b,0x00000007, + 0x000006c2,0x00000007,0x0004003b,0x00000007,0x000006c6,0x00000007,0x0004003b,0x00000007, + 0x000006c7,0x00000007,0x0004003b,0x00000007,0x000006ce,0x00000007,0x0004003b,0x00000007, + 0x000006cf,0x00000007,0x0004003b,0x00000007,0x000006d3,0x00000007,0x0004003b,0x00000007, + 0x000006d4,0x00000007,0x0004003b,0x0000006d,0x000006d7,0x00000007,0x0004003b,0x00000030, + 0x000006db,0x00000007,0x0004003b,0x0000006d,0x000006dc,0x00000007,0x0004003b,0x0000006d, + 0x000006de,0x00000007,0x0004003b,0x000000eb,0x000006e1,0x00000007,0x0004003b,0x0000001b, + 0x000006e2,0x00000007,0x0004003d,0x0000001a,0x000006b4,0x00000119,0x0004003d,0x00000055, + 0x000006b5,0x0000011a,0x0004006f,0x0000001a,0x000006b6,0x000006b5,0x00050085,0x0000001a, + 0x000006b7,0x000006b4,0x000006b6,0x00050083,0x0000001a,0x000006b8,0x000006b7,0x00000338, + 0x0003003e,0x000006b3,0x000006b8,0x0004003d,0x0000001a,0x000006bb,0x000006b3,0x0003003e, + 0x000006ba,0x000006bb,0x00050039,0x0000001a,0x000006bc,0x0000001e,0x000006ba,0x0003003e, + 0x000006b9,0x000006bc,0x00050041,0x00000037,0x000006bd,0x0000011a,0x000001fa,0x0004003d, + 0x00000036,0x000006be,0x000006bd,0x00050082,0x00000036,0x000006bf,0x000006be,0x0000023e, + 0x0004006f,0x00000006,0x000006c0,0x000006bf,0x0003003e,0x000006c1,0x000006c0,0x00050041, + 0x00000007,0x000006c3,0x000006b3,0x000001fa,0x0004003d,0x00000006,0x000006c4,0x000006c3, + 0x0003003e,0x000006c2,0x000006c4,0x00060039,0x00000006,0x000006c5,0x00000023,0x000006c1, + 0x000006c2,0x0003003e,0x000006c6,0x00000154,0x0003003e,0x000006c7,0x000006c5,0x00060039, + 0x00000006,0x000006c8,0x0000003f,0x000006c6,0x000006c7,0x00050041,0x00000007,0x000006c9, + 0x000006b3,0x000001fa,0x0003003e,0x000006c9,0x000006c8,0x00050041,0x00000037,0x000006ca, + 0x0000011a,0x00000293,0x0004003d,0x00000036,0x000006cb,0x000006ca,0x00050082,0x00000036, + 0x000006cc,0x000006cb,0x0000023e,0x0004006f,0x00000006,0x000006cd,0x000006cc,0x0003003e, + 0x000006ce,0x000006cd,0x00050041,0x00000007,0x000006d0,0x000006b3,0x00000293,0x0004003d, + 0x00000006,0x000006d1,0x000006d0,0x0003003e,0x000006cf,0x000006d1,0x00060039,0x00000006, + 0x000006d2,0x00000023,0x000006ce,0x000006cf,0x0003003e,0x000006d3,0x00000154,0x0003003e, + 0x000006d4,0x000006d2,0x00060039,0x00000006,0x000006d5,0x0000003f,0x000006d3,0x000006d4, + 0x00050041,0x00000007,0x000006d6,0x000006b3,0x00000293,0x0003003e,0x000006d6,0x000006d5, + 0x0004003d,0x0000001a,0x000006d8,0x000006b3,0x0006000c,0x0000001a,0x000006d9,0x00000001, + 0x00000008,0x000006d8,0x0004006e,0x00000055,0x000006da,0x000006d9,0x0003003e,0x000006d7, + 0x000006da,0x0004003d,0x00000055,0x000006dd,0x000006d7,0x0003003e,0x000006dc,0x000006dd, + 0x0004003d,0x00000055,0x000006df,0x0000011a,0x0003003e,0x000006de,0x000006df,0x00060039, + 0x000000ea,0x000006e0,0x00000116,0x000006dc,0x000006de,0x0003003e,0x000006e1,0x000006e0, + 0x0004003d,0x0000001a,0x000006e3,0x000006b9,0x0003003e,0x000006e2,0x000006e3,0x00060039, + 0x0000002f,0x000006e4,0x000000ef,0x000006e1,0x000006e2,0x0003003e,0x000006db,0x000006e4, + 0x0004003d,0x0000002f,0x000006e5,0x000006db,0x000200fe,0x000006e5,0x00010038,0x00050036, + 0x0000001a,0x00000120,0x00000000,0x0000011d,0x00030037,0x0000006d,0x0000011e,0x00030037, + 0x0000001b,0x0000011f,0x000200f8,0x00000121,0x0004003b,0x0000001b,0x000006e8,0x00000007, + 0x0004003b,0x0000006d,0x000006ee,0x00000007,0x0004003d,0x0000001a,0x000006e9,0x0000011f, + 0x00040039,0x00000055,0x000006ea,0x00000057,0x0004006f,0x0000001a,0x000006eb,0x000006ea, + 0x00050085,0x0000001a,0x000006ec,0x000006e9,0x000006eb,0x0004006e,0x00000055,0x000006ed, + 0x000006ec,0x0003003e,0x000006ee,0x000006ed,0x00050039,0x0000001a,0x000006ef,0x00000094, + 0x000006ee,0x0003003e,0x000006e8,0x000006ef,0x0004003d,0x0000001a,0x000006f0,0x000006e8, + 0x000200fe,0x000006f0,0x00010038,0x00050036,0x00000002,0x00000125,0x00000000,0x00000123, + 0x00030037,0x00000122,0x00000124,0x000200f8,0x00000126,0x0004003b,0x0000001b,0x000006f9, + 0x00000007,0x00050041,0x0000001b,0x000006f3,0x00000124,0x0000023e,0x0004003d,0x0000001a, + 0x000006f4,0x000006f3,0x00050041,0x0000001b,0x000006f5,0x00000124,0x0000019d,0x0004003d, + 0x0000001a,0x000006f6,0x000006f5,0x00050081,0x0000001a,0x000006f7,0x000006f4,0x000006f6, + 0x00050041,0x0000001b,0x000006f8,0x00000124,0x000003db,0x0003003e,0x000006f8,0x000006f7, + 0x00050041,0x0000001b,0x000006fa,0x00000124,0x000003db,0x0004003d,0x0000001a,0x000006fb, + 0x000006fa,0x0003003e,0x000006f9,0x000006fb,0x00050039,0x000000a7,0x000006fc,0x000000c3, + 0x000006f9,0x00050041,0x000000a8,0x000006fd,0x00000124,0x000001b7,0x0003003e,0x000006fd, + 0x000006fc,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000129,0x00000000,0x0000010b, + 0x00030037,0x00000100,0x00000127,0x00030037,0x00000102,0x00000128,0x000200f8,0x0000012a, + 0x0004003b,0x00000030,0x000006fe,0x00000007,0x0004003b,0x0000001b,0x00000700,0x00000007, + 0x0004003b,0x0000006d,0x00000702,0x00000007,0x0004003b,0x0000000f,0x00000711,0x00000007, + 0x00040039,0x00000055,0x000006ff,0x0000005d,0x00050051,0x0000001a,0x00000701,0x00000127, + 0x00000005,0x0003003e,0x00000700,0x00000701,0x0003003e,0x00000702,0x000006ff,0x00060039, + 0x0000002f,0x00000703,0x0000011b,0x00000700,0x00000702,0x0003003e,0x000006fe,0x00000703, + 0x0004003d,0x0000002f,0x00000704,0x000006fe,0x0008004f,0x0000000e,0x00000705,0x00000704, + 0x00000704,0x00000000,0x00000001,0x00000002,0x00050041,0x0000000f,0x00000706,0x00000128, + 0x000001a7,0x0003003e,0x00000706,0x00000705,0x00040039,0x00000006,0x00000707,0x00000067, + 0x00050041,0x0000000f,0x00000708,0x00000128,0x000001a7,0x0004003d,0x0000000e,0x00000709, + 0x00000708,0x0005008e,0x0000000e,0x0000070a,0x00000709,0x00000707,0x00050041,0x0000000f, + 0x0000070b,0x00000128,0x000001a7,0x0003003e,0x0000070b,0x0000070a,0x00040039,0x00000006, + 0x0000070c,0x00000096,0x00050041,0x0000000f,0x0000070d,0x00000128,0x000001a7,0x0004003d, + 0x0000000e,0x0000070e,0x0000070d,0x0005008e,0x0000000e,0x0000070f,0x0000070e,0x0000070c, + 0x00050041,0x0000000f,0x00000710,0x00000128,0x000001a7,0x0003003e,0x00000710,0x0000070f, + 0x00050041,0x0000000f,0x00000712,0x00000128,0x000001a7,0x0004003d,0x0000000e,0x00000713, + 0x00000712,0x0003003e,0x00000711,0x00000713,0x00050039,0x0000000e,0x00000714,0x000000b9, + 0x00000711,0x00050041,0x0000000f,0x00000715,0x00000128,0x000001a7,0x0003003e,0x00000715, + 0x00000714,0x00050041,0x00000007,0x00000717,0x000006fe,0x00000716,0x0004003d,0x00000006, + 0x00000718,0x00000717,0x00050041,0x00000007,0x00000719,0x00000128,0x000003db,0x0003003e, + 0x00000719,0x00000718,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000012d,0x00000000, + 0x0000010b,0x00030037,0x00000100,0x0000012b,0x00030037,0x00000102,0x0000012c,0x000200f8, + 0x0000012e,0x0004003b,0x00000007,0x00000727,0x00000007,0x0004003b,0x00000007,0x00000728, + 0x00000007,0x0004003b,0x0000000f,0x0000072b,0x00000007,0x0004003b,0x0000000f,0x0000072f, + 0x00000007,0x0004003b,0x0000000f,0x00000731,0x00000007,0x0004003b,0x0000000f,0x00000734, + 0x00000007,0x0004003b,0x0000000f,0x00000738,0x00000007,0x0004003b,0x0000000f,0x0000073a, + 0x00000007,0x0004003b,0x00000007,0x0000073d,0x00000007,0x0004003b,0x00000007,0x00000743, + 0x00000007,0x0004003b,0x0000000f,0x00000745,0x00000007,0x0004003b,0x0000000f,0x00000748, + 0x00000007,0x0004003b,0x00000007,0x0000074b,0x00000007,0x0004003b,0x0000000f,0x0000074f, + 0x00000007,0x0004003b,0x0000000f,0x00000754,0x00000007,0x00050041,0x00000007,0x0000071a, + 0x0000012c,0x0000019d,0x0004003d,0x00000006,0x0000071b,0x0000071a,0x000500ba,0x000000a7, + 0x0000071c,0x0000071b,0x000002e7,0x000600a9,0x00000006,0x0000071d,0x0000071c,0x00000155, + 0x00000154,0x00050041,0x00000007,0x0000071e,0x0000012c,0x0000019d,0x0004003d,0x00000006, + 0x0000071f,0x0000071e,0x00050085,0x00000006,0x00000720,0x0000071f,0x0000071d,0x00050041, + 0x00000007,0x00000721,0x0000012c,0x0000019d,0x0003003e,0x00000721,0x00000720,0x00050041, + 0x00000007,0x00000722,0x0000012c,0x0000019d,0x0004003d,0x00000006,0x00000723,0x00000722, + 0x00050041,0x00000007,0x00000724,0x0000012c,0x000001a2,0x0004003d,0x00000006,0x00000725, + 0x00000724,0x00050081,0x00000006,0x00000726,0x00000723,0x00000725,0x0003003e,0x00000727, + 0x000002e7,0x0003003e,0x00000728,0x00000726,0x00060039,0x00000006,0x00000729,0x0000003f, + 0x00000727,0x00000728,0x00050041,0x00000007,0x0000072a,0x0000012c,0x0000019d,0x0003003e, + 0x0000072a,0x00000729,0x00050041,0x0000000f,0x0000072c,0x0000012c,0x0000023e,0x0004003d, + 0x0000000e,0x0000072d,0x0000072c,0x0003003e,0x0000072b,0x0000072d,0x00050039,0x0000000e, + 0x0000072e,0x000000b6,0x0000072b,0x0003003e,0x0000072f,0x0000072e,0x00050039,0x0000000e, + 0x00000730,0x000000bc,0x0000072f,0x0003003e,0x00000731,0x00000730,0x00050039,0x0000000e, + 0x00000732,0x000000b9,0x00000731,0x00050041,0x0000000f,0x00000733,0x0000012c,0x0000023e, + 0x0003003e,0x00000733,0x00000732,0x00050041,0x0000000f,0x00000735,0x0000012c,0x000001a7, + 0x0004003d,0x0000000e,0x00000736,0x00000735,0x0003003e,0x00000734,0x00000736,0x00050039, + 0x0000000e,0x00000737,0x000000b6,0x00000734,0x0003003e,0x00000738,0x00000737,0x00050039, + 0x0000000e,0x00000739,0x000000bc,0x00000738,0x0003003e,0x0000073a,0x00000739,0x00050039, + 0x0000000e,0x0000073b,0x000000b9,0x0000073a,0x00050041,0x0000000f,0x0000073c,0x0000012c, + 0x000001a7,0x0003003e,0x0000073c,0x0000073b,0x00050041,0x00000007,0x0000073e,0x0000012c, + 0x000001a2,0x0004003d,0x00000006,0x0000073f,0x0000073e,0x00050041,0x00000007,0x00000740, + 0x0000012c,0x0000019d,0x0004003d,0x00000006,0x00000741,0x00000740,0x00050088,0x00000006, + 0x00000742,0x0000073f,0x00000741,0x0003003e,0x00000743,0x00000742,0x00050039,0x00000006, + 0x00000744,0x00000018,0x00000743,0x0003003e,0x0000073d,0x00000744,0x00050041,0x0000000f, + 0x00000746,0x0000012c,0x000001a7,0x0004003d,0x0000000e,0x00000747,0x00000746,0x0003003e, + 0x00000745,0x00000747,0x00050041,0x0000000f,0x00000749,0x0000012c,0x0000023e,0x0004003d, + 0x0000000e,0x0000074a,0x00000749,0x0003003e,0x00000748,0x0000074a,0x0004003d,0x00000006, + 0x0000074c,0x0000073d,0x0003003e,0x0000074b,0x0000074c,0x00070039,0x0000000e,0x0000074d, + 0x00000014,0x00000745,0x00000748,0x0000074b,0x00050041,0x0000000f,0x0000074e,0x0000012c, + 0x000001a7,0x0003003e,0x0000074e,0x0000074d,0x00050041,0x0000000f,0x00000750,0x0000012c, + 0x000001a7,0x0004003d,0x0000000e,0x00000751,0x00000750,0x0003003e,0x0000074f,0x00000751, + 0x00050039,0x0000000e,0x00000752,0x000000b6,0x0000074f,0x00050041,0x0000000f,0x00000753, + 0x0000012c,0x000001a7,0x0003003e,0x00000753,0x00000752,0x00050041,0x0000000f,0x00000755, + 0x0000012c,0x000001a7,0x0004003d,0x0000000e,0x00000756,0x00000755,0x0003003e,0x00000754, + 0x00000756,0x00050039,0x0000000e,0x00000757,0x000000bf,0x00000754,0x00050041,0x0000000f, + 0x00000758,0x0000012c,0x000001a7,0x0003003e,0x00000758,0x00000757,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000131,0x00000000,0x0000010b,0x00030037,0x00000100,0x0000012f, + 0x00030037,0x00000102,0x00000130,0x000200f8,0x00000132,0x0004003b,0x00000007,0x00000759, + 0x00000007,0x0004003b,0x00000007,0x0000075d,0x00000007,0x0004003b,0x00000007,0x0000075f, + 0x00000007,0x0004003b,0x00000007,0x00000764,0x00000007,0x0004003b,0x00000007,0x00000766, + 0x00000007,0x0004003b,0x00000007,0x00000769,0x00000007,0x0004003b,0x00000007,0x0000076a, + 0x00000007,0x0004003b,0x00000007,0x0000076c,0x00000007,0x0004003b,0x00000007,0x0000076e, + 0x00000007,0x0004003b,0x00000007,0x00000770,0x00000007,0x0004003b,0x00000007,0x00000771, + 0x00000007,0x0004003b,0x00000007,0x00000773,0x00000007,0x0004003b,0x00000007,0x00000776, + 0x00000007,0x0004003b,0x00000007,0x00000778,0x00000007,0x0004003b,0x00000007,0x0000077a, + 0x00000007,0x0004003b,0x00000007,0x0000077c,0x00000007,0x0004003b,0x00000007,0x0000077e, + 0x00000007,0x0004003b,0x00000007,0x00000780,0x00000007,0x0004003b,0x00000007,0x00000782, + 0x00000007,0x0004003b,0x00000007,0x00000784,0x00000007,0x0004003b,0x00000007,0x00000785, + 0x00000007,0x0004003b,0x00000007,0x00000786,0x00000007,0x0004003b,0x0000000f,0x00000789, + 0x00000007,0x0004003b,0x0000000f,0x00000791,0x00000007,0x0004003b,0x0000000f,0x00000794, + 0x00000007,0x0004003b,0x0000000f,0x00000796,0x00000007,0x0004003b,0x0000000f,0x00000798, + 0x00000007,0x0004003b,0x0000000f,0x000007a5,0x00000007,0x0004003b,0x0000000f,0x000007a8, + 0x00000007,0x0004003b,0x00000007,0x000007af,0x00000007,0x0004003b,0x00000007,0x000007b0, + 0x00000007,0x0004003b,0x00000007,0x000007b2,0x00000007,0x0004003b,0x00000007,0x000007bb, + 0x00000007,0x0004003b,0x0000000f,0x000007be,0x00000007,0x0004003b,0x0000000f,0x000007c0, + 0x00000007,0x0004003b,0x00000007,0x000007c3,0x00000007,0x00050051,0x00000006,0x0000075a, + 0x0000012f,0x00000006,0x00050088,0x00000006,0x0000075c,0x0000075a,0x0000075b,0x0003003e, + 0x0000075d,0x0000075c,0x00050039,0x00000006,0x0000075e,0x00000018,0x0000075d,0x0003003e, + 0x00000759,0x0000075e,0x00050051,0x00000006,0x00000761,0x0000012f,0x0000000c,0x00050088, + 0x00000006,0x00000762,0x00000761,0x0000075b,0x00050083,0x00000006,0x00000763,0x00000760, + 0x00000762,0x0003003e,0x00000764,0x00000763,0x00050039,0x00000006,0x00000765,0x00000018, + 0x00000764,0x0003003e,0x0000075f,0x00000765,0x00050051,0x00000006,0x00000767,0x0000012f, + 0x0000000a,0x00050083,0x00000006,0x00000768,0x00000155,0x00000767,0x0003003e,0x00000766, + 0x00000768,0x00050051,0x00000006,0x0000076b,0x0000012f,0x00000008,0x0003003e,0x0000076a, + 0x0000076b,0x0003003e,0x0000076c,0x000002b1,0x00060039,0x00000006,0x0000076d,0x00000053, + 0x0000076a,0x0000076c,0x0003003e,0x00000769,0x0000076d,0x00050051,0x00000006,0x0000076f, + 0x0000012f,0x00000009,0x0003003e,0x0000076e,0x0000076f,0x0004003d,0x00000006,0x00000772, + 0x00000769,0x0003003e,0x00000771,0x00000772,0x0004003d,0x00000006,0x00000774,0x0000076e, + 0x0003003e,0x00000773,0x00000774,0x00060039,0x00000006,0x00000775,0x0000003f,0x00000771, + 0x00000773,0x0004003d,0x00000006,0x00000777,0x00000766,0x0003003e,0x00000776,0x00000777, + 0x0003003e,0x00000778,0x00000775,0x00060039,0x00000006,0x00000779,0x0000003f,0x00000776, + 0x00000778,0x0004003d,0x00000006,0x0000077b,0x0000075f,0x0003003e,0x0000077a,0x0000077b, + 0x0003003e,0x0000077c,0x00000779,0x00060039,0x00000006,0x0000077d,0x0000003f,0x0000077a, + 0x0000077c,0x0004003d,0x00000006,0x0000077f,0x00000759,0x0003003e,0x0000077e,0x0000077f, + 0x0003003e,0x00000780,0x0000077d,0x00060039,0x00000006,0x00000781,0x0000003f,0x0000077e, + 0x00000780,0x0003003e,0x00000770,0x00000781,0x0003003e,0x00000784,0x00000783,0x0003003e, + 0x00000785,0x00000155,0x0004003d,0x00000006,0x00000787,0x00000770,0x0003003e,0x00000786, + 0x00000787,0x00070039,0x00000006,0x00000788,0x0000000c,0x00000784,0x00000785,0x00000786, + 0x0003003e,0x00000782,0x00000788,0x00060041,0x0000000f,0x0000078a,0x00000130,0x00000197, + 0x0000023e,0x0004003d,0x0000000e,0x0000078b,0x0000078a,0x00050085,0x0000000e,0x0000078e, + 0x0000078b,0x0000078d,0x0004003d,0x00000006,0x0000078f,0x00000782,0x0005008e,0x0000000e, + 0x00000790,0x0000078e,0x0000078f,0x0003003e,0x00000789,0x00000790,0x0004003d,0x0000000e, + 0x00000795,0x00000789,0x0003003e,0x00000794,0x00000795,0x0003003e,0x00000796,0x00000793, + 0x00060039,0x0000000e,0x00000797,0x00000047,0x00000794,0x00000796,0x0003003e,0x00000791, + 0x00000797,0x00050041,0x0000000f,0x00000799,0x00000130,0x000001a7,0x0004003d,0x0000000e, + 0x0000079a,0x00000799,0x00060041,0x0000000f,0x0000079b,0x00000130,0x00000197,0x00000197, + 0x0004003d,0x0000000e,0x0000079c,0x0000079b,0x00050083,0x0000000e,0x0000079d,0x0000079a, + 0x0000079c,0x0004003d,0x0000000e,0x0000079e,0x00000791,0x00050088,0x0000000e,0x0000079f, + 0x0000079d,0x0000079e,0x0003003e,0x00000798,0x0000079f,0x0004003d,0x0000000e,0x000007a0, + 0x00000798,0x0006000c,0x00000006,0x000007a1,0x00000001,0x00000042,0x000007a0,0x000500ba, + 0x000000a7,0x000007a2,0x000007a1,0x00000155,0x000300f7,0x000007a4,0x00000000,0x000400fa, + 0x000007a2,0x000007a3,0x000007a4,0x000200f8,0x000007a3,0x0004003d,0x0000000e,0x000007a6, + 0x00000798,0x0006000c,0x0000000e,0x000007a7,0x00000001,0x00000045,0x000007a6,0x0003003e, + 0x000007a5,0x000007a7,0x0004003d,0x0000000e,0x000007a9,0x000007a5,0x0004003d,0x0000000e, + 0x000007aa,0x00000789,0x00050085,0x0000000e,0x000007ab,0x000007a9,0x000007aa,0x00060041, + 0x0000000f,0x000007ac,0x00000130,0x00000197,0x00000197,0x0004003d,0x0000000e,0x000007ad, + 0x000007ac,0x00050081,0x0000000e,0x000007ae,0x000007ab,0x000007ad,0x0003003e,0x000007a8, + 0x000007ae,0x00050051,0x00000006,0x000007b1,0x0000012f,0x0000000b,0x0003003e,0x000007b0, + 0x000007b1,0x00050041,0x00000007,0x000007b3,0x00000130,0x000003dc,0x0004003d,0x00000006, + 0x000007b4,0x000007b3,0x0003003e,0x000007b2,0x000007b4,0x00060039,0x00000006,0x000007b5, + 0x0000003f,0x000007b0,0x000007b2,0x00050051,0x00000006,0x000007b6,0x0000012f,0x0000000a, + 0x00050085,0x00000006,0x000007b7,0x000007b5,0x000007b6,0x00050051,0x00000006,0x000007b8, + 0x0000012f,0x00000007,0x00050083,0x00000006,0x000007b9,0x00000155,0x000007b8,0x00050085, + 0x00000006,0x000007ba,0x000007b7,0x000007b9,0x0003003e,0x000007af,0x000007ba,0x0004003d, + 0x00000006,0x000007bc,0x000007af,0x0003003e,0x000007bb,0x000007bc,0x00050039,0x00000006, + 0x000007bd,0x00000018,0x000007bb,0x0004003d,0x0000000e,0x000007bf,0x000007a8,0x0003003e, + 0x000007be,0x000007bf,0x00050041,0x0000000f,0x000007c1,0x00000130,0x000001a7,0x0004003d, + 0x0000000e,0x000007c2,0x000007c1,0x0003003e,0x000007c0,0x000007c2,0x0003003e,0x000007c3, + 0x000007bd,0x00070039,0x0000000e,0x000007c4,0x00000014,0x000007be,0x000007c0,0x000007c3, + 0x00050041,0x0000000f,0x000007c5,0x00000130,0x000001a7,0x0003003e,0x000007c5,0x000007c4, + 0x000200f9,0x000007a4,0x000200f8,0x000007a4,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000136,0x00000000,0x00000133,0x00030037,0x00000122,0x00000134,0x00030037,0x00000102, + 0x00000135,0x000200f8,0x00000137,0x0004003b,0x00000007,0x000007cf,0x00000007,0x0004003b, + 0x00000007,0x000007d0,0x00000007,0x0004003b,0x00000007,0x000007d4,0x00000007,0x0004003b, + 0x00000007,0x000007d7,0x00000007,0x0004003b,0x00000007,0x000007db,0x00000007,0x0004003b, + 0x00000007,0x000007dc,0x00000007,0x0004003b,0x00000007,0x000007e3,0x00000007,0x0004003b, + 0x00000007,0x000007e4,0x00000007,0x0004003b,0x00000007,0x000007ea,0x00000007,0x0004003b, + 0x00000007,0x000007ed,0x00000007,0x0004003b,0x00000007,0x000007f0,0x00000007,0x0004003b, + 0x0000006d,0x000007f1,0x00000007,0x0004003b,0x00000007,0x000007f8,0x00000007,0x0004003b, + 0x00000007,0x000007f9,0x00000007,0x0004003b,0x00000007,0x00000803,0x00000007,0x0004003b, + 0x00000007,0x00000804,0x00000007,0x0004003b,0x00000007,0x00000806,0x00000007,0x0004003b, + 0x00000007,0x00000807,0x00000007,0x0004003b,0x00000007,0x0000080a,0x00000007,0x0004003b, + 0x00000007,0x00000815,0x00000007,0x0004003b,0x00000007,0x00000816,0x00000007,0x0004003b, + 0x0000001b,0x00000819,0x00000007,0x0004003b,0x0000001b,0x0000081f,0x00000007,0x00050041, + 0x000000a8,0x000007c6,0x00000134,0x00000403,0x0004003d,0x000000a7,0x000007c7,0x000007c6, + 0x000500a4,0x000000a7,0x000007c9,0x000007c7,0x000007c8,0x000600a9,0x00000006,0x000007ca, + 0x000007c9,0x00000155,0x00000154,0x00050041,0x00000007,0x000007cb,0x00000135,0x000003db, + 0x0004003d,0x00000006,0x000007cc,0x000007cb,0x00050085,0x00000006,0x000007cd,0x000007cc, + 0x000007ca,0x00050041,0x00000007,0x000007ce,0x00000135,0x000003db,0x0003003e,0x000007ce, + 0x000007cd,0x00050041,0x00000007,0x000007d1,0x00000134,0x000003ef,0x0004003d,0x00000006, + 0x000007d2,0x000007d1,0x0003003e,0x000007d0,0x000007d2,0x00050039,0x00000006,0x000007d3, + 0x00000018,0x000007d0,0x00050041,0x00000007,0x000007d5,0x00000134,0x000003ee,0x0004003d, + 0x00000006,0x000007d6,0x000007d5,0x0003003e,0x000007d4,0x000007d6,0x00050041,0x00000007, + 0x000007d8,0x00000134,0x000001ac,0x0004003d,0x00000006,0x000007d9,0x000007d8,0x0003003e, + 0x000007d7,0x000007d9,0x00060039,0x00000006,0x000007da,0x0000003f,0x000007d4,0x000007d7, + 0x0003003e,0x000007db,0x000007d3,0x0003003e,0x000007dc,0x000007da,0x00060039,0x00000006, + 0x000007dd,0x0000003f,0x000007db,0x000007dc,0x0003003e,0x000007cf,0x000007dd,0x00050041, + 0x00000007,0x000007de,0x00000135,0x000003db,0x0004003d,0x00000006,0x000007df,0x000007de, + 0x0004003d,0x00000006,0x000007e0,0x000007cf,0x00050085,0x00000006,0x000007e1,0x000007e0, + 0x00000370,0x00050083,0x00000006,0x000007e2,0x000007df,0x000007e1,0x0003003e,0x000007e3, + 0x00000154,0x0003003e,0x000007e4,0x000007e2,0x00060039,0x00000006,0x000007e5,0x0000003f, + 0x000007e3,0x000007e4,0x00050041,0x00000007,0x000007e6,0x00000135,0x000003db,0x0003003e, + 0x000007e6,0x000007e5,0x00050041,0x00000007,0x000007e7,0x00000135,0x000003db,0x0004003d, + 0x00000006,0x000007e8,0x000007e7,0x00050083,0x00000006,0x000007e9,0x000007e8,0x00000155, + 0x0003003e,0x000007ea,0x000007e9,0x00050039,0x00000006,0x000007eb,0x00000018,0x000007ea, + 0x00050085,0x00000006,0x000007ec,0x000007eb,0x00000155,0x0003003e,0x000007ed,0x000007ec, + 0x00050039,0x00000006,0x000007ee,0x00000018,0x000007ed,0x00050041,0x00000007,0x000007ef, + 0x00000135,0x000003dc,0x0003003e,0x000007ef,0x000007ee,0x00050041,0x0000006d,0x000007f2, + 0x00000134,0x00000197,0x0004003d,0x00000055,0x000007f3,0x000007f2,0x0003003e,0x000007f1, + 0x000007f3,0x00050039,0x00000006,0x000007f4,0x0000008b,0x000007f1,0x00050041,0x00000007, + 0x000007f5,0x00000134,0x000003ef,0x0004003d,0x00000006,0x000007f6,0x000007f5,0x00050085, + 0x00000006,0x000007f7,0x000007f6,0x00000154,0x0003003e,0x000007f8,0x000007f7,0x00050041, + 0x00000007,0x000007fa,0x00000134,0x000003ee,0x0004003d,0x00000006,0x000007fb,0x000007fa, + 0x0003003e,0x000007f9,0x000007fb,0x00060039,0x00000006,0x000007fc,0x0000003f,0x000007f8, + 0x000007f9,0x00050083,0x00000006,0x000007fd,0x00000155,0x000007fc,0x00050085,0x00000006, + 0x000007fe,0x000007f4,0x000007fd,0x0003003e,0x000007f0,0x000007fe,0x00050041,0x00000007, + 0x000007ff,0x00000135,0x000003db,0x0004003d,0x00000006,0x00000800,0x000007ff,0x0004003d, + 0x00000006,0x00000801,0x000007f0,0x00050081,0x00000006,0x00000802,0x00000800,0x00000801, + 0x0003003e,0x00000803,0x00000802,0x0003003e,0x00000804,0x00000370,0x00060039,0x00000006, + 0x00000805,0x00000023,0x00000803,0x00000804,0x0003003e,0x00000806,0x00000154,0x0003003e, + 0x00000807,0x00000805,0x00060039,0x00000006,0x00000808,0x0000003f,0x00000806,0x00000807, + 0x00050041,0x00000007,0x00000809,0x00000135,0x000003db,0x0003003e,0x00000809,0x00000808, + 0x00040039,0x00000006,0x0000080c,0x00000065,0x00050088,0x00000006,0x0000080d,0x0000080b, + 0x0000080c,0x0004003d,0x00000006,0x0000080e,0x000007cf,0x00050083,0x00000006,0x0000080f, + 0x00000155,0x0000080e,0x00050085,0x00000006,0x00000810,0x0000080d,0x0000080f,0x0003003e, + 0x0000080a,0x00000810,0x00050041,0x00000007,0x00000811,0x00000135,0x000003db,0x0004003d, + 0x00000006,0x00000812,0x00000811,0x0004003d,0x00000006,0x00000813,0x0000080a,0x00050083, + 0x00000006,0x00000814,0x00000812,0x00000813,0x0003003e,0x00000815,0x00000154,0x0003003e, + 0x00000816,0x00000814,0x00060039,0x00000006,0x00000817,0x0000003f,0x00000815,0x00000816, + 0x00050041,0x00000007,0x00000818,0x00000135,0x000003db,0x0003003e,0x00000818,0x00000817, + 0x00050041,0x0000001b,0x0000081a,0x00000134,0x0000023e,0x0004003d,0x0000001a,0x0000081b, + 0x0000081a,0x00050041,0x0000001b,0x0000081c,0x00000134,0x0000019d,0x0004003d,0x0000001a, + 0x0000081d,0x0000081c,0x00050083,0x0000001a,0x0000081e,0x0000081b,0x0000081d,0x0003003e, + 0x00000819,0x0000081e,0x0004003d,0x0000001a,0x00000820,0x00000819,0x0003003e,0x0000081f, + 0x00000820,0x00050039,0x000000a7,0x00000821,0x000000c3,0x0000081f,0x000500a4,0x000000a7, + 0x00000823,0x00000821,0x00000822,0x000600a9,0x00000006,0x00000824,0x00000823,0x00000155, + 0x00000154,0x00050041,0x00000007,0x00000825,0x00000135,0x000003db,0x0004003d,0x00000006, + 0x00000826,0x00000825,0x00050085,0x00000006,0x00000827,0x00000826,0x00000824,0x00050041, + 0x00000007,0x00000828,0x00000135,0x000003db,0x0003003e,0x00000828,0x00000827,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000013a,0x00000000,0x0000010b,0x00030037,0x00000100, + 0x00000138,0x00030037,0x00000102,0x00000139,0x000200f8,0x0000013b,0x0004003b,0x00000007, + 0x00000829,0x00000007,0x0004003b,0x00000007,0x00000830,0x00000007,0x0004003b,0x00000007, + 0x00000831,0x00000007,0x0004003b,0x00000007,0x00000833,0x00000007,0x0004003b,0x00000007, + 0x00000835,0x00000007,0x0004003b,0x00000007,0x00000837,0x00000007,0x0004003b,0x00000007, + 0x00000838,0x00000007,0x0004003b,0x00000007,0x0000083a,0x00000007,0x0004003b,0x00000007, + 0x0000083c,0x00000007,0x00050051,0x00000006,0x0000082a,0x00000138,0x0000000a,0x0003003e, + 0x00000829,0x0000082a,0x00050051,0x00000006,0x0000082c,0x00000138,0x00000006,0x00040039, + 0x00000006,0x0000082d,0x0000006b,0x00050085,0x00000006,0x0000082e,0x0000082c,0x0000082d, + 0x00050088,0x00000006,0x0000082f,0x0000082e,0x000002b1,0x0003003e,0x00000830,0x00000154, + 0x0003003e,0x00000831,0x0000082f,0x00060039,0x00000006,0x00000832,0x0000003f,0x00000830, + 0x00000831,0x0003003e,0x00000833,0x00000832,0x00050039,0x00000006,0x00000834,0x00000018, + 0x00000833,0x0004003d,0x00000006,0x00000836,0x00000829,0x0003003e,0x00000835,0x00000836, + 0x0003003e,0x00000837,0x0000082b,0x0003003e,0x00000838,0x00000834,0x00070039,0x00000006, + 0x00000839,0x0000000c,0x00000835,0x00000837,0x00000838,0x0004003d,0x00000006,0x0000083b, + 0x00000829,0x0003003e,0x0000083a,0x0000083b,0x0003003e,0x0000083c,0x00000839,0x00060039, + 0x00000006,0x0000083d,0x00000023,0x0000083a,0x0000083c,0x0003003e,0x00000829,0x0000083d, + 0x0004003d,0x00000006,0x0000083e,0x00000829,0x00050041,0x00000007,0x0000083f,0x00000139, + 0x0000019d,0x0003003e,0x0000083f,0x0000083e,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000140,0x00000000,0x0000013c,0x00030037,0x0000006d,0x0000013d,0x00030037,0x00000122, + 0x0000013e,0x00030037,0x00000102,0x0000013f,0x000200f8,0x00000141,0x0004003b,0x0000001b, + 0x00000842,0x00000007,0x0004003b,0x0000001b,0x00000855,0x00000007,0x0004003b,0x0000006d, + 0x00000858,0x00000007,0x0004003b,0x0000006d,0x00000859,0x00000007,0x0004003b,0x0000006d, + 0x0000085c,0x00000007,0x0004003b,0x0000001b,0x0000085e,0x00000007,0x0004003b,0x0000001b, + 0x00000862,0x00000007,0x0004003b,0x00000122,0x00000867,0x00000007,0x0004003b,0x0000001b, + 0x0000086b,0x00000007,0x0004003b,0x0000001b,0x0000086e,0x00000007,0x0004003b,0x0000006d, + 0x00000870,0x00000007,0x0004003b,0x0000006d,0x00000871,0x00000007,0x0004003b,0x0000001b, + 0x00000873,0x00000007,0x0004003b,0x0000001b,0x00000877,0x00000007,0x0004003b,0x0000001b, + 0x0000087c,0x00000007,0x0004003b,0x0000006d,0x0000087f,0x00000007,0x0004003b,0x0000006d, + 0x00000880,0x00000007,0x0004003b,0x0000001b,0x00000882,0x00000007,0x0004003b,0x00000030, + 0x00000890,0x00000007,0x0004003b,0x0000001b,0x00000891,0x00000007,0x0004003b,0x00000007, + 0x00000895,0x00000007,0x0004003b,0x00000007,0x0000089a,0x00000007,0x0004003b,0x00000007, + 0x0000089f,0x00000007,0x0004003b,0x00000007,0x000008a4,0x00000007,0x0004003d,0x00000055, + 0x00000840,0x0000013d,0x00050041,0x0000006d,0x00000841,0x0000013e,0x00000197,0x0003003e, + 0x00000841,0x00000840,0x0004003d,0x00000055,0x00000843,0x0000013d,0x0004006f,0x0000001a, + 0x00000844,0x00000843,0x00050050,0x0000001a,0x00000845,0x000002b1,0x000002b1,0x00050081, + 0x0000001a,0x00000846,0x00000844,0x00000845,0x00040039,0x00000055,0x00000847,0x0000005b, + 0x0004006f,0x0000001a,0x00000848,0x00000847,0x00050088,0x0000001a,0x00000849,0x00000846, + 0x00000848,0x0003003e,0x00000842,0x00000849,0x0004003d,0x0000001a,0x0000084a,0x00000842, + 0x00050041,0x0000001b,0x0000084b,0x0000013e,0x0000023e,0x0003003e,0x0000084b,0x0000084a, + 0x0004003d,0x0000001a,0x0000084c,0x00000842,0x00040039,0x0000001a,0x0000084d,0x00000060, + 0x00040039,0x00000055,0x0000084e,0x00000057,0x0004006f,0x0000001a,0x0000084f,0x0000084e, + 0x00050088,0x0000001a,0x00000850,0x0000084d,0x0000084f,0x00050081,0x0000001a,0x00000851, + 0x0000084c,0x00000850,0x00050041,0x0000001b,0x00000852,0x0000013e,0x000001a2,0x0003003e, + 0x00000852,0x00000851,0x00040039,0x00000055,0x00000853,0x00000057,0x00040039,0x00000055, + 0x00000854,0x00000059,0x00050041,0x0000001b,0x00000856,0x0000013e,0x000001a2,0x0004003d, + 0x0000001a,0x00000857,0x00000856,0x0003003e,0x00000855,0x00000857,0x0003003e,0x00000858, + 0x00000853,0x0003003e,0x00000859,0x00000854,0x00070039,0x0000001a,0x0000085a,0x000000cf, + 0x00000855,0x00000858,0x00000859,0x00050041,0x0000001b,0x0000085b,0x0000013e,0x000001a7, + 0x0003003e,0x0000085b,0x0000085a,0x0004003d,0x00000055,0x0000085d,0x0000013d,0x0003003e, + 0x0000085c,0x0000085d,0x0004003d,0x0000001a,0x0000085f,0x00000842,0x0003003e,0x0000085e, + 0x0000085f,0x00060039,0x0000001a,0x00000860,0x00000120,0x0000085c,0x0000085e,0x00050041, + 0x0000001b,0x00000861,0x0000013e,0x0000019d,0x0003003e,0x00000861,0x00000860,0x00050041, + 0x0000001b,0x00000863,0x0000013e,0x0000019d,0x0004003d,0x0000001a,0x00000864,0x00000863, + 0x0003003e,0x00000862,0x00000864,0x00050039,0x00000006,0x00000865,0x0000009d,0x00000862, + 0x00050041,0x00000007,0x00000866,0x0000013e,0x000003dc,0x0003003e,0x00000866,0x00000865, + 0x0004003d,0x00000100,0x00000868,0x0000013e,0x0003003e,0x00000867,0x00000868,0x00050039, + 0x00000002,0x00000869,0x00000125,0x00000867,0x0004003d,0x00000100,0x0000086a,0x00000867, + 0x0003003e,0x0000013e,0x0000086a,0x00040039,0x00000055,0x0000086c,0x00000057,0x00040039, + 0x00000055,0x0000086d,0x00000059,0x0004003d,0x0000001a,0x0000086f,0x00000842,0x0003003e, + 0x0000086e,0x0000086f,0x0003003e,0x00000870,0x0000086c,0x0003003e,0x00000871,0x0000086d, + 0x00070039,0x0000001a,0x00000872,0x000000cf,0x0000086e,0x00000870,0x00000871,0x0003003e, + 0x0000086b,0x00000872,0x0004003d,0x0000001a,0x00000874,0x0000086b,0x0003003e,0x00000873, + 0x00000874,0x00050039,0x00000006,0x00000875,0x00000087,0x00000873,0x00050041,0x00000007, + 0x00000876,0x0000013e,0x000003f0,0x0003003e,0x00000876,0x00000875,0x00040039,0x00000055, + 0x00000878,0x00000057,0x00050050,0x00000055,0x00000879,0x000001a2,0x000001a2,0x00050087, + 0x00000055,0x0000087a,0x00000878,0x00000879,0x00040039,0x00000055,0x0000087b,0x00000080, + 0x00050041,0x0000001b,0x0000087d,0x0000013e,0x000001a2,0x0004003d,0x0000001a,0x0000087e, + 0x0000087d,0x0003003e,0x0000087c,0x0000087e,0x0003003e,0x0000087f,0x0000087a,0x0003003e, + 0x00000880,0x0000087b,0x00070039,0x0000001a,0x00000881,0x000000cf,0x0000087c,0x0000087f, + 0x00000880,0x0003003e,0x00000877,0x00000881,0x0004003d,0x0000001a,0x00000883,0x00000877, + 0x0003003e,0x00000882,0x00000883,0x00050039,0x00000006,0x00000884,0x00000084,0x00000882, + 0x00050041,0x00000007,0x00000885,0x0000013e,0x00000402,0x0003003e,0x00000885,0x00000884, + 0x00050041,0x000000a8,0x00000886,0x0000013e,0x000001b7,0x0004003d,0x000000a7,0x00000887, + 0x00000886,0x000500a4,0x000000a7,0x00000888,0x00000887,0x000007c8,0x000400a8,0x000000a7, + 0x00000889,0x00000888,0x000300f7,0x0000088b,0x00000000,0x000400fa,0x00000889,0x0000088a, + 0x0000088b,0x000200f8,0x0000088a,0x00040039,0x00000006,0x0000088c,0x00000069,0x000500b4, + 0x000000a7,0x0000088d,0x00000154,0x0000088c,0x000200f9,0x0000088b,0x000200f8,0x0000088b, + 0x000700f5,0x000000a7,0x0000088e,0x00000888,0x00000141,0x0000088d,0x0000088a,0x00050041, + 0x000000a8,0x0000088f,0x0000013e,0x00000403,0x0003003e,0x0000088f,0x0000088e,0x00050041, + 0x0000001b,0x00000892,0x0000013e,0x000001a7,0x0004003d,0x0000001a,0x00000893,0x00000892, + 0x0003003e,0x00000891,0x00000893,0x00050039,0x0000002f,0x00000894,0x0000009a,0x00000891, + 0x0003003e,0x00000890,0x00000894,0x00050041,0x00000007,0x00000896,0x00000890,0x000001fa, + 0x0004003d,0x00000006,0x00000897,0x00000896,0x0003003e,0x00000895,0x00000897,0x00050039, + 0x00000006,0x00000898,0x00000018,0x00000895,0x00050041,0x00000007,0x00000899,0x0000013e, + 0x000003ee,0x0003003e,0x00000899,0x00000898,0x00050041,0x00000007,0x0000089b,0x00000890, + 0x00000293,0x0004003d,0x00000006,0x0000089c,0x0000089b,0x0003003e,0x0000089a,0x0000089c, + 0x00050039,0x00000006,0x0000089d,0x00000018,0x0000089a,0x00050041,0x00000007,0x0000089e, + 0x0000013e,0x000001ac,0x0003003e,0x0000089e,0x0000089d,0x00050041,0x00000007,0x000008a0, + 0x00000890,0x00000297,0x0004003d,0x00000006,0x000008a1,0x000008a0,0x0003003e,0x0000089f, + 0x000008a1,0x00050039,0x00000006,0x000008a2,0x00000018,0x0000089f,0x00050041,0x00000007, + 0x000008a3,0x0000013e,0x000003ef,0x0003003e,0x000008a3,0x000008a2,0x00050041,0x00000007, + 0x000008a5,0x00000890,0x00000716,0x0004003d,0x00000006,0x000008a6,0x000008a5,0x0003003e, + 0x000008a4,0x000008a6,0x00050039,0x00000006,0x000008a7,0x00000018,0x000008a4,0x00050041, + 0x00000007,0x000008a8,0x0000013e,0x000001b2,0x0003003e,0x000008a8,0x000008a7,0x00050041, + 0x00000007,0x000008a9,0x0000013e,0x000001b2,0x0004003d,0x00000006,0x000008aa,0x000008a9, + 0x00050085,0x00000006,0x000008ac,0x000008aa,0x000008ab,0x0006000c,0x00000006,0x000008ad, + 0x00000001,0x00000001,0x000008ac,0x000500ba,0x000000a7,0x000008ae,0x000008ad,0x00000155, + 0x000600a9,0x00000006,0x000008af,0x000008ae,0x00000155,0x00000154,0x00050041,0x00000007, + 0x000008b0,0x0000013e,0x000001b2,0x0004003d,0x00000006,0x000008b1,0x000008b0,0x00050085, + 0x00000006,0x000008b2,0x000008b1,0x000008af,0x00050041,0x00000007,0x000008b3,0x0000013e, + 0x000001b2,0x0003003e,0x000008b3,0x000008b2,0x00050041,0x0000000f,0x000008b4,0x0000013f, + 0x0000023e,0x0003003e,0x000008b4,0x00000496,0x00050041,0x0000000f,0x000008b5,0x0000013f, + 0x000001a7,0x0003003e,0x000008b5,0x00000496,0x00050041,0x00000007,0x000008b6,0x0000013f, + 0x0000019d,0x0003003e,0x000008b6,0x00000155,0x00050041,0x00000007,0x000008b7,0x0000013f, + 0x000001a2,0x0003003e,0x000008b7,0x00000154,0x00050041,0x00000007,0x000008b8,0x0000013f, + 0x000003db,0x0003003e,0x000008b8,0x00000154,0x00050041,0x00000007,0x000008b9,0x0000013f, + 0x000003dc,0x0003003e,0x000008b9,0x00000154,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000144,0x00000000,0x00000142,0x00030037,0x0000006d,0x00000143,0x000200f8,0x00000145, + 0x0004003b,0x00000122,0x000008ba,0x00000007,0x0004003b,0x00000102,0x000008bb,0x00000007, + 0x0004003b,0x0000006d,0x000008bc,0x00000007,0x0004003b,0x00000122,0x000008be,0x00000007, + 0x0004003b,0x00000102,0x000008c0,0x00000007,0x0004003b,0x00000102,0x000008d0,0x00000007, + 0x0004003b,0x00000122,0x000008d4,0x00000007,0x0004003b,0x00000102,0x000008d6,0x00000007, + 0x0004003b,0x00000102,0x000008db,0x00000007,0x0004003b,0x00000102,0x000008e0,0x00000007, + 0x0004003b,0x00000102,0x000008e5,0x00000007,0x0004003b,0x00000102,0x000008ea,0x00000007, + 0x0004003b,0x0000000f,0x000008f4,0x00000007,0x0004003b,0x0000000f,0x000008f7,0x00000007, + 0x0004003b,0x0000006d,0x00000902,0x00000007,0x0004003b,0x00000030,0x00000904,0x00000007, + 0x0004003b,0x0000006d,0x00000906,0x00000007,0x0004003b,0x0000000f,0x00000908,0x00000007, + 0x0004003b,0x0000006d,0x0000090c,0x00000007,0x0004003b,0x00000007,0x0000090e,0x00000007, + 0x0004003d,0x00000055,0x000008bd,0x00000143,0x0003003e,0x000008bc,0x000008bd,0x0004003d, + 0x00000100,0x000008bf,0x000008ba,0x0003003e,0x000008be,0x000008bf,0x0004003d,0x00000101, + 0x000008c1,0x000008bb,0x0003003e,0x000008c0,0x000008c1,0x00070039,0x00000002,0x000008c2, + 0x00000140,0x000008bc,0x000008be,0x000008c0,0x0004003d,0x00000100,0x000008c3,0x000008be, + 0x0003003e,0x000008ba,0x000008c3,0x0004003d,0x00000101,0x000008c4,0x000008c0,0x0003003e, + 0x000008bb,0x000008c4,0x00050041,0x000000a8,0x000008c5,0x000008ba,0x000001b7,0x0004003d, + 0x000000a7,0x000008c6,0x000008c5,0x000300f7,0x000008c8,0x00000000,0x000400fa,0x000008c6, + 0x000008c7,0x000008c8,0x000200f8,0x000008c7,0x00050041,0x000000a8,0x000008c9,0x000008ba, + 0x00000403,0x0004003d,0x000000a7,0x000008ca,0x000008c9,0x000400a8,0x000000a7,0x000008cb, + 0x000008ca,0x000200f9,0x000008c8,0x000200f8,0x000008c8,0x000700f5,0x000000a7,0x000008cc, + 0x000008c6,0x00000145,0x000008cb,0x000008c7,0x000300f7,0x000008ce,0x00000000,0x000400fa, + 0x000008cc,0x000008cd,0x000008ce,0x000200f8,0x000008cd,0x0004003d,0x00000100,0x000008cf, + 0x000008ba,0x0004003d,0x00000101,0x000008d1,0x000008bb,0x0003003e,0x000008d0,0x000008d1, + 0x00060039,0x00000002,0x000008d2,0x00000129,0x000008cf,0x000008d0,0x0004003d,0x00000101, + 0x000008d3,0x000008d0,0x0003003e,0x000008bb,0x000008d3,0x000200f9,0x000008ce,0x000200f8, + 0x000008ce,0x0004003d,0x00000100,0x000008d5,0x000008ba,0x0003003e,0x000008d4,0x000008d5, + 0x0004003d,0x00000101,0x000008d7,0x000008bb,0x0003003e,0x000008d6,0x000008d7,0x00060039, + 0x00000002,0x000008d8,0x00000136,0x000008d4,0x000008d6,0x0004003d,0x00000101,0x000008d9, + 0x000008d6,0x0003003e,0x000008bb,0x000008d9,0x0004003d,0x00000100,0x000008da,0x000008ba, + 0x0004003d,0x00000101,0x000008dc,0x000008bb,0x0003003e,0x000008db,0x000008dc,0x00060039, + 0x00000002,0x000008dd,0x0000013a,0x000008da,0x000008db,0x0004003d,0x00000101,0x000008de, + 0x000008db,0x0003003e,0x000008bb,0x000008de,0x0004003d,0x00000100,0x000008df,0x000008ba, + 0x0004003d,0x00000101,0x000008e1,0x000008bb,0x0003003e,0x000008e0,0x000008e1,0x00060039, + 0x00000002,0x000008e2,0x0000010e,0x000008df,0x000008e0,0x0004003d,0x00000101,0x000008e3, + 0x000008e0,0x0003003e,0x000008bb,0x000008e3,0x0004003d,0x00000100,0x000008e4,0x000008ba, + 0x0004003d,0x00000101,0x000008e6,0x000008bb,0x0003003e,0x000008e5,0x000008e6,0x00060039, + 0x00000002,0x000008e7,0x00000131,0x000008e4,0x000008e5,0x0004003d,0x00000101,0x000008e8, + 0x000008e5,0x0003003e,0x000008bb,0x000008e8,0x0004003d,0x00000100,0x000008e9,0x000008ba, + 0x0004003d,0x00000101,0x000008eb,0x000008bb,0x0003003e,0x000008ea,0x000008eb,0x00060039, + 0x00000002,0x000008ec,0x0000012d,0x000008e9,0x000008ea,0x0004003d,0x00000101,0x000008ed, + 0x000008ea,0x0003003e,0x000008bb,0x000008ed,0x00040039,0x00000006,0x000008ee,0x00000096, + 0x00050041,0x0000000f,0x000008ef,0x000008bb,0x000001a7,0x0004003d,0x0000000e,0x000008f0, + 0x000008ef,0x00060050,0x0000000e,0x000008f1,0x000008ee,0x000008ee,0x000008ee,0x00050088, + 0x0000000e,0x000008f2,0x000008f0,0x000008f1,0x00050041,0x0000000f,0x000008f3,0x000008bb, + 0x000001a7,0x0003003e,0x000008f3,0x000008f2,0x00050041,0x0000000f,0x000008f5,0x000008bb, + 0x000001a7,0x0004003d,0x0000000e,0x000008f6,0x000008f5,0x0003003e,0x000008f4,0x000008f6, + 0x0003003e,0x000008f7,0x00000496,0x00060039,0x0000000e,0x000008f8,0x00000047,0x000008f4, + 0x000008f7,0x00050041,0x0000000f,0x000008f9,0x000008bb,0x000001a7,0x0003003e,0x000008f9, + 0x000008f8,0x00050041,0x0000000f,0x000008fa,0x000008bb,0x000001a7,0x0004003d,0x0000000e, + 0x000008fb,0x000008fa,0x00050041,0x00000007,0x000008fc,0x000008bb,0x000003db,0x0004003d, + 0x00000006,0x000008fd,0x000008fc,0x00050051,0x00000006,0x000008fe,0x000008fb,0x00000000, + 0x00050051,0x00000006,0x000008ff,0x000008fb,0x00000001,0x00050051,0x00000006,0x00000900, + 0x000008fb,0x00000002,0x00070050,0x0000002f,0x00000901,0x000008fe,0x000008ff,0x00000900, + 0x000008fd,0x0004003d,0x00000055,0x00000903,0x00000143,0x0003003e,0x00000902,0x00000903, + 0x0003003e,0x00000904,0x00000901,0x00060039,0x00000002,0x00000905,0x00000079,0x00000902, + 0x00000904,0x0004003d,0x00000055,0x00000907,0x00000143,0x0003003e,0x00000906,0x00000907, + 0x00050041,0x0000000f,0x00000909,0x000008bb,0x000001a7,0x0004003d,0x0000000e,0x0000090a, + 0x00000909,0x0003003e,0x00000908,0x0000090a,0x00060039,0x00000002,0x0000090b,0x0000007e, + 0x00000906,0x00000908,0x0004003d,0x00000055,0x0000090d,0x00000143,0x0003003e,0x0000090c, + 0x0000090d,0x0003003e,0x0000090e,0x00000154,0x00060039,0x00000002,0x0000090f,0x00000090, + 0x0000090c,0x0000090e,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h b/gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h new file mode 100644 index 000000000..9170ff3c1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h @@ -0,0 +1,1980 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_ACCUMULATE_SHARPEN_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000912,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x000008fd,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c, + 0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00070005,0x0000000c,0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b, + 0x00030005,0x00000009,0x00000078,0x00030005,0x0000000a,0x00000079,0x00030005,0x0000000b, + 0x00000074,0x00070005,0x00000014,0x4c786666,0x28707265,0x3b336676,0x3b336676,0x003b3166, + 0x00030005,0x00000011,0x00000078,0x00030005,0x00000012,0x00000079,0x00030005,0x00000013, + 0x00000074,0x00060005,0x00000018,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x00000017,0x00000078,0x00060005,0x0000001e,0x46786666,0x74636172,0x32667628,0x0000003b, + 0x00030005,0x0000001d,0x00000078,0x00060005,0x00000023,0x4d786666,0x66286e69,0x31663b31, + 0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022,0x00000079,0x00060005, + 0x00000028,0x4d786666,0x76286e69,0x763b3266,0x003b3266,0x00030005,0x00000026,0x00000078, + 0x00030005,0x00000027,0x00000079,0x00060005,0x0000002d,0x4d786666,0x76286e69,0x763b3366, + 0x003b3366,0x00030005,0x0000002b,0x00000078,0x00030005,0x0000002c,0x00000079,0x00060005, + 0x00000034,0x4d786666,0x76286e69,0x763b3466,0x003b3466,0x00030005,0x00000032,0x00000078, + 0x00030005,0x00000033,0x00000079,0x00060005,0x0000003b,0x4d786666,0x69286e69,0x31693b31, + 0x0000003b,0x00030005,0x00000039,0x00000078,0x00030005,0x0000003a,0x00000079,0x00060005, + 0x0000003f,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x0000003d,0x00000078, + 0x00030005,0x0000003e,0x00000079,0x00060005,0x00000043,0x4d786666,0x76287861,0x763b3266, + 0x003b3266,0x00030005,0x00000041,0x00000078,0x00030005,0x00000042,0x00000079,0x00060005, + 0x00000047,0x4d786666,0x76287861,0x763b3366,0x003b3366,0x00030005,0x00000045,0x00000078, + 0x00030005,0x00000046,0x00000079,0x00060005,0x0000004b,0x4d786666,0x76287861,0x763b3466, + 0x003b3466,0x00030005,0x00000049,0x00000078,0x00030005,0x0000004a,0x00000079,0x00060005, + 0x0000004f,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x0000004d,0x00000078, + 0x00030005,0x0000004e,0x00000079,0x00060005,0x00000053,0x50786666,0x6628776f,0x31663b31, + 0x0000003b,0x00030005,0x00000051,0x00000078,0x00030005,0x00000052,0x00000079,0x00050005, + 0x00000057,0x646e6552,0x69537265,0x0028657a,0x00060005,0x00000059,0x5278614d,0x65646e65, + 0x7a695372,0x00002865,0x00060005,0x0000005b,0x63737055,0x53656c61,0x28657a69,0x00000000, + 0x00090005,0x0000005d,0x76657250,0x73756f69,0x6d617246,0x73705565,0x656c6163,0x657a6953, + 0x00000028,0x00040005,0x00000060,0x7474694a,0x00287265,0x00070005,0x00000062,0x6e776f44, + 0x6c616373,0x63614665,0x28726f74,0x00000000,0x00080005,0x00000065,0x7474694a,0x65537265, + 0x6e657571,0x654c6563,0x6874676e,0x00000028,0x00070005,0x00000067,0x746c6544,0x65725061, + 0x6f707845,0x65727573,0x00000028,0x00050005,0x00000069,0x6d617246,0x646e4965,0x00287865, + 0x00060005,0x0000006b,0x6f6c6556,0x79746963,0x74636146,0x0028726f,0x00070005,0x00000070, + 0x64616f4c,0x75706e49,0x6c6f4374,0x7628726f,0x003b3269,0x00040005,0x0000006f,0x50785069, + 0x0000736f,0x00070005,0x00000074,0x64616f4c,0x74736948,0x2879726f,0x3b326976,0x00000000, + 0x00050005,0x00000073,0x48785069,0x6f747369,0x00007972,0x000c0005,0x00000079,0x726f7453, + 0x746e4965,0x616e7265,0x6c6f436c,0x6e41726f,0x69655764,0x28746867,0x3b326976,0x3b346676, + 0x00000000,0x00040005,0x00000077,0x50785069,0x0000736f,0x00060005,0x00000078,0x6c6f4366, + 0x6e41726f,0x69655764,0x00746867,0x000c0005,0x0000007b,0x46746547,0x68747261,0x44747365, + 0x68747065,0x3170694d,0x6f736552,0x65637275,0x656d6944,0x6f69736e,0x0028736e,0x000a0005, + 0x0000007f,0x706d6153,0x6146656c,0x65687472,0x65447473,0x4d687470,0x28317069,0x3b326676, + 0x00000000,0x00030005,0x0000007e,0x00565566,0x00090005,0x00000082,0x706d6153,0x754c656c, + 0x6e49616d,0x62617473,0x74696c69,0x66762879,0x00003b32,0x00030005,0x00000081,0x00007675, + 0x00070005,0x00000086,0x64616f4c,0x654e7752,0x636f4c77,0x7628736b,0x003b3269,0x00040005, + 0x00000085,0x50785069,0x0000736f,0x00080005,0x0000008b,0x726f7453,0x77654e65,0x6b636f4c, + 0x69762873,0x31663b32,0x0000003b,0x00040005,0x00000089,0x50785069,0x0000736f,0x00040005, + 0x0000008a,0x4c77656e,0x006b636f,0x000a0005,0x0000008f,0x64616f4c,0x616c6944,0x4d646574, + 0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x00000000,0x00050005,0x0000008e,0x49785069, + 0x7475706e,0x00000000,0x00050005,0x00000091,0x6f707845,0x65727573,0x00000028,0x000a0005, + 0x00000095,0x706d6153,0x6944656c,0x6574616c,0x61655264,0x76697463,0x73614d65,0x7628736b, + 0x003b3266,0x00030005,0x00000094,0x00565566,0x00070005,0x00000098,0x34746547,0x6c65564b, + 0x7469636f,0x66762879,0x00003b32,0x00060005,0x00000097,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00070005,0x0000009a,0x74636552,0x63696669,0x6f697461,0x786f426e,0x00000000, + 0x00060006,0x0000009a,0x00000000,0x43786f62,0x65746e65,0x00000072,0x00050006,0x0000009a, + 0x00000001,0x56786f62,0x00006365,0x00050006,0x0000009a,0x00000002,0x62626161,0x006e694d, + 0x00050006,0x0000009a,0x00000003,0x62626161,0x0078614d,0x00080006,0x0000009a,0x00000004, + 0x786f4266,0x746e6543,0x65577265,0x74686769,0x00000000,0x00180005,0x000000a0,0x74636552, + 0x63696669,0x6f697461,0x786f426e,0x49646441,0x6974696e,0x61536c61,0x656c706d,0x72747328, + 0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d, + 0x3366762d,0x3131662d,0x3366763b,0x3b31663b,0x00000000,0x00070005,0x0000009d,0x74636572, + 0x63696669,0x6f697461,0x786f426e,0x00000000,0x00050005,0x0000009e,0x6f6c6f63,0x6d615372, + 0x00656c70,0x00060005,0x0000009f,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00170005, + 0x000000a9,0x74636552,0x63696669,0x6f697461,0x786f426e,0x53646441,0x6c706d61,0x31622865, + 0x7274733b,0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d, + 0x3366762d,0x3366762d,0x3131662d,0x3366763b,0x3b31663b,0x00000000,0x00060005,0x000000a5, + 0x696e4962,0x6c616974,0x706d6153,0x0000656c,0x00070005,0x000000a6,0x74636572,0x63696669, + 0x6f697461,0x786f426e,0x00000000,0x00050005,0x000000a7,0x6f6c6f63,0x6d615372,0x00656c70, + 0x00060005,0x000000a8,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00170005,0x000000ad, + 0x74636552,0x63696669,0x6f697461,0x786f426e,0x706d6f43,0x56657475,0x61697261,0x4265636e, + 0x6144786f,0x73286174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x003b3131,0x00070005,0x000000ac,0x74636572, + 0x63696669,0x6f697461,0x786f426e,0x00000000,0x00060005,0x000000b1,0x436f4359,0x526f5467, + 0x76284247,0x003b3366,0x00040005,0x000000b0,0x6f435966,0x00006743,0x00060005,0x000000b4, + 0x54424752,0x6f43596f,0x76286743,0x003b3366,0x00040005,0x000000b3,0x62675266,0x00000000, + 0x00060005,0x000000b7,0x656e6f54,0x2870616d,0x3b336676,0x00000000,0x00040005,0x000000b6, + 0x62675266,0x00000000,0x00070005,0x000000ba,0x65766e49,0x54657372,0x6d656e6f,0x76287061, + 0x003b3366,0x00040005,0x000000b9,0x62675266,0x00000000,0x00060005,0x000000be,0x76557349, + 0x69736e49,0x76286564,0x003b3266,0x00030005,0x000000bd,0x00765566,0x00080005,0x000000c4, + 0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005,0x000000c1, + 0x53785069,0x6c706d61,0x00000065,0x00050005,0x000000c2,0x4f785069,0x65736666,0x00000074, + 0x00060005,0x000000c3,0x78655469,0x65727574,0x657a6953,0x00000000,0x00080005,0x000000ca, + 0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976,0x00000000,0x00030005,0x000000c7, + 0x00765566,0x00060005,0x000000c8,0x78655469,0x65727574,0x657a6953,0x00000000,0x00060005, + 0x000000c9,0x73655269,0x6372756f,0x7a695365,0x00000065,0x00070005,0x000000cf,0x6e4f7349, + 0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x000000cd,0x00736f70,0x00040005, + 0x000000ce,0x657a6973,0x00000000,0x00070005,0x000000d2,0x636e614c,0x32736f7a,0x6c436f4e, + 0x28706d61,0x003b3166,0x00030005,0x000000d1,0x00000078,0x00060005,0x000000d5,0x636e614c, + 0x32736f7a,0x3b316628,0x00000000,0x00030005,0x000000d4,0x00000078,0x00090005,0x000000d8, + 0x636e614c,0x32736f7a,0x72707041,0x7153786f,0x6c436f4e,0x28706d61,0x003b3166,0x00030005, + 0x000000d7,0x00003278,0x00080005,0x000000db,0x636e614c,0x32736f7a,0x72707041,0x7153786f, + 0x3b316628,0x00000000,0x00030005,0x000000da,0x00003278,0x000a0005,0x000000e3,0x636e614c, + 0x32736f7a,0x34667628,0x3466763b,0x3466763b,0x3466763b,0x3b31663b,0x00000000,0x00040005, + 0x000000de,0x6c6f4366,0x0030726f,0x00040005,0x000000df,0x6c6f4366,0x0031726f,0x00040005, + 0x000000e0,0x6c6f4366,0x0032726f,0x00040005,0x000000e1,0x6c6f4366,0x0033726f,0x00030005, + 0x000000e2,0x00000074,0x00080005,0x000000e5,0x63746546,0x42646568,0x62756369,0x61536369, + 0x656c706d,0x00000073,0x00060006,0x000000e5,0x00000000,0x6c6f4366,0x3030726f,0x00000000, + 0x00060006,0x000000e5,0x00000001,0x6c6f4366,0x3031726f,0x00000000,0x00060006,0x000000e5, + 0x00000002,0x6c6f4366,0x3032726f,0x00000000,0x00060006,0x000000e5,0x00000003,0x6c6f4366, + 0x3033726f,0x00000000,0x00060006,0x000000e5,0x00000004,0x6c6f4366,0x3130726f,0x00000000, + 0x00060006,0x000000e5,0x00000005,0x6c6f4366,0x3131726f,0x00000000,0x00060006,0x000000e5, + 0x00000006,0x6c6f4366,0x3132726f,0x00000000,0x00060006,0x000000e5,0x00000007,0x6c6f4366, + 0x3133726f,0x00000000,0x00060006,0x000000e5,0x00000008,0x6c6f4366,0x3230726f,0x00000000, + 0x00060006,0x000000e5,0x00000009,0x6c6f4366,0x3231726f,0x00000000,0x00060006,0x000000e5, + 0x0000000a,0x6c6f4366,0x3232726f,0x00000000,0x00060006,0x000000e5,0x0000000b,0x6c6f4366, + 0x3233726f,0x00000000,0x00060006,0x000000e5,0x0000000c,0x6c6f4366,0x3330726f,0x00000000, + 0x00060006,0x000000e5,0x0000000d,0x6c6f4366,0x3331726f,0x00000000,0x00060006,0x000000e5, + 0x0000000e,0x6c6f4366,0x3332726f,0x00000000,0x00060006,0x000000e5,0x0000000f,0x6c6f4366, + 0x3333726f,0x00000000,0x001d0005,0x000000ea,0x636e614c,0x32736f7a,0x72747328,0x2d746375, + 0x63746546,0x42646568,0x62756369,0x61536369,0x656c706d,0x66762d73,0x66762d34,0x66762d34, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x763b3134,0x003b3266,0x00040005, + 0x000000e8,0x706d6153,0x0073656c,0x00040005,0x000000e9,0x46785066,0x00636172,0x00080005, + 0x000000ef,0x6d616c43,0x6f6f4370,0x76286472,0x763b3269,0x763b3269,0x003b3269,0x00050005, + 0x000000ec,0x53785069,0x6c706d61,0x00000065,0x00050005,0x000000ed,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x000000ee,0x78655469,0x65727574,0x657a6953,0x00000000,0x00110005, + 0x000000f4,0x69726544,0x6e69676e,0x74732867,0x74637572,0x6365522d,0x69666974,0x69746163, + 0x6f426e6f,0x66762d78,0x66762d33,0x66762d33,0x66762d33,0x31662d33,0x66763b31,0x00003b33, + 0x00050005,0x000000f2,0x70696c63,0x676e6970,0x00786f42,0x00040005,0x000000f3,0x6c6f4366, + 0x0000726f,0x000b0005,0x000000f9,0x55746547,0x6d617370,0x4c656c70,0x7a636e61,0x6557736f, + 0x74686769,0x32667628,0x3b31663b,0x00000000,0x00070005,0x000000f7,0x63725366,0x706d6153, + 0x664f656c,0x74657366,0x00000000,0x00060005,0x000000f8,0x72654b66,0x576c656e,0x68676965, + 0x00000074,0x000a0005,0x000000fb,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43, + 0x61506e6f,0x736d6172,0x00000000,0x00060006,0x000000fb,0x00000000,0x48785069,0x736f5072, + 0x00000000,0x00050006,0x000000fb,0x00000001,0x55724866,0x00000076,0x00070006,0x000000fb, + 0x00000002,0x55724c66,0x74694a76,0x65726574,0x00000064,0x00070006,0x000000fb,0x00000003, + 0x55724c66,0x77485f76,0x706d6153,0x0072656c,0x00070006,0x000000fb,0x00000004,0x746f4d66, + 0x566e6f69,0x6f746365,0x00000072,0x00080006,0x000000fb,0x00000005,0x70655266,0x656a6f72, + 0x64657463,0x76557248,0x00000000,0x00060006,0x000000fb,0x00000006,0x564b3466,0x636f6c65, + 0x00797469,0x00070006,0x000000fb,0x00000007,0x73694466,0x6c63636f,0x6f697375,0x0000006e, + 0x00070006,0x000000fb,0x00000008,0x61655266,0x76697463,0x73614d65,0x0000006b,0x00070006, + 0x000000fb,0x00000009,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00070006,0x000000fb, + 0x0000000a,0x63634166,0x6c756d75,0x6f697461,0x0000006e,0x00090006,0x000000fb,0x0000000b, + 0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x74636146,0x0000726f,0x00090006,0x000000fb, + 0x0000000c,0x72614666,0x73656874,0x70654474,0x6e496874,0x6574654d,0x00007372,0x00080006, + 0x000000fb,0x0000000d,0x45734962,0x74736978,0x53676e69,0x6c706d61,0x00000065,0x00070006, + 0x000000fb,0x0000000e,0x4e734962,0x61537765,0x656c706d,0x00000000,0x00080005,0x000000fc, + 0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x61746144,0x00000000,0x00060006,0x000000fc, + 0x00000000,0x70696c63,0x676e6970,0x00786f42,0x00070006,0x000000fc,0x00000001,0x73705566, + 0x6c706d61,0x6f436465,0x00726f6c,0x00080006,0x000000fc,0x00000002,0x73705566,0x6c706d61, + 0x65576465,0x74686769,0x00000000,0x00070006,0x000000fc,0x00000003,0x73694866,0x79726f74, + 0x6f6c6f43,0x00000072,0x00070006,0x000000fc,0x00000004,0x73694866,0x79726f74,0x67696557, + 0x00007468,0x00050006,0x000000fc,0x00000005,0x636f4c66,0x0000006b,0x000a0006,0x000000fc, + 0x00000006,0x636f4c66,0x6e6f436b,0x62697274,0x6f697475,0x6968546e,0x61724673,0x0000656d, + 0x00360005,0x00000101,0x706d6f43,0x4d657475,0x654b7861,0x6c656e72,0x67696557,0x73287468, + 0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150, + 0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74, + 0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463, + 0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131, + 0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005,0x000000ff, + 0x61726170,0x0000736d,0x00040005,0x00000100,0x61746164,0x00000000,0x00080005,0x00000104, + 0x64616f4c,0x70657250,0x64657261,0x6f6c6f43,0x69762872,0x00003b32,0x00050005,0x00000103, + 0x6d615369,0x50656c70,0x0000736f,0x00380005,0x00000109,0x706d6f43,0x55657475,0x6d617370, + 0x64656c70,0x6f6c6f43,0x646e4172,0x67696557,0x73287468,0x63757274,0x63412d74,0x756d7563, + 0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266, + 0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31, + 0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f, + 0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33, + 0x2d31662d,0x3b313166,0x00000000,0x00040005,0x00000107,0x61726170,0x0000736d,0x00040005, + 0x00000108,0x61746164,0x00000000,0x00070005,0x0000010c,0x70617257,0x74736948,0x2879726f, + 0x3b326976,0x00000000,0x00050005,0x0000010b,0x53785069,0x6c706d61,0x00000065,0x000a0005, + 0x00000111,0x63746546,0x73694868,0x79726f74,0x706d6153,0x2873656c,0x3b326976,0x3b326976, + 0x00000000,0x00050005,0x0000010f,0x53785069,0x6c706d61,0x00000065,0x00060005,0x00000110, + 0x78655469,0x65727574,0x657a6953,0x00000000,0x00080005,0x00000116,0x74736948,0x5379726f, + 0x6c706d61,0x66762865,0x69763b32,0x00003b32,0x00050005,0x00000114,0x53765566,0x6c706d61, + 0x00000065,0x00060005,0x00000115,0x78655469,0x65727574,0x657a6953,0x00000000,0x00090005, + 0x0000011b,0x4d746547,0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x3b326676,0x00000000, + 0x00050005,0x00000119,0x48785069,0x736f5072,0x00000000,0x00040005,0x0000011a,0x55724866, + 0x00000076,0x001e0005,0x00000120,0x706d6f43,0x52657475,0x6f727065,0x7463656a,0x56556465, + 0x74732873,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d, + 0x6d617261,0x69762d73,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x31662d32, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3166,0x31622d31,0x00003b31,0x00040005, + 0x0000011f,0x61726170,0x0000736d,0x00350005,0x00000124,0x72706552,0x63656a6f,0x73694874, + 0x79726f74,0x6f6c6f43,0x74732872,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e, + 0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73,0x66762d32,0x66762d32,0x66762d32,0x66762d32, + 0x66762d32,0x31662d32,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3166,0x31622d31, + 0x74733b31,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x74614473,0x74732d61, + 0x74637572,0x6365522d,0x69666974,0x69746163,0x6f426e6f,0x66762d78,0x66762d33,0x66762d33, + 0x66762d33,0x31662d33,0x66762d31,0x31662d33,0x3366762d,0x2d31662d,0x662d3166,0x003b3131, + 0x00040005,0x00000122,0x61726170,0x0000736d,0x00040005,0x00000123,0x61746164,0x00000000, + 0x00330005,0x00000128,0x75636341,0x616c756d,0x73286574,0x63757274,0x63412d74,0x756d7563, + 0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266, + 0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31, + 0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f, + 0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33, + 0x2d31662d,0x3b313166,0x00000000,0x00040005,0x00000126,0x61726170,0x0000736d,0x00040005, + 0x00000127,0x61746164,0x00000000,0x00340005,0x0000012c,0x74636552,0x48796669,0x6f747369, + 0x73287972,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d, + 0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266, + 0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274, + 0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005, + 0x0000012a,0x61726170,0x0000736d,0x00040005,0x0000012b,0x61746164,0x00000000,0x00340005, + 0x00000131,0x61647055,0x6f4c6574,0x74536b63,0x73757461,0x72747328,0x2d746375,0x75636341, + 0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f,0x736d6172,0x3269762d,0x3266762d, + 0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x662d3166,0x31622d31,0x3131622d,0x7274733b,0x2d746375,0x75636341,0x616c756d,0x6e6f6974, + 0x73736150,0x61746144,0x7274732d,0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e, + 0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366762d,0x2d31662d,0x2d336676, + 0x662d3166,0x31662d31,0x00003b31,0x00040005,0x0000012f,0x61726170,0x0000736d,0x00040005, + 0x00000130,0x61746164,0x00000000,0x00370005,0x00000135,0x706d6f43,0x42657475,0x41657361, + 0x6d756363,0x74616c75,0x576e6f69,0x68676965,0x74732874,0x74637572,0x6363412d,0x6c756d75, + 0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73,0x66762d32,0x66762d32, + 0x66762d32,0x66762d32,0x66762d32,0x31662d32,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x622d3166,0x31622d31,0x74733b31,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e, + 0x74614473,0x74732d61,0x74637572,0x6365522d,0x69666974,0x69746163,0x6f426e6f,0x66762d78, + 0x66762d33,0x66762d33,0x66762d33,0x31662d33,0x66762d31,0x31662d33,0x3366762d,0x2d31662d, + 0x662d3166,0x003b3131,0x00040005,0x00000133,0x61726170,0x0000736d,0x00040005,0x00000134, + 0x61746164,0x00000000,0x00340005,0x0000013b,0x74696e49,0x73736150,0x61746144,0x32697628, + 0x7274733b,0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f, + 0x736d6172,0x3269762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x2d31662d, + 0x662d3166,0x31662d31,0x2d31662d,0x662d3166,0x31622d31,0x3131622d,0x7274733b,0x2d746375, + 0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x61746144,0x7274732d,0x2d746375,0x74636552, + 0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d, + 0x3366762d,0x2d31662d,0x2d336676,0x662d3166,0x31662d31,0x00003b31,0x00050005,0x00000138, + 0x48785069,0x736f5072,0x00000000,0x00040005,0x00000139,0x61726170,0x0000736d,0x00040005, + 0x0000013a,0x61746164,0x00000000,0x00060005,0x0000013f,0x75636341,0x616c756d,0x76286574, + 0x003b3269,0x00050005,0x0000013e,0x48785069,0x736f5072,0x00000000,0x00070005,0x0000018f, + 0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x0000018f,0x00000000, + 0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000018f,0x00000001,0x65725069,0x756f6976, + 0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x0000018f,0x00000002, + 0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000018f,0x00000003,0x65725069, + 0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x0000018f, + 0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x0000018f,0x00000005, + 0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000018f,0x00000006,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000018f,0x00000007,0x74694a66, + 0x00726574,0x00090006,0x0000018f,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d, + 0x72657474,0x00000000,0x00080006,0x0000018f,0x00000009,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00080006,0x0000018f,0x0000000a,0x776f4466,0x6163736e,0x6146656c, + 0x726f7463,0x00000000,0x000b0006,0x0000018f,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365, + 0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x0000018f,0x0000000c, + 0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000018f,0x0000000d,0x74694a66,0x53726574, + 0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000018f,0x0000000e,0x6c654466, + 0x69546174,0x0000656d,0x00080006,0x0000018f,0x0000000f,0x6c654466,0x72506174,0x70784565, + 0x7275736f,0x00000065,0x000a0006,0x0000018f,0x00000010,0x65695666,0x61705377,0x6f546563, + 0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000018f,0x00000011,0x61724666, + 0x6e49656d,0x00786564,0x00070006,0x0000018f,0x00000012,0x6c655666,0x7469636f,0x63614679, + 0x00726f74,0x00080006,0x0000018f,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373, + 0x0000656c,0x00080006,0x0000018f,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567, + 0x00656c61,0x000a0006,0x0000018f,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e, + 0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000018f,0x00000016,0x6e694d66,0x6f736944, + 0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x00000191, + 0x53466263,0x70553352,0x6c616373,0x00007265,0x00080005,0x000001c9,0x6e695f72,0x5f747570, + 0x6f6c6f63,0x696a5f72,0x72657474,0x00006465,0x00090005,0x000001d0,0x6e695f72,0x6e726574, + 0x755f6c61,0x61637370,0x5f64656c,0x6f6c6f63,0x00000072,0x00090005,0x000001d8,0x695f7772, + 0x7265746e,0x5f6c616e,0x63737075,0x64656c61,0x6c6f635f,0x0000726f,0x00080005,0x000001dc, + 0x61665f72,0x65687472,0x645f7473,0x68747065,0x70696d5f,0x00000031,0x00060005,0x000001e4, + 0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00070005,0x000001ef,0x756c5f72,0x695f616d, + 0x6174736e,0x696c6962,0x00007974,0x00060005,0x000001fa,0x6e5f7772,0x6c5f7765,0x736b636f, + 0x00000000,0x00090005,0x00000205,0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f, + 0x73726f74,0x00000000,0x00050005,0x0000020c,0x6f707865,0x65727573,0x00000000,0x00070005, + 0x0000020d,0x6e695f72,0x5f747570,0x6f707865,0x65727573,0x00000000,0x00090005,0x00000219, + 0x69645f72,0x6574616c,0x65725f64,0x69746361,0x6d5f6576,0x736b7361,0x00000000,0x00060005, + 0x0000022b,0x67696577,0x64657468,0x706d6153,0x0000656c,0x00040005,0x00000237,0x61726170, + 0x0000006d,0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005,0x0000023f,0x61726170, + 0x0000006d,0x00040005,0x00000242,0x61726170,0x0000006d,0x00040005,0x00000245,0x61726170, + 0x0000006d,0x00060005,0x00000248,0x67696577,0x64657468,0x706d6153,0x0000656c,0x00040005, + 0x00000274,0x44647473,0x00007665,0x00040005,0x00000281,0x62675266,0x00000000,0x00040005, + 0x0000029d,0x6f435966,0x00006743,0x00040005,0x000002c3,0x61726170,0x0000006d,0x00040005, + 0x000002c4,0x61726170,0x0000006d,0x00040005,0x000002c8,0x61726170,0x0000006d,0x00040005, + 0x000002cb,0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170,0x0000006d,0x00040005, + 0x000002d0,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005, + 0x000002dc,0x61726170,0x0000006d,0x00040005,0x000002e0,0x61726170,0x0000006d,0x00040005, + 0x000002e3,0x61726170,0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d,0x00040005, + 0x000002e7,0x61726170,0x0000006d,0x00040005,0x00000304,0x75736572,0x0000746c,0x00040005, + 0x0000030b,0x61726170,0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d,0x00040005, + 0x00000310,0x61726170,0x0000006d,0x00040005,0x00000311,0x61726170,0x0000006d,0x00040005, + 0x00000317,0x61726170,0x0000006d,0x00040005,0x0000031a,0x61726170,0x0000006d,0x00040005, + 0x0000031c,0x61726170,0x0000006d,0x00040005,0x0000031d,0x61726170,0x0000006d,0x00060005, + 0x00000323,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x00000328,0x616c4366, + 0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x0000032d,0x61726170,0x0000006d, + 0x00040005,0x0000032f,0x61726170,0x0000006d,0x00040005,0x00000331,0x61726170,0x0000006d, + 0x00040005,0x00000332,0x61726170,0x0000006d,0x00050005,0x00000334,0x616c4366,0x6465706d, + 0x00007655,0x00040005,0x00000362,0x61726170,0x0000006d,0x00040005,0x00000363,0x61726170, + 0x0000006d,0x00040005,0x00000365,0x61726170,0x0000006d,0x00030005,0x0000036a,0x00000061, + 0x00030005,0x0000036f,0x00000062,0x00040005,0x00000381,0x61726170,0x0000006d,0x00040005, + 0x00000383,0x61726170,0x0000006d,0x00040005,0x00000385,0x61726170,0x0000006d,0x00050005, + 0x0000038a,0x69655766,0x30746867,0x00000000,0x00040005,0x0000038e,0x61726170,0x0000006d, + 0x00050005,0x00000390,0x69655766,0x31746867,0x00000000,0x00040005,0x00000394,0x61726170, + 0x0000006d,0x00050005,0x00000396,0x69655766,0x32746867,0x00000000,0x00040005,0x00000399, + 0x61726170,0x0000006d,0x00050005,0x0000039b,0x69655766,0x33746867,0x00000000,0x00040005, + 0x0000039e,0x61726170,0x0000006d,0x00050005,0x000003ba,0x6c6f4366,0x3058726f,0x00000000, + 0x00040005,0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003be,0x61726170,0x0000006d, + 0x00040005,0x000003c1,0x61726170,0x0000006d,0x00040005,0x000003c4,0x61726170,0x0000006d, + 0x00040005,0x000003c7,0x61726170,0x0000006d,0x00050005,0x000003cb,0x6c6f4366,0x3158726f, + 0x00000000,0x00040005,0x000003ce,0x61726170,0x0000006d,0x00040005,0x000003d1,0x61726170, + 0x0000006d,0x00040005,0x000003d4,0x61726170,0x0000006d,0x00040005,0x000003d7,0x61726170, + 0x0000006d,0x00040005,0x000003da,0x61726170,0x0000006d,0x00050005,0x000003de,0x6c6f4366, + 0x3258726f,0x00000000,0x00040005,0x000003e2,0x61726170,0x0000006d,0x00040005,0x000003e5, + 0x61726170,0x0000006d,0x00040005,0x000003e8,0x61726170,0x0000006d,0x00040005,0x000003eb, + 0x61726170,0x0000006d,0x00040005,0x000003ee,0x61726170,0x0000006d,0x00050005,0x000003f2, + 0x6c6f4366,0x3358726f,0x00000000,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005, + 0x000003f8,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170,0x0000006d,0x00040005, + 0x000003fe,0x61726170,0x0000006d,0x00040005,0x00000401,0x61726170,0x0000006d,0x00050005, + 0x00000405,0x6c6f4366,0x5958726f,0x00000000,0x00040005,0x00000406,0x61726170,0x0000006d, + 0x00040005,0x00000408,0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170,0x0000006d, + 0x00040005,0x0000040c,0x61726170,0x0000006d,0x00040005,0x0000040e,0x61726170,0x0000006d, + 0x00070005,0x00000415,0x72654466,0x69676e69,0x6153676e,0x656c706d,0x00000073,0x00060005, + 0x0000041f,0x72654466,0x69676e69,0x694d676e,0x0000006e,0x00060005,0x00000422,0x72654466, + 0x69676e69,0x614d676e,0x00000078,0x00060005,0x00000425,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x0000042e,0x61726170,0x0000006d,0x00040005,0x00000430,0x61726170, + 0x0000006d,0x00040005,0x00000435,0x61726170,0x0000006d,0x00040005,0x00000437,0x61726170, + 0x0000006d,0x00040005,0x00000444,0x75736572,0x0000746c,0x00040005,0x0000044b,0x61726170, + 0x0000006d,0x00040005,0x0000044e,0x61726170,0x0000006d,0x00040005,0x00000450,0x61726170, + 0x0000006d,0x00040005,0x00000451,0x61726170,0x0000006d,0x00040005,0x00000457,0x61726170, + 0x0000006d,0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045c,0x61726170, + 0x0000006d,0x00040005,0x0000045d,0x61726170,0x0000006d,0x00080005,0x00000469,0x63725366, + 0x706d6153,0x664f656c,0x74657366,0x73616942,0x00006465,0x00060005,0x0000046e,0x6d615366, + 0x57656c70,0x68676965,0x00000074,0x00040005,0x00000472,0x61726170,0x0000006d,0x00060005, + 0x00000477,0x72654b66,0x536c656e,0x42657a69,0x00736169,0x00040005,0x00000480,0x61726170, + 0x0000006d,0x00040005,0x00000481,0x61726170,0x0000006d,0x00040005,0x00000486,0x62675266, + 0x00000000,0x00040005,0x00000488,0x61726170,0x0000006d,0x00040005,0x0000048b,0x61726170, + 0x0000006d,0x00040005,0x0000048c,0x61726170,0x0000006d,0x00060005,0x00000490,0x65725066, + 0x65726170,0x6f435964,0x00006743,0x00040005,0x00000491,0x61726170,0x0000006d,0x00060005, + 0x00000497,0x74734466,0x7074754f,0x6f507475,0x00000073,0x00060005,0x0000049b,0x63725366, + 0x7074754f,0x6f507475,0x00000073,0x00060005,0x0000049f,0x63725369,0x75706e49,0x736f5074, + 0x00000000,0x00070005,0x000004a3,0x63725366,0x696a6e55,0x72657474,0x6f506465,0x00000073, + 0x00070005,0x000004a9,0x73614266,0x6d615365,0x4f656c70,0x65736666,0x00000074,0x00050005, + 0x000004ad,0x7366666f,0x4c547465,0x00000000,0x00050005,0x000004be,0x696c4662,0x776f5270, + 0x00000000,0x00050005,0x000004c4,0x696c4662,0x6c6f4370,0x00000000,0x00050005,0x000004ca, + 0x66664f66,0x54746573,0x0000004c,0x00070005,0x000004cd,0x49734962,0x6974696e,0x61536c61, + 0x656c706d,0x00000000,0x00060005,0x000004d0,0x6d615369,0x49656c70,0x7865646e,0x00000000, + 0x00030005,0x000004d1,0x00776f72,0x00030005,0x000004d9,0x006c6f63,0x00060005,0x000004e1, + 0x6d615369,0x43656c70,0x6f526c6f,0x00000077,0x00060005,0x000004f5,0x63725369,0x706d6153, + 0x6f50656c,0x00000073,0x00060005,0x000004fb,0x6d615369,0x43656c70,0x64726f6f,0x00000000, + 0x00040005,0x000004fd,0x61726170,0x0000006d,0x00040005,0x000004ff,0x61726170,0x0000006d, + 0x00040005,0x00000500,0x61726170,0x0000006d,0x00050005,0x00000505,0x6d615366,0x73656c70, + 0x00000000,0x00040005,0x00000507,0x61726170,0x0000006d,0x00040005,0x0000051d,0x61726170, + 0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000523,0x61726170, + 0x0000006d,0x00060005,0x00000528,0x72654b66,0x426c656e,0x4d736169,0x00007861,0x00040005, + 0x00000529,0x61726170,0x0000006d,0x00060005,0x0000052d,0x72654b66,0x426c656e,0x4d736169, + 0x00006e69,0x00040005,0x00000532,0x61726170,0x0000006d,0x00040005,0x00000533,0x61726170, + 0x0000006d,0x00070005,0x00000535,0x72654b66,0x426c656e,0x57736169,0x68676965,0x00000074, + 0x00040005,0x0000053f,0x61726170,0x0000006d,0x00040005,0x00000541,0x61726170,0x0000006d, + 0x00040005,0x00000542,0x61726170,0x0000006d,0x00040005,0x00000544,0x61726170,0x0000006d, + 0x00040005,0x00000545,0x61726170,0x0000006d,0x00050005,0x00000547,0x72654b66,0x426c656e, + 0x00736169,0x00040005,0x00000548,0x61726170,0x0000006d,0x00040005,0x0000054a,0x61726170, + 0x0000006d,0x00040005,0x0000054c,0x61726170,0x0000006d,0x00030005,0x0000054f,0x00776f72, + 0x00030005,0x00000557,0x006c6f63,0x00060005,0x0000055f,0x706d6173,0x6f43656c,0x776f526c, + 0x00000000,0x00040005,0x00000573,0x66664f66,0x00746573,0x00070005,0x00000578,0x63725366, + 0x706d6153,0x664f656c,0x74657366,0x00000000,0x00060005,0x0000057c,0x63725369,0x706d6153, + 0x6f50656c,0x00000073,0x00060005,0x00000582,0x536e4f66,0x65657263,0x6361466e,0x00726f74, + 0x00040005,0x00000585,0x61726170,0x0000006d,0x00040005,0x00000586,0x61726170,0x0000006d, + 0x00060005,0x0000058d,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00040005,0x0000058f, + 0x61726170,0x0000006d,0x00040005,0x00000591,0x61726170,0x0000006d,0x00070005,0x000005a3, + 0x63725366,0x706d6153,0x664f656c,0x74657366,0x00007153,0x00070005,0x000005a7,0x786f4266, + 0x706d6153,0x6557656c,0x74686769,0x00000000,0x00060005,0x000005ae,0x696e4962,0x6c616974, + 0x706d6153,0x0000656c,0x00040005,0x000005b8,0x61726170,0x0000006d,0x00040005,0x000005ba, + 0x61726170,0x0000006d,0x00040005,0x000005c6,0x61726170,0x0000006d,0x00040005,0x000005e5, + 0x61726170,0x0000006d,0x00040005,0x000005e8,0x61726170,0x0000006d,0x00040005,0x000005f1, + 0x61726170,0x0000006d,0x00040005,0x000005f5,0x61726170,0x0000006d,0x00040005,0x000005f7, + 0x61726170,0x0000006d,0x00040005,0x000005fc,0x61726170,0x0000006d,0x00040005,0x00000601, + 0x706d6153,0x0073656c,0x00040005,0x00000603,0x61726170,0x0000006d,0x00040005,0x00000605, + 0x61726170,0x0000006d,0x00040005,0x00000606,0x61726170,0x0000006d,0x00040005,0x00000609, + 0x61726170,0x0000006d,0x00040005,0x0000060d,0x61726170,0x0000006d,0x00040005,0x0000060f, + 0x61726170,0x0000006d,0x00040005,0x00000610,0x61726170,0x0000006d,0x00040005,0x00000613, + 0x61726170,0x0000006d,0x00040005,0x00000617,0x61726170,0x0000006d,0x00040005,0x00000619, + 0x61726170,0x0000006d,0x00040005,0x0000061a,0x61726170,0x0000006d,0x00040005,0x0000061d, + 0x61726170,0x0000006d,0x00040005,0x00000621,0x61726170,0x0000006d,0x00040005,0x00000623, + 0x61726170,0x0000006d,0x00040005,0x00000624,0x61726170,0x0000006d,0x00040005,0x00000627, + 0x61726170,0x0000006d,0x00040005,0x0000062b,0x61726170,0x0000006d,0x00040005,0x0000062d, + 0x61726170,0x0000006d,0x00040005,0x0000062e,0x61726170,0x0000006d,0x00040005,0x00000631, + 0x61726170,0x0000006d,0x00040005,0x00000634,0x61726170,0x0000006d,0x00040005,0x00000636, + 0x61726170,0x0000006d,0x00040005,0x00000637,0x61726170,0x0000006d,0x00040005,0x0000063a, + 0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d,0x00040005,0x00000640, + 0x61726170,0x0000006d,0x00040005,0x00000641,0x61726170,0x0000006d,0x00040005,0x00000644, + 0x61726170,0x0000006d,0x00040005,0x00000648,0x61726170,0x0000006d,0x00040005,0x0000064a, + 0x61726170,0x0000006d,0x00040005,0x0000064b,0x61726170,0x0000006d,0x00040005,0x0000064e, + 0x61726170,0x0000006d,0x00040005,0x00000652,0x61726170,0x0000006d,0x00040005,0x00000654, + 0x61726170,0x0000006d,0x00040005,0x00000655,0x61726170,0x0000006d,0x00040005,0x00000658, + 0x61726170,0x0000006d,0x00040005,0x0000065c,0x61726170,0x0000006d,0x00040005,0x0000065e, + 0x61726170,0x0000006d,0x00040005,0x0000065f,0x61726170,0x0000006d,0x00040005,0x00000662, + 0x61726170,0x0000006d,0x00040005,0x00000666,0x61726170,0x0000006d,0x00040005,0x00000668, + 0x61726170,0x0000006d,0x00040005,0x00000669,0x61726170,0x0000006d,0x00040005,0x0000066c, + 0x61726170,0x0000006d,0x00040005,0x00000670,0x61726170,0x0000006d,0x00040005,0x00000672, + 0x61726170,0x0000006d,0x00040005,0x00000673,0x61726170,0x0000006d,0x00040005,0x00000676, + 0x61726170,0x0000006d,0x00040005,0x0000067a,0x61726170,0x0000006d,0x00040005,0x0000067c, + 0x61726170,0x0000006d,0x00040005,0x0000067d,0x61726170,0x0000006d,0x00040005,0x00000680, + 0x61726170,0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005,0x00000686, + 0x61726170,0x0000006d,0x00040005,0x00000687,0x61726170,0x0000006d,0x00040005,0x0000068a, + 0x61726170,0x0000006d,0x00040005,0x0000068e,0x61726170,0x0000006d,0x00040005,0x00000690, + 0x61726170,0x0000006d,0x00040005,0x00000691,0x61726170,0x0000006d,0x00040005,0x00000694, + 0x61726170,0x0000006d,0x00040005,0x00000698,0x61726170,0x0000006d,0x00040005,0x0000069a, + 0x61726170,0x0000006d,0x00040005,0x0000069b,0x61726170,0x0000006d,0x00040005,0x0000069e, + 0x61726170,0x0000006d,0x00050005,0x000006a4,0x53785066,0x6c706d61,0x00000065,0x00040005, + 0x000006aa,0x46785066,0x00636172,0x00040005,0x000006ab,0x61726170,0x0000006d,0x00040005, + 0x000006b2,0x61726170,0x0000006d,0x00040005,0x000006b3,0x61726170,0x0000006d,0x00040005, + 0x000006b7,0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d,0x00040005, + 0x000006bf,0x61726170,0x0000006d,0x00040005,0x000006c0,0x61726170,0x0000006d,0x00040005, + 0x000006c4,0x61726170,0x0000006d,0x00040005,0x000006c5,0x61726170,0x0000006d,0x00050005, + 0x000006c8,0x53785069,0x6c706d61,0x00000065,0x00050005,0x000006cc,0x6c6f4366,0x5958726f, + 0x00000000,0x00040005,0x000006cd,0x61726170,0x0000006d,0x00040005,0x000006cf,0x61726170, + 0x0000006d,0x00040005,0x000006d2,0x61726170,0x0000006d,0x00040005,0x000006d3,0x61726170, + 0x0000006d,0x00080005,0x000006d9,0x6c694466,0x64657461,0x69746f4d,0x65566e6f,0x726f7463, + 0x00000000,0x00040005,0x000006df,0x61726170,0x0000006d,0x00040005,0x000006ea,0x61726170, + 0x0000006d,0x00070005,0x000006ef,0x70655266,0x656a6f72,0x64657463,0x74736948,0x0079726f, + 0x00040005,0x000006f1,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x00000702,0x61726170,0x0000006d,0x00040005,0x00000718,0x61726170,0x0000006d, + 0x00040005,0x00000719,0x61726170,0x0000006d,0x00040005,0x0000071c,0x61726170,0x0000006d, + 0x00040005,0x00000720,0x61726170,0x0000006d,0x00040005,0x00000722,0x61726170,0x0000006d, + 0x00040005,0x00000725,0x61726170,0x0000006d,0x00040005,0x00000729,0x61726170,0x0000006d, + 0x00040005,0x0000072b,0x61726170,0x0000006d,0x00040005,0x0000072e,0x706c4166,0x00006168, + 0x00040005,0x00000734,0x61726170,0x0000006d,0x00040005,0x00000736,0x61726170,0x0000006d, + 0x00040005,0x00000739,0x61726170,0x0000006d,0x00040005,0x0000073c,0x61726170,0x0000006d, + 0x00040005,0x00000740,0x61726170,0x0000006d,0x00040005,0x00000745,0x61726170,0x0000006d, + 0x00070005,0x0000074a,0x566b3466,0x636f6c65,0x46797469,0x6f746361,0x00000072,0x00040005, + 0x0000074e,0x61726170,0x0000006d,0x00060005,0x00000750,0x73694466,0x636e6174,0x63614665, + 0x00726f74,0x00040005,0x00000755,0x61726170,0x0000006d,0x00070005,0x00000757,0x63634166, + 0x6c756d75,0x6f697461,0x6361466e,0x00726f74,0x00060005,0x0000075a,0x61655266,0x76697463, + 0x63614665,0x00726f74,0x00040005,0x0000075b,0x61726170,0x0000006d,0x00040005,0x0000075d, + 0x61726170,0x0000006d,0x00080005,0x0000075f,0x61685366,0x676e6964,0x6e616843,0x61466567, + 0x726f7463,0x00000000,0x00050005,0x00000761,0x786f4266,0x6c616353,0x00005465,0x00040005, + 0x00000762,0x61726170,0x0000006d,0x00040005,0x00000764,0x61726170,0x0000006d,0x00040005, + 0x00000767,0x61726170,0x0000006d,0x00040005,0x00000769,0x61726170,0x0000006d,0x00040005, + 0x0000076b,0x61726170,0x0000006d,0x00040005,0x0000076d,0x61726170,0x0000006d,0x00040005, + 0x0000076f,0x61726170,0x0000006d,0x00040005,0x00000771,0x61726170,0x0000006d,0x00050005, + 0x00000773,0x786f4266,0x6c616353,0x00000065,0x00040005,0x00000775,0x61726170,0x0000006d, + 0x00040005,0x00000776,0x61726170,0x0000006d,0x00040005,0x00000777,0x61726170,0x0000006d, + 0x00060005,0x0000077a,0x61635366,0x4264656c,0x6556786f,0x00000063,0x00080005,0x00000782, + 0x616c4366,0x6465706d,0x6c616353,0x6f426465,0x63655678,0x00000000,0x00040005,0x00000785, + 0x61726170,0x0000006d,0x00040005,0x00000787,0x61726170,0x0000006d,0x00090005,0x00000789, + 0x61725466,0x6f66736e,0x64656d72,0x74736948,0x4379726f,0x726f6c6f,0x00000000,0x00080005, + 0x00000796,0x616c4366,0x6465706d,0x74736948,0x4379726f,0x726f6c6f,0x00000000,0x00090005, + 0x00000799,0x6e694666,0x6c436c61,0x65706d61,0x73694864,0x79726f74,0x6f6c6f43,0x00000072, + 0x00080005,0x000007a0,0x73694866,0x79726f74,0x746e6f43,0x75626972,0x6e6f6974,0x00000000, + 0x00040005,0x000007a1,0x61726170,0x0000006d,0x00040005,0x000007a3,0x61726170,0x0000006d, + 0x00040005,0x000007ac,0x61726170,0x0000006d,0x00040005,0x000007af,0x61726170,0x0000006d, + 0x00040005,0x000007b1,0x61726170,0x0000006d,0x00040005,0x000007b4,0x61726170,0x0000006d, + 0x00080005,0x000007c0,0x66694c66,0x6d697465,0x63654465,0x73616572,0x63614665,0x00726f74, + 0x00040005,0x000007c1,0x61726170,0x0000006d,0x00040005,0x000007c5,0x61726170,0x0000006d, + 0x00040005,0x000007c8,0x61726170,0x0000006d,0x00040005,0x000007cc,0x61726170,0x0000006d, + 0x00040005,0x000007cd,0x61726170,0x0000006d,0x00040005,0x000007d4,0x61726170,0x0000006d, + 0x00040005,0x000007d5,0x61726170,0x0000006d,0x00040005,0x000007db,0x61726170,0x0000006d, + 0x00040005,0x000007de,0x61726170,0x0000006d,0x00070005,0x000007e1,0x77654e66,0x6b636f4c, + 0x65746e49,0x7469736e,0x00000079,0x00040005,0x000007e2,0x61726170,0x0000006d,0x00040005, + 0x000007e9,0x61726170,0x0000006d,0x00040005,0x000007ea,0x61726170,0x0000006d,0x00040005, + 0x000007f4,0x61726170,0x0000006d,0x00040005,0x000007f5,0x61726170,0x0000006d,0x00040005, + 0x000007f7,0x61726170,0x0000006d,0x00040005,0x000007f8,0x61726170,0x0000006d,0x00070005, + 0x000007fb,0x66694c66,0x6d697465,0x63654465,0x73616572,0x00000065,0x00040005,0x00000806, + 0x61726170,0x0000006d,0x00040005,0x00000807,0x61726170,0x0000006d,0x00080005,0x0000080a, + 0x74734566,0x74616d69,0x76556465,0x7478654e,0x6d617246,0x00000065,0x00040005,0x00000810, + 0x61726170,0x0000006d,0x00070005,0x0000081a,0x73614266,0x63634165,0x6c756d75,0x6f697461, + 0x0000006e,0x00040005,0x00000821,0x61726170,0x0000006d,0x00040005,0x00000822,0x61726170, + 0x0000006d,0x00040005,0x00000824,0x61726170,0x0000006d,0x00040005,0x00000826,0x61726170, + 0x0000006d,0x00040005,0x00000828,0x61726170,0x0000006d,0x00040005,0x00000829,0x61726170, + 0x0000006d,0x00040005,0x0000082b,0x61726170,0x0000006d,0x00040005,0x0000082d,0x61726170, + 0x0000006d,0x00040005,0x00000833,0x55724866,0x00000076,0x00040005,0x00000846,0x61726170, + 0x0000006d,0x00040005,0x00000849,0x61726170,0x0000006d,0x00040005,0x0000084a,0x61726170, + 0x0000006d,0x00040005,0x0000084d,0x61726170,0x0000006d,0x00040005,0x0000084f,0x61726170, + 0x0000006d,0x00040005,0x00000853,0x61726170,0x0000006d,0x00040005,0x00000858,0x61726170, + 0x0000006d,0x00080005,0x0000085c,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x485f7655, + 0x00000057,0x00040005,0x0000085f,0x61726170,0x0000006d,0x00040005,0x00000861,0x61726170, + 0x0000006d,0x00040005,0x00000862,0x61726170,0x0000006d,0x00040005,0x00000864,0x61726170, + 0x0000006d,0x00070005,0x00000868,0x72614666,0x73656874,0x70654474,0x76556874,0x00000000, + 0x00040005,0x0000086d,0x61726170,0x0000006d,0x00040005,0x00000870,0x61726170,0x0000006d, + 0x00040005,0x00000871,0x61726170,0x0000006d,0x00040005,0x00000873,0x61726170,0x0000006d, + 0x00080005,0x00000881,0x6c694466,0x64657461,0x63616552,0x65766974,0x6b73614d,0x00000073, + 0x00040005,0x00000882,0x61726170,0x0000006d,0x00040005,0x00000886,0x61726170,0x0000006d, + 0x00040005,0x0000088b,0x61726170,0x0000006d,0x00040005,0x00000890,0x61726170,0x0000006d, + 0x00040005,0x00000895,0x61726170,0x0000006d,0x00040005,0x000008ab,0x61726170,0x0000736d, + 0x00040005,0x000008ac,0x61746164,0x00000000,0x00040005,0x000008ad,0x61726170,0x0000006d, + 0x00040005,0x000008af,0x61726170,0x0000006d,0x00040005,0x000008b1,0x61726170,0x0000006d, + 0x00040005,0x000008c1,0x61726170,0x0000006d,0x00040005,0x000008c5,0x61726170,0x0000006d, + 0x00040005,0x000008c7,0x61726170,0x0000006d,0x00040005,0x000008cc,0x61726170,0x0000006d, + 0x00040005,0x000008d1,0x61726170,0x0000006d,0x00040005,0x000008d6,0x61726170,0x0000006d, + 0x00040005,0x000008db,0x61726170,0x0000006d,0x00040005,0x000008e5,0x61726170,0x0000006d, + 0x00040005,0x000008e8,0x61726170,0x0000006d,0x00040005,0x000008f3,0x61726170,0x0000006d, + 0x00040005,0x000008f5,0x61726170,0x0000006d,0x00040005,0x000008f7,0x61726170,0x0000006d, + 0x00040005,0x000008f9,0x61726170,0x0000006d,0x00080005,0x000008fd,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000901,0x61726170,0x0000006d, + 0x00060005,0x00000905,0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00070005,0x00000908, + 0x755f7772,0x61637370,0x5f64656c,0x7074756f,0x00007475,0x00060005,0x00000909,0x75635f72, + 0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x0000090a,0x616c5f72,0x6f7a636e,0x756c5f73, + 0x00000074,0x00030047,0x0000018f,0x00000002,0x00050048,0x0000018f,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000018f,0x00000001,0x00000023,0x00000008,0x00050048,0x0000018f, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000018f,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000018f,0x00000004,0x00000023,0x00000020,0x00050048,0x0000018f,0x00000005, + 0x00000023,0x00000028,0x00050048,0x0000018f,0x00000006,0x00000023,0x00000030,0x00050048, + 0x0000018f,0x00000007,0x00000023,0x00000040,0x00050048,0x0000018f,0x00000008,0x00000023, + 0x00000048,0x00050048,0x0000018f,0x00000009,0x00000023,0x00000050,0x00050048,0x0000018f, + 0x0000000a,0x00000023,0x00000058,0x00050048,0x0000018f,0x0000000b,0x00000023,0x00000060, + 0x00050048,0x0000018f,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000018f,0x0000000d, + 0x00000023,0x0000006c,0x00050048,0x0000018f,0x0000000e,0x00000023,0x00000070,0x00050048, + 0x0000018f,0x0000000f,0x00000023,0x00000074,0x00050048,0x0000018f,0x00000010,0x00000023, + 0x00000078,0x00050048,0x0000018f,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000018f, + 0x00000012,0x00000023,0x00000080,0x00050048,0x0000018f,0x00000013,0x00000023,0x00000084, + 0x00050048,0x0000018f,0x00000014,0x00000023,0x00000088,0x00050048,0x0000018f,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000018f,0x00000016,0x00000023,0x00000090,0x00040047, + 0x00000191,0x00000021,0x0000000c,0x00040047,0x00000191,0x00000022,0x00000000,0x00040047, + 0x000001c9,0x00000021,0x00000008,0x00040047,0x000001c9,0x00000022,0x00000000,0x00040047, + 0x000001d0,0x00000021,0x00000003,0x00040047,0x000001d0,0x00000022,0x00000000,0x00030047, + 0x000001d8,0x00000019,0x00040047,0x000001d8,0x00000021,0x00000009,0x00040047,0x000001d8, + 0x00000022,0x00000000,0x00040047,0x000001dc,0x00000021,0x00000005,0x00040047,0x000001dc, + 0x00000022,0x00000000,0x00040047,0x000001e4,0x00000021,0x000003e9,0x00040047,0x000001e4, + 0x00000022,0x00000000,0x00040047,0x000001ef,0x00000021,0x00000007,0x00040047,0x000001ef, + 0x00000022,0x00000000,0x00040047,0x000001fa,0x00000021,0x0000000b,0x00040047,0x000001fa, + 0x00000022,0x00000000,0x00040047,0x00000205,0x00000021,0x00000002,0x00040047,0x00000205, + 0x00000022,0x00000000,0x00040047,0x0000020d,0x00000021,0x00000000,0x00040047,0x0000020d, + 0x00000022,0x00000000,0x00040047,0x00000219,0x00000021,0x00000001,0x00040047,0x00000219, + 0x00000022,0x00000000,0x00040047,0x000008fd,0x0000000b,0x0000001c,0x00040047,0x00000905, + 0x00000021,0x000003e8,0x00040047,0x00000905,0x00000022,0x00000000,0x00030047,0x00000908, + 0x00000019,0x00040047,0x00000908,0x00000021,0x0000000a,0x00040047,0x00000908,0x00000022, + 0x00000000,0x00040047,0x00000909,0x00000021,0x00000006,0x00040047,0x00000909,0x00000022, + 0x00000000,0x00040047,0x0000090a,0x00000021,0x00000004,0x00040047,0x0000090a,0x00000022, + 0x00000000,0x00040047,0x00000911,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00040017, + 0x0000000e,0x00000006,0x00000003,0x00040020,0x0000000f,0x00000007,0x0000000e,0x00060021, + 0x00000010,0x0000000e,0x0000000f,0x0000000f,0x00000007,0x00040021,0x00000016,0x00000006, + 0x00000007,0x00040017,0x0000001a,0x00000006,0x00000002,0x00040020,0x0000001b,0x00000007, + 0x0000001a,0x00040021,0x0000001c,0x0000001a,0x0000001b,0x00050021,0x00000020,0x00000006, + 0x00000007,0x00000007,0x00050021,0x00000025,0x0000001a,0x0000001b,0x0000001b,0x00050021, + 0x0000002a,0x0000000e,0x0000000f,0x0000000f,0x00040017,0x0000002f,0x00000006,0x00000004, + 0x00040020,0x00000030,0x00000007,0x0000002f,0x00050021,0x00000031,0x0000002f,0x00000030, + 0x00000030,0x00040015,0x00000036,0x00000020,0x00000001,0x00040020,0x00000037,0x00000007, + 0x00000036,0x00050021,0x00000038,0x00000036,0x00000037,0x00000037,0x00040017,0x00000055, + 0x00000036,0x00000002,0x00030021,0x00000056,0x00000055,0x00030021,0x0000005f,0x0000001a, + 0x00030021,0x00000064,0x00000006,0x00040020,0x0000006d,0x00000007,0x00000055,0x00040021, + 0x0000006e,0x0000000e,0x0000006d,0x00040021,0x00000072,0x0000002f,0x0000006d,0x00050021, + 0x00000076,0x00000002,0x0000006d,0x00000030,0x00040021,0x0000007d,0x00000006,0x0000001b, + 0x00040021,0x00000084,0x00000006,0x0000006d,0x00050021,0x00000088,0x00000002,0x0000006d, + 0x00000007,0x00040021,0x0000008d,0x0000001a,0x0000006d,0x00040021,0x00000093,0x0000002f, + 0x0000001b,0x0007001e,0x0000009a,0x0000000e,0x0000000e,0x0000000e,0x0000000e,0x00000006, + 0x00040020,0x0000009b,0x00000007,0x0000009a,0x00060021,0x0000009c,0x00000002,0x0000009b, + 0x0000000e,0x00000006,0x00020014,0x000000a2,0x00040020,0x000000a3,0x00000007,0x000000a2, + 0x00070021,0x000000a4,0x00000002,0x000000a3,0x0000009b,0x0000000e,0x00000006,0x00040021, + 0x000000ab,0x00000002,0x0000009b,0x00040021,0x000000af,0x0000000e,0x0000000f,0x00040021, + 0x000000bc,0x000000a2,0x0000001b,0x00060021,0x000000c0,0x00000055,0x0000006d,0x0000006d, + 0x0000006d,0x00060021,0x000000c6,0x0000001a,0x0000001b,0x0000006d,0x0000006d,0x00050021, + 0x000000cc,0x000000a2,0x0000006d,0x0000006d,0x00080021,0x000000dd,0x0000002f,0x00000030, + 0x00000030,0x00000030,0x00000030,0x00000007,0x0012001e,0x000000e5,0x0000002f,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x00040020,0x000000e6, + 0x00000007,0x000000e5,0x00050021,0x000000e7,0x0000002f,0x000000e6,0x0000001b,0x00050021, + 0x000000f1,0x00000002,0x0000009b,0x0000000f,0x00050021,0x000000f6,0x00000006,0x0000001b, + 0x00000007,0x0011001e,0x000000fb,0x00000055,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x000000a2,0x000000a2,0x0009001e,0x000000fc,0x0000009a,0x0000000e,0x00000006,0x0000000e, + 0x00000006,0x00000006,0x00000006,0x00040020,0x000000fd,0x00000007,0x000000fc,0x00050021, + 0x000000fe,0x00000006,0x000000fb,0x000000fd,0x00050021,0x00000106,0x00000002,0x000000fb, + 0x000000fd,0x00050021,0x0000010e,0x000000e5,0x0000006d,0x0000006d,0x00050021,0x00000113, + 0x0000002f,0x0000001b,0x0000006d,0x00050021,0x00000118,0x0000001a,0x0000006d,0x0000001b, + 0x00040020,0x0000011d,0x00000007,0x000000fb,0x00040021,0x0000011e,0x00000002,0x0000011d, + 0x00050021,0x0000012e,0x00000002,0x0000011d,0x000000fd,0x00060021,0x00000137,0x00000002, + 0x0000006d,0x0000011d,0x000000fd,0x00040021,0x0000013d,0x00000002,0x0000006d,0x0004002b, + 0x00000006,0x0000014f,0x00000000,0x0004002b,0x00000006,0x00000150,0x3f800000,0x0019001e, + 0x0000018f,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055,0x0000002f, + 0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00040020,0x00000190,0x00000002,0x0000018f,0x0004003b,0x00000190,0x00000191,0x00000002, + 0x0004002b,0x00000036,0x00000192,0x00000000,0x00040020,0x00000193,0x00000002,0x00000055, + 0x0004002b,0x00000036,0x00000198,0x00000004,0x0004002b,0x00000036,0x0000019d,0x00000002, + 0x0004002b,0x00000036,0x000001a2,0x00000003,0x0004002b,0x00000036,0x000001a7,0x00000007, + 0x00040020,0x000001a8,0x00000002,0x0000001a,0x0004002b,0x00000036,0x000001ad,0x0000000a, + 0x0004002b,0x00000036,0x000001b2,0x0000000d,0x00040020,0x000001b3,0x00000002,0x00000006, + 0x0004002b,0x00000036,0x000001b8,0x0000000f,0x0004002b,0x00000036,0x000001bd,0x00000011, + 0x0004002b,0x00000036,0x000001c2,0x00000012,0x00090019,0x000001c7,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001c8,0x00000000, + 0x000001c7,0x0004003b,0x000001c8,0x000001c9,0x00000000,0x0004003b,0x000001c8,0x000001d0, + 0x00000000,0x00090019,0x000001d6,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000002,0x00040020,0x000001d7,0x00000000,0x000001d6,0x0004003b,0x000001d7, + 0x000001d8,0x00000000,0x0004003b,0x000001c8,0x000001dc,0x00000000,0x0002001a,0x000001e2, + 0x00040020,0x000001e3,0x00000000,0x000001e2,0x0004003b,0x000001e3,0x000001e4,0x00000000, + 0x0003001b,0x000001e6,0x000001c7,0x00040015,0x000001ea,0x00000020,0x00000000,0x0004002b, + 0x000001ea,0x000001eb,0x00000000,0x0004003b,0x000001c8,0x000001ef,0x00000000,0x00090019, + 0x000001f8,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x0000000f, + 0x00040020,0x000001f9,0x00000000,0x000001f8,0x0004003b,0x000001f9,0x000001fa,0x00000000, + 0x0004003b,0x000001c8,0x00000205,0x00000000,0x0004003b,0x000001c8,0x0000020d,0x00000000, + 0x0005002c,0x00000055,0x0000020f,0x00000192,0x00000192,0x0004003b,0x000001c8,0x00000219, + 0x00000000,0x0004002b,0x00000006,0x00000222,0x45700000,0x0004002b,0x00000006,0x00000223, + 0x45070000,0x0005002c,0x0000001a,0x00000224,0x00000222,0x00000223,0x0004002b,0x00000036, + 0x0000022f,0x00000001,0x0004002b,0x00000006,0x0000025c,0x00800000,0x0004002b,0x000001ea, + 0x00000284,0x00000001,0x0004002b,0x000001ea,0x00000288,0x00000002,0x0004002b,0x00000006, + 0x0000029e,0x3e800000,0x0004002b,0x00000006,0x000002a2,0x3f000000,0x0004002b,0x00000006, + 0x000002b2,0xbe800000,0x0004002b,0x00000006,0x000002d8,0x387fda40,0x0005002c,0x0000001a, + 0x00000329,0x000002a2,0x000002a2,0x00040017,0x0000033d,0x000001ea,0x00000002,0x00040017, + 0x00000341,0x000000a2,0x00000002,0x0004002b,0x00000006,0x0000034d,0x40490fdb,0x0004002b, + 0x00000006,0x00000354,0x3fc90fdb,0x0004002b,0x00000006,0x00000361,0x40000000,0x0004002b, + 0x00000006,0x0000036b,0x3ecccccd,0x0004002b,0x00000006,0x00000373,0x3fc80000,0x0004002b, + 0x00000006,0x00000378,0x3f100000,0x0004002b,0x00000006,0x00000380,0x40800000,0x0004002b, + 0x00000006,0x0000038b,0xbf800000,0x0004002b,0x00000006,0x00000391,0x80000000,0x0004002b, + 0x00000036,0x000003cc,0x00000005,0x0004002b,0x00000036,0x000003cd,0x00000006,0x0004002b, + 0x00000036,0x000003df,0x00000008,0x0004002b,0x00000036,0x000003e0,0x00000009,0x0004002b, + 0x00000036,0x000003e1,0x0000000b,0x0004002b,0x00000036,0x000003f3,0x0000000c,0x0004002b, + 0x00000036,0x000003f4,0x0000000e,0x0004002b,0x000001ea,0x00000412,0x00000004,0x0004001c, + 0x00000413,0x0000002f,0x00000412,0x00040020,0x00000414,0x00000007,0x00000413,0x0004002b, + 0x00000006,0x0000047f,0x3ffeb852,0x0006002c,0x0000000e,0x00000487,0x0000014f,0x0000014f, + 0x0000014f,0x0004002b,0x00000036,0x000004b3,0xfffffffe,0x0004002b,0x00000036,0x000004b4, + 0xffffffff,0x0004002b,0x000001ea,0x00000502,0x00000009,0x0004001c,0x00000503,0x0000000e, + 0x00000502,0x00040020,0x00000504,0x00000007,0x00000503,0x0004002b,0x00000006,0x00000530, + 0x3e99999a,0x0004002b,0x00000006,0x0000053d,0x40a00000,0x0004002b,0x00000006,0x000005a8, + 0xc0133333,0x0004002b,0x00000006,0x000005e0,0x3d3d70a4,0x0005002c,0x00000055,0x00000602, + 0x000004b4,0x000004b4,0x0005002c,0x00000055,0x0000060c,0x00000192,0x000004b4,0x0005002c, + 0x00000055,0x00000616,0x0000022f,0x000004b4,0x0005002c,0x00000055,0x00000620,0x0000019d, + 0x000004b4,0x0005002c,0x00000055,0x0000062a,0x000004b4,0x00000192,0x0005002c,0x00000055, + 0x0000063d,0x0000022f,0x00000192,0x0005002c,0x00000055,0x00000647,0x0000019d,0x00000192, + 0x0005002c,0x00000055,0x00000651,0x000004b4,0x0000022f,0x0005002c,0x00000055,0x0000065b, + 0x00000192,0x0000022f,0x0005002c,0x00000055,0x00000665,0x0000022f,0x0000022f,0x0005002c, + 0x00000055,0x0000066f,0x0000019d,0x0000022f,0x0005002c,0x00000055,0x00000679,0x000004b4, + 0x0000019d,0x0005002c,0x00000055,0x00000683,0x00000192,0x0000019d,0x0005002c,0x00000055, + 0x0000068d,0x0000022f,0x0000019d,0x0005002c,0x00000055,0x00000697,0x0000019d,0x0000019d, + 0x0004002b,0x000001ea,0x00000707,0x00000003,0x0004002b,0x00000006,0x0000074c,0x41a00000, + 0x0004002b,0x00000006,0x00000751,0x3f400000,0x0004002b,0x00000006,0x00000774,0x40400000, + 0x0004002b,0x00000006,0x0000077d,0x3fd9999a,0x0006002c,0x0000000e,0x0000077e,0x0000077d, + 0x00000150,0x00000150,0x0004002b,0x00000006,0x00000783,0x340018ef,0x0006002c,0x0000000e, + 0x00000784,0x00000783,0x00000783,0x00000783,0x0003002a,0x000000a2,0x000007b9,0x0004002b, + 0x00000006,0x000007fc,0x3dcccccd,0x00030029,0x000000a2,0x00000813,0x0004002b,0x00000006, + 0x0000081c,0x3e19999a,0x0004002b,0x00000006,0x0000089c,0x42c80000,0x00040017,0x000008fb, + 0x000001ea,0x00000003,0x00040020,0x000008fc,0x00000001,0x000008fb,0x0004003b,0x000008fc, + 0x000008fd,0x00000001,0x0004002b,0x00000006,0x00000903,0x477fe000,0x0004002b,0x00000006, + 0x00000904,0x37801002,0x0004003b,0x000001e3,0x00000905,0x00000000,0x00090019,0x00000906, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020, + 0x00000907,0x00000000,0x00000906,0x0004003b,0x00000907,0x00000908,0x00000000,0x0004003b, + 0x000001c8,0x00000909,0x00000000,0x0004003b,0x000001c8,0x0000090a,0x00000000,0x0004002b, + 0x00000006,0x0000090b,0x7f7fffff,0x0004002b,0x00000006,0x0000090c,0x3a1fe868,0x0004002b, + 0x00000006,0x0000090d,0x3d800000,0x0004002b,0x00000006,0x0000090e,0x3e400000,0x0004002b, + 0x00000006,0x0000090f,0x461c4000,0x0004002b,0x000001ea,0x00000910,0x00000008,0x0006002c, + 0x000008fb,0x00000911,0x00000910,0x00000910,0x00000284,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000006d,0x00000901,0x00000007, + 0x0004003d,0x000008fb,0x000008fe,0x000008fd,0x0007004f,0x0000033d,0x000008ff,0x000008fe, + 0x000008fe,0x00000000,0x00000001,0x0004007c,0x00000055,0x00000900,0x000008ff,0x0003003e, + 0x00000901,0x00000900,0x00050039,0x00000002,0x00000902,0x0000013f,0x00000901,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8, + 0x0000000d,0x0004003d,0x00000006,0x00000141,0x00000009,0x0004003d,0x00000006,0x00000142, + 0x0000000a,0x0004003d,0x00000006,0x00000143,0x0000000b,0x0008000c,0x00000006,0x00000144, + 0x00000001,0x0000002e,0x00000141,0x00000142,0x00000143,0x000200fe,0x00000144,0x00010038, + 0x00050036,0x0000000e,0x00000014,0x00000000,0x00000010,0x00030037,0x0000000f,0x00000011, + 0x00030037,0x0000000f,0x00000012,0x00030037,0x00000007,0x00000013,0x000200f8,0x00000015, + 0x0004003d,0x0000000e,0x00000147,0x00000011,0x0004003d,0x0000000e,0x00000148,0x00000012, + 0x0004003d,0x00000006,0x00000149,0x00000013,0x00060050,0x0000000e,0x0000014a,0x00000149, + 0x00000149,0x00000149,0x0008000c,0x0000000e,0x0000014b,0x00000001,0x0000002e,0x00000147, + 0x00000148,0x0000014a,0x000200fe,0x0000014b,0x00010038,0x00050036,0x00000006,0x00000018, + 0x00000000,0x00000016,0x00030037,0x00000007,0x00000017,0x000200f8,0x00000019,0x0004003d, + 0x00000006,0x0000014e,0x00000017,0x0008000c,0x00000006,0x00000151,0x00000001,0x0000002b, + 0x0000014e,0x0000014f,0x00000150,0x000200fe,0x00000151,0x00010038,0x00050036,0x0000001a, + 0x0000001e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x000200f8,0x0000001f, + 0x0004003d,0x0000001a,0x00000154,0x0000001d,0x0006000c,0x0000001a,0x00000155,0x00000001, + 0x0000000a,0x00000154,0x000200fe,0x00000155,0x00010038,0x00050036,0x00000006,0x00000023, + 0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x00030037,0x00000007,0x00000022, + 0x000200f8,0x00000024,0x0004003d,0x00000006,0x00000158,0x00000021,0x0004003d,0x00000006, + 0x00000159,0x00000022,0x0007000c,0x00000006,0x0000015a,0x00000001,0x00000025,0x00000158, + 0x00000159,0x000200fe,0x0000015a,0x00010038,0x00050036,0x0000001a,0x00000028,0x00000000, + 0x00000025,0x00030037,0x0000001b,0x00000026,0x00030037,0x0000001b,0x00000027,0x000200f8, + 0x00000029,0x0004003d,0x0000001a,0x0000015d,0x00000026,0x0004003d,0x0000001a,0x0000015e, + 0x00000027,0x0007000c,0x0000001a,0x0000015f,0x00000001,0x00000025,0x0000015d,0x0000015e, + 0x000200fe,0x0000015f,0x00010038,0x00050036,0x0000000e,0x0000002d,0x00000000,0x0000002a, + 0x00030037,0x0000000f,0x0000002b,0x00030037,0x0000000f,0x0000002c,0x000200f8,0x0000002e, + 0x0004003d,0x0000000e,0x00000162,0x0000002b,0x0004003d,0x0000000e,0x00000163,0x0000002c, + 0x0007000c,0x0000000e,0x00000164,0x00000001,0x00000025,0x00000162,0x00000163,0x000200fe, + 0x00000164,0x00010038,0x00050036,0x0000002f,0x00000034,0x00000000,0x00000031,0x00030037, + 0x00000030,0x00000032,0x00030037,0x00000030,0x00000033,0x000200f8,0x00000035,0x0004003d, + 0x0000002f,0x00000167,0x00000032,0x0004003d,0x0000002f,0x00000168,0x00000033,0x0007000c, + 0x0000002f,0x00000169,0x00000001,0x00000025,0x00000167,0x00000168,0x000200fe,0x00000169, + 0x00010038,0x00050036,0x00000036,0x0000003b,0x00000000,0x00000038,0x00030037,0x00000037, + 0x00000039,0x00030037,0x00000037,0x0000003a,0x000200f8,0x0000003c,0x0004003d,0x00000036, + 0x0000016c,0x00000039,0x0004003d,0x00000036,0x0000016d,0x0000003a,0x0007000c,0x00000036, + 0x0000016e,0x00000001,0x00000027,0x0000016c,0x0000016d,0x000200fe,0x0000016e,0x00010038, + 0x00050036,0x00000006,0x0000003f,0x00000000,0x00000020,0x00030037,0x00000007,0x0000003d, + 0x00030037,0x00000007,0x0000003e,0x000200f8,0x00000040,0x0004003d,0x00000006,0x00000171, + 0x0000003d,0x0004003d,0x00000006,0x00000172,0x0000003e,0x0007000c,0x00000006,0x00000173, + 0x00000001,0x00000028,0x00000171,0x00000172,0x000200fe,0x00000173,0x00010038,0x00050036, + 0x0000001a,0x00000043,0x00000000,0x00000025,0x00030037,0x0000001b,0x00000041,0x00030037, + 0x0000001b,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000001a,0x00000176,0x00000041, + 0x0004003d,0x0000001a,0x00000177,0x00000042,0x0007000c,0x0000001a,0x00000178,0x00000001, + 0x00000028,0x00000176,0x00000177,0x000200fe,0x00000178,0x00010038,0x00050036,0x0000000e, + 0x00000047,0x00000000,0x0000002a,0x00030037,0x0000000f,0x00000045,0x00030037,0x0000000f, + 0x00000046,0x000200f8,0x00000048,0x0004003d,0x0000000e,0x0000017b,0x00000045,0x0004003d, + 0x0000000e,0x0000017c,0x00000046,0x0007000c,0x0000000e,0x0000017d,0x00000001,0x00000028, + 0x0000017b,0x0000017c,0x000200fe,0x0000017d,0x00010038,0x00050036,0x0000002f,0x0000004b, + 0x00000000,0x00000031,0x00030037,0x00000030,0x00000049,0x00030037,0x00000030,0x0000004a, + 0x000200f8,0x0000004c,0x0004003d,0x0000002f,0x00000180,0x00000049,0x0004003d,0x0000002f, + 0x00000181,0x0000004a,0x0007000c,0x0000002f,0x00000182,0x00000001,0x00000028,0x00000180, + 0x00000181,0x000200fe,0x00000182,0x00010038,0x00050036,0x00000036,0x0000004f,0x00000000, + 0x00000038,0x00030037,0x00000037,0x0000004d,0x00030037,0x00000037,0x0000004e,0x000200f8, + 0x00000050,0x0004003d,0x00000036,0x00000185,0x0000004d,0x0004003d,0x00000036,0x00000186, + 0x0000004e,0x0007000c,0x00000036,0x00000187,0x00000001,0x0000002a,0x00000185,0x00000186, + 0x000200fe,0x00000187,0x00010038,0x00050036,0x00000006,0x00000053,0x00000000,0x00000020, + 0x00030037,0x00000007,0x00000051,0x00030037,0x00000007,0x00000052,0x000200f8,0x00000054, + 0x0004003d,0x00000006,0x0000018a,0x00000051,0x0004003d,0x00000006,0x0000018b,0x00000052, + 0x0007000c,0x00000006,0x0000018c,0x00000001,0x0000001a,0x0000018a,0x0000018b,0x000200fe, + 0x0000018c,0x00010038,0x00050036,0x00000055,0x00000057,0x00000000,0x00000056,0x000200f8, + 0x00000058,0x00050041,0x00000193,0x00000194,0x00000191,0x00000192,0x0004003d,0x00000055, + 0x00000195,0x00000194,0x000200fe,0x00000195,0x00010038,0x00050036,0x00000055,0x00000059, + 0x00000000,0x00000056,0x000200f8,0x0000005a,0x00050041,0x00000193,0x00000199,0x00000191, + 0x00000198,0x0004003d,0x00000055,0x0000019a,0x00000199,0x000200fe,0x0000019a,0x00010038, + 0x00050036,0x00000055,0x0000005b,0x00000000,0x00000056,0x000200f8,0x0000005c,0x00050041, + 0x00000193,0x0000019e,0x00000191,0x0000019d,0x0004003d,0x00000055,0x0000019f,0x0000019e, + 0x000200fe,0x0000019f,0x00010038,0x00050036,0x00000055,0x0000005d,0x00000000,0x00000056, + 0x000200f8,0x0000005e,0x00050041,0x00000193,0x000001a3,0x00000191,0x000001a2,0x0004003d, + 0x00000055,0x000001a4,0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036,0x0000001a, + 0x00000060,0x00000000,0x0000005f,0x000200f8,0x00000061,0x00050041,0x000001a8,0x000001a9, + 0x00000191,0x000001a7,0x0004003d,0x0000001a,0x000001aa,0x000001a9,0x000200fe,0x000001aa, + 0x00010038,0x00050036,0x0000001a,0x00000062,0x00000000,0x0000005f,0x000200f8,0x00000063, + 0x00050041,0x000001a8,0x000001ae,0x00000191,0x000001ad,0x0004003d,0x0000001a,0x000001af, + 0x000001ae,0x000200fe,0x000001af,0x00010038,0x00050036,0x00000006,0x00000065,0x00000000, + 0x00000064,0x000200f8,0x00000066,0x00050041,0x000001b3,0x000001b4,0x00000191,0x000001b2, + 0x0004003d,0x00000006,0x000001b5,0x000001b4,0x000200fe,0x000001b5,0x00010038,0x00050036, + 0x00000006,0x00000067,0x00000000,0x00000064,0x000200f8,0x00000068,0x00050041,0x000001b3, + 0x000001b9,0x00000191,0x000001b8,0x0004003d,0x00000006,0x000001ba,0x000001b9,0x000200fe, + 0x000001ba,0x00010038,0x00050036,0x00000006,0x00000069,0x00000000,0x00000064,0x000200f8, + 0x0000006a,0x00050041,0x000001b3,0x000001be,0x00000191,0x000001bd,0x0004003d,0x00000006, + 0x000001bf,0x000001be,0x000200fe,0x000001bf,0x00010038,0x00050036,0x00000006,0x0000006b, + 0x00000000,0x00000064,0x000200f8,0x0000006c,0x00050041,0x000001b3,0x000001c3,0x00000191, + 0x000001c2,0x0004003d,0x00000006,0x000001c4,0x000001c3,0x000200fe,0x000001c4,0x00010038, + 0x00050036,0x0000000e,0x00000070,0x00000000,0x0000006e,0x00030037,0x0000006d,0x0000006f, + 0x000200f8,0x00000071,0x0004003d,0x000001c7,0x000001ca,0x000001c9,0x0004003d,0x00000055, + 0x000001cb,0x0000006f,0x0007005f,0x0000002f,0x000001cc,0x000001ca,0x000001cb,0x00000002, + 0x00000192,0x0008004f,0x0000000e,0x000001cd,0x000001cc,0x000001cc,0x00000000,0x00000001, + 0x00000002,0x000200fe,0x000001cd,0x00010038,0x00050036,0x0000002f,0x00000074,0x00000000, + 0x00000072,0x00030037,0x0000006d,0x00000073,0x000200f8,0x00000075,0x0004003d,0x000001c7, + 0x000001d1,0x000001d0,0x0004003d,0x00000055,0x000001d2,0x00000073,0x0007005f,0x0000002f, + 0x000001d3,0x000001d1,0x000001d2,0x00000002,0x00000192,0x000200fe,0x000001d3,0x00010038, + 0x00050036,0x00000002,0x00000079,0x00000000,0x00000076,0x00030037,0x0000006d,0x00000077, + 0x00030037,0x00000030,0x00000078,0x000200f8,0x0000007a,0x0004003d,0x000001d6,0x000001d9, + 0x000001d8,0x0004003d,0x00000055,0x000001da,0x00000077,0x0004003d,0x0000002f,0x000001db, + 0x00000078,0x00040063,0x000001d9,0x000001da,0x000001db,0x000100fd,0x00010038,0x00050036, + 0x00000055,0x0000007b,0x00000000,0x00000056,0x000200f8,0x0000007c,0x0004003d,0x000001c7, + 0x000001dd,0x000001dc,0x00050067,0x00000055,0x000001de,0x000001dd,0x00000192,0x000200fe, + 0x000001de,0x00010038,0x00050036,0x00000006,0x0000007f,0x00000000,0x0000007d,0x00030037, + 0x0000001b,0x0000007e,0x000200f8,0x00000080,0x0004003d,0x000001c7,0x000001e1,0x000001dc, + 0x0004003d,0x000001e2,0x000001e5,0x000001e4,0x00050056,0x000001e6,0x000001e7,0x000001e1, + 0x000001e5,0x0004003d,0x0000001a,0x000001e8,0x0000007e,0x00070058,0x0000002f,0x000001e9, + 0x000001e7,0x000001e8,0x00000002,0x0000014f,0x00050051,0x00000006,0x000001ec,0x000001e9, + 0x00000000,0x000200fe,0x000001ec,0x00010038,0x00050036,0x00000006,0x00000082,0x00000000, + 0x0000007d,0x00030037,0x0000001b,0x00000081,0x000200f8,0x00000083,0x0004003d,0x000001c7, + 0x000001f0,0x000001ef,0x0004003d,0x000001e2,0x000001f1,0x000001e4,0x00050056,0x000001e6, + 0x000001f2,0x000001f0,0x000001f1,0x0004003d,0x0000001a,0x000001f3,0x00000081,0x00070058, + 0x0000002f,0x000001f4,0x000001f2,0x000001f3,0x00000002,0x0000014f,0x00050051,0x00000006, + 0x000001f5,0x000001f4,0x00000000,0x000200fe,0x000001f5,0x00010038,0x00050036,0x00000006, + 0x00000086,0x00000000,0x00000084,0x00030037,0x0000006d,0x00000085,0x000200f8,0x00000087, + 0x0004003d,0x000001f8,0x000001fb,0x000001fa,0x0004003d,0x00000055,0x000001fc,0x00000085, + 0x00050062,0x0000002f,0x000001fd,0x000001fb,0x000001fc,0x00050051,0x00000006,0x000001fe, + 0x000001fd,0x00000000,0x000200fe,0x000001fe,0x00010038,0x00050036,0x00000002,0x0000008b, + 0x00000000,0x00000088,0x00030037,0x0000006d,0x00000089,0x00030037,0x00000007,0x0000008a, + 0x000200f8,0x0000008c,0x0004003d,0x000001f8,0x00000201,0x000001fa,0x0004003d,0x00000055, + 0x00000202,0x00000089,0x0004003d,0x00000006,0x00000203,0x0000008a,0x00070050,0x0000002f, + 0x00000204,0x00000203,0x0000014f,0x0000014f,0x0000014f,0x00040063,0x00000201,0x00000202, + 0x00000204,0x000100fd,0x00010038,0x00050036,0x0000001a,0x0000008f,0x00000000,0x0000008d, + 0x00030037,0x0000006d,0x0000008e,0x000200f8,0x00000090,0x0004003d,0x000001c7,0x00000206, + 0x00000205,0x0004003d,0x00000055,0x00000207,0x0000008e,0x0007005f,0x0000002f,0x00000208, + 0x00000206,0x00000207,0x00000002,0x00000192,0x0007004f,0x0000001a,0x00000209,0x00000208, + 0x00000208,0x00000000,0x00000001,0x000200fe,0x00000209,0x00010038,0x00050036,0x00000006, + 0x00000091,0x00000000,0x00000064,0x000200f8,0x00000092,0x0004003b,0x00000007,0x0000020c, + 0x00000007,0x0004003d,0x000001c7,0x0000020e,0x0000020d,0x0007005f,0x0000002f,0x00000210, + 0x0000020e,0x0000020f,0x00000002,0x00000192,0x00050051,0x00000006,0x00000211,0x00000210, + 0x00000000,0x0003003e,0x0000020c,0x00000211,0x0004003d,0x00000006,0x00000212,0x0000020c, + 0x000500b4,0x000000a2,0x00000213,0x00000212,0x0000014f,0x000300f7,0x00000215,0x00000000, + 0x000400fa,0x00000213,0x00000214,0x00000215,0x000200f8,0x00000214,0x0003003e,0x0000020c, + 0x00000150,0x000200f9,0x00000215,0x000200f8,0x00000215,0x0004003d,0x00000006,0x00000216, + 0x0000020c,0x000200fe,0x00000216,0x00010038,0x00050036,0x0000002f,0x00000095,0x00000000, + 0x00000093,0x00030037,0x0000001b,0x00000094,0x000200f8,0x00000096,0x0004003d,0x000001c7, + 0x0000021a,0x00000219,0x0004003d,0x000001e2,0x0000021b,0x000001e4,0x00050056,0x000001e6, + 0x0000021c,0x0000021a,0x0000021b,0x0004003d,0x0000001a,0x0000021d,0x00000094,0x00070058, + 0x0000002f,0x0000021e,0x0000021c,0x0000021d,0x00000002,0x0000014f,0x000200fe,0x0000021e, + 0x00010038,0x00050036,0x00000006,0x00000098,0x00000000,0x0000007d,0x00030037,0x0000001b, + 0x00000097,0x000200f8,0x00000099,0x0004003d,0x0000001a,0x00000221,0x00000097,0x00050085, + 0x0000001a,0x00000225,0x00000221,0x00000224,0x0006000c,0x00000006,0x00000226,0x00000001, + 0x00000042,0x00000225,0x000200fe,0x00000226,0x00010038,0x00050036,0x00000002,0x000000a0, + 0x00000000,0x0000009c,0x00030037,0x0000009b,0x0000009d,0x00030037,0x0000000e,0x0000009e, + 0x00030037,0x00000006,0x0000009f,0x000200f8,0x000000a1,0x0004003b,0x0000000f,0x0000022b, + 0x00000007,0x00050041,0x0000000f,0x00000229,0x0000009d,0x0000019d,0x0003003e,0x00000229, + 0x0000009e,0x00050041,0x0000000f,0x0000022a,0x0000009d,0x000001a2,0x0003003e,0x0000022a, + 0x0000009e,0x0005008e,0x0000000e,0x0000022c,0x0000009e,0x0000009f,0x0003003e,0x0000022b, + 0x0000022c,0x0004003d,0x0000000e,0x0000022d,0x0000022b,0x00050041,0x0000000f,0x0000022e, + 0x0000009d,0x00000192,0x0003003e,0x0000022e,0x0000022d,0x0004003d,0x0000000e,0x00000230, + 0x0000022b,0x00050085,0x0000000e,0x00000231,0x0000009e,0x00000230,0x00050041,0x0000000f, + 0x00000232,0x0000009d,0x0000022f,0x0003003e,0x00000232,0x00000231,0x00050041,0x00000007, + 0x00000233,0x0000009d,0x00000198,0x0003003e,0x00000233,0x0000009f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000a9,0x00000000,0x000000a4,0x00030037,0x000000a3,0x000000a5, + 0x00030037,0x0000009b,0x000000a6,0x00030037,0x0000000e,0x000000a7,0x00030037,0x00000006, + 0x000000a8,0x000200f8,0x000000aa,0x0004003b,0x0000009b,0x00000237,0x00000007,0x0004003b, + 0x0000000f,0x0000023c,0x00000007,0x0004003b,0x0000000f,0x0000023f,0x00000007,0x0004003b, + 0x0000000f,0x00000242,0x00000007,0x0004003b,0x0000000f,0x00000245,0x00000007,0x0004003b, + 0x0000000f,0x00000248,0x00000007,0x0004003d,0x000000a2,0x00000234,0x000000a5,0x000300f7, + 0x00000236,0x00000000,0x000400fa,0x00000234,0x00000235,0x0000023b,0x000200f8,0x00000235, + 0x0004003d,0x0000009a,0x00000238,0x000000a6,0x0003003e,0x00000237,0x00000238,0x00070039, + 0x00000002,0x00000239,0x000000a0,0x00000237,0x000000a7,0x000000a8,0x0004003d,0x0000009a, + 0x0000023a,0x00000237,0x0003003e,0x000000a6,0x0000023a,0x000200f9,0x00000236,0x000200f8, + 0x0000023b,0x00050041,0x0000000f,0x0000023d,0x000000a6,0x0000019d,0x0004003d,0x0000000e, + 0x0000023e,0x0000023d,0x0003003e,0x0000023c,0x0000023e,0x0003003e,0x0000023f,0x000000a7, + 0x00060039,0x0000000e,0x00000240,0x0000002d,0x0000023c,0x0000023f,0x00050041,0x0000000f, + 0x00000241,0x000000a6,0x0000019d,0x0003003e,0x00000241,0x00000240,0x00050041,0x0000000f, + 0x00000243,0x000000a6,0x000001a2,0x0004003d,0x0000000e,0x00000244,0x00000243,0x0003003e, + 0x00000242,0x00000244,0x0003003e,0x00000245,0x000000a7,0x00060039,0x0000000e,0x00000246, + 0x00000047,0x00000242,0x00000245,0x00050041,0x0000000f,0x00000247,0x000000a6,0x000001a2, + 0x0003003e,0x00000247,0x00000246,0x0005008e,0x0000000e,0x00000249,0x000000a7,0x000000a8, + 0x0003003e,0x00000248,0x00000249,0x0004003d,0x0000000e,0x0000024a,0x00000248,0x00050041, + 0x0000000f,0x0000024b,0x000000a6,0x00000192,0x0004003d,0x0000000e,0x0000024c,0x0000024b, + 0x00050081,0x0000000e,0x0000024d,0x0000024c,0x0000024a,0x00050041,0x0000000f,0x0000024e, + 0x000000a6,0x00000192,0x0003003e,0x0000024e,0x0000024d,0x0004003d,0x0000000e,0x0000024f, + 0x00000248,0x00050085,0x0000000e,0x00000250,0x000000a7,0x0000024f,0x00050041,0x0000000f, + 0x00000251,0x000000a6,0x0000022f,0x0004003d,0x0000000e,0x00000252,0x00000251,0x00050081, + 0x0000000e,0x00000253,0x00000252,0x00000250,0x00050041,0x0000000f,0x00000254,0x000000a6, + 0x0000022f,0x0003003e,0x00000254,0x00000253,0x00050041,0x00000007,0x00000255,0x000000a6, + 0x00000198,0x0004003d,0x00000006,0x00000256,0x00000255,0x00050081,0x00000006,0x00000257, + 0x00000256,0x000000a8,0x00050041,0x00000007,0x00000258,0x000000a6,0x00000198,0x0003003e, + 0x00000258,0x00000257,0x000200f9,0x00000236,0x000200f8,0x00000236,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000ad,0x00000000,0x000000ab,0x00030037,0x0000009b,0x000000ac, + 0x000200f8,0x000000ae,0x0004003b,0x00000007,0x0000025e,0x00000007,0x0004003b,0x0000000f, + 0x00000274,0x00000007,0x00050041,0x00000007,0x00000259,0x000000ac,0x00000198,0x0004003d, + 0x00000006,0x0000025a,0x00000259,0x0006000c,0x00000006,0x0000025b,0x00000001,0x00000004, + 0x0000025a,0x000500ba,0x000000a2,0x0000025d,0x0000025b,0x0000025c,0x000300f7,0x00000260, + 0x00000000,0x000400fa,0x0000025d,0x0000025f,0x00000263,0x000200f8,0x0000025f,0x00050041, + 0x00000007,0x00000261,0x000000ac,0x00000198,0x0004003d,0x00000006,0x00000262,0x00000261, + 0x0003003e,0x0000025e,0x00000262,0x000200f9,0x00000260,0x000200f8,0x00000263,0x0003003e, + 0x0000025e,0x00000150,0x000200f9,0x00000260,0x000200f8,0x00000260,0x0004003d,0x00000006, + 0x00000264,0x0000025e,0x00050041,0x00000007,0x00000265,0x000000ac,0x00000198,0x0003003e, + 0x00000265,0x00000264,0x00050041,0x00000007,0x00000266,0x000000ac,0x00000198,0x0004003d, + 0x00000006,0x00000267,0x00000266,0x00050041,0x0000000f,0x00000268,0x000000ac,0x00000192, + 0x0004003d,0x0000000e,0x00000269,0x00000268,0x00060050,0x0000000e,0x0000026a,0x00000267, + 0x00000267,0x00000267,0x00050088,0x0000000e,0x0000026b,0x00000269,0x0000026a,0x00050041, + 0x0000000f,0x0000026c,0x000000ac,0x00000192,0x0003003e,0x0000026c,0x0000026b,0x00050041, + 0x00000007,0x0000026d,0x000000ac,0x00000198,0x0004003d,0x00000006,0x0000026e,0x0000026d, + 0x00050041,0x0000000f,0x0000026f,0x000000ac,0x0000022f,0x0004003d,0x0000000e,0x00000270, + 0x0000026f,0x00060050,0x0000000e,0x00000271,0x0000026e,0x0000026e,0x0000026e,0x00050088, + 0x0000000e,0x00000272,0x00000270,0x00000271,0x00050041,0x0000000f,0x00000273,0x000000ac, + 0x0000022f,0x0003003e,0x00000273,0x00000272,0x00050041,0x0000000f,0x00000275,0x000000ac, + 0x0000022f,0x0004003d,0x0000000e,0x00000276,0x00000275,0x00050041,0x0000000f,0x00000277, + 0x000000ac,0x00000192,0x0004003d,0x0000000e,0x00000278,0x00000277,0x00050041,0x0000000f, + 0x00000279,0x000000ac,0x00000192,0x0004003d,0x0000000e,0x0000027a,0x00000279,0x00050085, + 0x0000000e,0x0000027b,0x00000278,0x0000027a,0x00050083,0x0000000e,0x0000027c,0x00000276, + 0x0000027b,0x0006000c,0x0000000e,0x0000027d,0x00000001,0x00000004,0x0000027c,0x0006000c, + 0x0000000e,0x0000027e,0x00000001,0x0000001f,0x0000027d,0x0003003e,0x00000274,0x0000027e, + 0x0004003d,0x0000000e,0x0000027f,0x00000274,0x00050041,0x0000000f,0x00000280,0x000000ac, + 0x0000022f,0x0003003e,0x00000280,0x0000027f,0x000100fd,0x00010038,0x00050036,0x0000000e, + 0x000000b1,0x00000000,0x000000af,0x00030037,0x0000000f,0x000000b0,0x000200f8,0x000000b2, + 0x0004003b,0x0000000f,0x00000281,0x00000007,0x00050041,0x00000007,0x00000282,0x000000b0, + 0x000001eb,0x0004003d,0x00000006,0x00000283,0x00000282,0x00050041,0x00000007,0x00000285, + 0x000000b0,0x00000284,0x0004003d,0x00000006,0x00000286,0x00000285,0x00050081,0x00000006, + 0x00000287,0x00000283,0x00000286,0x00050041,0x00000007,0x00000289,0x000000b0,0x00000288, + 0x0004003d,0x00000006,0x0000028a,0x00000289,0x00050083,0x00000006,0x0000028b,0x00000287, + 0x0000028a,0x00050041,0x00000007,0x0000028c,0x000000b0,0x000001eb,0x0004003d,0x00000006, + 0x0000028d,0x0000028c,0x00050041,0x00000007,0x0000028e,0x000000b0,0x00000288,0x0004003d, + 0x00000006,0x0000028f,0x0000028e,0x00050081,0x00000006,0x00000290,0x0000028d,0x0000028f, + 0x00050041,0x00000007,0x00000291,0x000000b0,0x000001eb,0x0004003d,0x00000006,0x00000292, + 0x00000291,0x00050041,0x00000007,0x00000293,0x000000b0,0x00000284,0x0004003d,0x00000006, + 0x00000294,0x00000293,0x00050083,0x00000006,0x00000295,0x00000292,0x00000294,0x00050041, + 0x00000007,0x00000296,0x000000b0,0x00000288,0x0004003d,0x00000006,0x00000297,0x00000296, + 0x00050083,0x00000006,0x00000298,0x00000295,0x00000297,0x00060050,0x0000000e,0x00000299, + 0x0000028b,0x00000290,0x00000298,0x0003003e,0x00000281,0x00000299,0x0004003d,0x0000000e, + 0x0000029a,0x00000281,0x000200fe,0x0000029a,0x00010038,0x00050036,0x0000000e,0x000000b4, + 0x00000000,0x000000af,0x00030037,0x0000000f,0x000000b3,0x000200f8,0x000000b5,0x0004003b, + 0x0000000f,0x0000029d,0x00000007,0x00050041,0x00000007,0x0000029f,0x000000b3,0x000001eb, + 0x0004003d,0x00000006,0x000002a0,0x0000029f,0x00050085,0x00000006,0x000002a1,0x0000029e, + 0x000002a0,0x00050041,0x00000007,0x000002a3,0x000000b3,0x00000284,0x0004003d,0x00000006, + 0x000002a4,0x000002a3,0x00050085,0x00000006,0x000002a5,0x000002a2,0x000002a4,0x00050081, + 0x00000006,0x000002a6,0x000002a1,0x000002a5,0x00050041,0x00000007,0x000002a7,0x000000b3, + 0x00000288,0x0004003d,0x00000006,0x000002a8,0x000002a7,0x00050085,0x00000006,0x000002a9, + 0x0000029e,0x000002a8,0x00050081,0x00000006,0x000002aa,0x000002a6,0x000002a9,0x00050041, + 0x00000007,0x000002ab,0x000000b3,0x000001eb,0x0004003d,0x00000006,0x000002ac,0x000002ab, + 0x00050085,0x00000006,0x000002ad,0x000002a2,0x000002ac,0x00050041,0x00000007,0x000002ae, + 0x000000b3,0x00000288,0x0004003d,0x00000006,0x000002af,0x000002ae,0x00050085,0x00000006, + 0x000002b0,0x000002a2,0x000002af,0x00050083,0x00000006,0x000002b1,0x000002ad,0x000002b0, + 0x00050041,0x00000007,0x000002b3,0x000000b3,0x000001eb,0x0004003d,0x00000006,0x000002b4, + 0x000002b3,0x00050085,0x00000006,0x000002b5,0x000002b2,0x000002b4,0x00050041,0x00000007, + 0x000002b6,0x000000b3,0x00000284,0x0004003d,0x00000006,0x000002b7,0x000002b6,0x00050085, + 0x00000006,0x000002b8,0x000002a2,0x000002b7,0x00050081,0x00000006,0x000002b9,0x000002b5, + 0x000002b8,0x00050041,0x00000007,0x000002ba,0x000000b3,0x00000288,0x0004003d,0x00000006, + 0x000002bb,0x000002ba,0x00050085,0x00000006,0x000002bc,0x0000029e,0x000002bb,0x00050083, + 0x00000006,0x000002bd,0x000002b9,0x000002bc,0x00060050,0x0000000e,0x000002be,0x000002aa, + 0x000002b1,0x000002bd,0x0003003e,0x0000029d,0x000002be,0x0004003d,0x0000000e,0x000002bf, + 0x0000029d,0x000200fe,0x000002bf,0x00010038,0x00050036,0x0000000e,0x000000b7,0x00000000, + 0x000000af,0x00030037,0x0000000f,0x000000b6,0x000200f8,0x000000b8,0x0004003b,0x00000007, + 0x000002c3,0x00000007,0x0004003b,0x00000007,0x000002c4,0x00000007,0x0004003b,0x00000007, + 0x000002c8,0x00000007,0x0004003b,0x00000007,0x000002cb,0x00000007,0x0004003b,0x00000007, + 0x000002cf,0x00000007,0x0004003b,0x00000007,0x000002d0,0x00000007,0x0004003d,0x0000000e, + 0x000002c2,0x000000b6,0x0003003e,0x000002c3,0x0000014f,0x00050041,0x00000007,0x000002c5, + 0x000000b6,0x000001eb,0x0004003d,0x00000006,0x000002c6,0x000002c5,0x0003003e,0x000002c4, + 0x000002c6,0x00060039,0x00000006,0x000002c7,0x0000003f,0x000002c3,0x000002c4,0x00050041, + 0x00000007,0x000002c9,0x000000b6,0x00000284,0x0004003d,0x00000006,0x000002ca,0x000002c9, + 0x0003003e,0x000002c8,0x000002ca,0x00050041,0x00000007,0x000002cc,0x000000b6,0x00000288, + 0x0004003d,0x00000006,0x000002cd,0x000002cc,0x0003003e,0x000002cb,0x000002cd,0x00060039, + 0x00000006,0x000002ce,0x0000003f,0x000002c8,0x000002cb,0x0003003e,0x000002cf,0x000002c7, + 0x0003003e,0x000002d0,0x000002ce,0x00060039,0x00000006,0x000002d1,0x0000003f,0x000002cf, + 0x000002d0,0x00050081,0x00000006,0x000002d2,0x000002d1,0x00000150,0x00060050,0x0000000e, + 0x000002d3,0x000002d2,0x000002d2,0x000002d2,0x00050088,0x0000000e,0x000002d4,0x000002c2, + 0x000002d3,0x000200fe,0x000002d4,0x00010038,0x00050036,0x0000000e,0x000000ba,0x00000000, + 0x000000af,0x00030037,0x0000000f,0x000000b9,0x000200f8,0x000000bb,0x0004003b,0x00000007, + 0x000002d9,0x00000007,0x0004003b,0x00000007,0x000002dc,0x00000007,0x0004003b,0x00000007, + 0x000002e0,0x00000007,0x0004003b,0x00000007,0x000002e3,0x00000007,0x0004003b,0x00000007, + 0x000002e6,0x00000007,0x0004003b,0x00000007,0x000002e7,0x00000007,0x0004003d,0x0000000e, + 0x000002d7,0x000000b9,0x00050041,0x00000007,0x000002da,0x000000b9,0x00000284,0x0004003d, + 0x00000006,0x000002db,0x000002da,0x0003003e,0x000002d9,0x000002db,0x00050041,0x00000007, + 0x000002dd,0x000000b9,0x00000288,0x0004003d,0x00000006,0x000002de,0x000002dd,0x0003003e, + 0x000002dc,0x000002de,0x00060039,0x00000006,0x000002df,0x0000003f,0x000002d9,0x000002dc, + 0x00050041,0x00000007,0x000002e1,0x000000b9,0x000001eb,0x0004003d,0x00000006,0x000002e2, + 0x000002e1,0x0003003e,0x000002e0,0x000002e2,0x0003003e,0x000002e3,0x000002df,0x00060039, + 0x00000006,0x000002e4,0x0000003f,0x000002e0,0x000002e3,0x00050083,0x00000006,0x000002e5, + 0x00000150,0x000002e4,0x0003003e,0x000002e6,0x000002d8,0x0003003e,0x000002e7,0x000002e5, + 0x00060039,0x00000006,0x000002e8,0x0000003f,0x000002e6,0x000002e7,0x00060050,0x0000000e, + 0x000002e9,0x000002e8,0x000002e8,0x000002e8,0x00050088,0x0000000e,0x000002ea,0x000002d7, + 0x000002e9,0x000200fe,0x000002ea,0x00010038,0x00050036,0x000000a2,0x000000be,0x00000000, + 0x000000bc,0x00030037,0x0000001b,0x000000bd,0x000200f8,0x000000bf,0x00050041,0x00000007, + 0x000002ed,0x000000bd,0x000001eb,0x0004003d,0x00000006,0x000002ee,0x000002ed,0x000500be, + 0x000000a2,0x000002ef,0x000002ee,0x0000014f,0x000300f7,0x000002f1,0x00000000,0x000400fa, + 0x000002ef,0x000002f0,0x000002f1,0x000200f8,0x000002f0,0x00050041,0x00000007,0x000002f2, + 0x000000bd,0x000001eb,0x0004003d,0x00000006,0x000002f3,0x000002f2,0x000500bc,0x000000a2, + 0x000002f4,0x000002f3,0x00000150,0x000200f9,0x000002f1,0x000200f8,0x000002f1,0x000700f5, + 0x000000a2,0x000002f5,0x000002ef,0x000000bf,0x000002f4,0x000002f0,0x000300f7,0x000002f7, + 0x00000000,0x000400fa,0x000002f5,0x000002f6,0x000002f7,0x000200f8,0x000002f6,0x00050041, + 0x00000007,0x000002f8,0x000000bd,0x00000284,0x0004003d,0x00000006,0x000002f9,0x000002f8, + 0x000500be,0x000000a2,0x000002fa,0x000002f9,0x0000014f,0x000300f7,0x000002fc,0x00000000, + 0x000400fa,0x000002fa,0x000002fb,0x000002fc,0x000200f8,0x000002fb,0x00050041,0x00000007, + 0x000002fd,0x000000bd,0x00000284,0x0004003d,0x00000006,0x000002fe,0x000002fd,0x000500bc, + 0x000000a2,0x000002ff,0x000002fe,0x00000150,0x000200f9,0x000002fc,0x000200f8,0x000002fc, + 0x000700f5,0x000000a2,0x00000300,0x000002fa,0x000002f6,0x000002ff,0x000002fb,0x000200f9, + 0x000002f7,0x000200f8,0x000002f7,0x000700f5,0x000000a2,0x00000301,0x000002f5,0x000002f1, + 0x00000300,0x000002fc,0x000200fe,0x00000301,0x00010038,0x00050036,0x00000055,0x000000c4, + 0x00000000,0x000000c0,0x00030037,0x0000006d,0x000000c1,0x00030037,0x0000006d,0x000000c2, + 0x00030037,0x0000006d,0x000000c3,0x000200f8,0x000000c5,0x0004003b,0x0000006d,0x00000304, + 0x00000007,0x0004003b,0x00000037,0x0000030b,0x00000007,0x0004003b,0x00000037,0x0000030e, + 0x00000007,0x0004003b,0x00000037,0x00000310,0x00000007,0x0004003b,0x00000037,0x00000311, + 0x00000007,0x0004003b,0x00000037,0x00000317,0x00000007,0x0004003b,0x00000037,0x0000031a, + 0x00000007,0x0004003b,0x00000037,0x0000031c,0x00000007,0x0004003b,0x00000037,0x0000031d, + 0x00000007,0x0004003d,0x00000055,0x00000305,0x000000c1,0x0004003d,0x00000055,0x00000306, + 0x000000c2,0x00050080,0x00000055,0x00000307,0x00000305,0x00000306,0x0003003e,0x00000304, + 0x00000307,0x00050041,0x00000037,0x00000308,0x000000c3,0x000001eb,0x0004003d,0x00000036, + 0x00000309,0x00000308,0x00050082,0x00000036,0x0000030a,0x00000309,0x0000022f,0x00050041, + 0x00000037,0x0000030c,0x00000304,0x000001eb,0x0004003d,0x00000036,0x0000030d,0x0000030c, + 0x0003003e,0x0000030b,0x0000030d,0x0003003e,0x0000030e,0x0000030a,0x00060039,0x00000036, + 0x0000030f,0x0000003b,0x0000030b,0x0000030e,0x0003003e,0x00000310,0x00000192,0x0003003e, + 0x00000311,0x0000030f,0x00060039,0x00000036,0x00000312,0x0000004f,0x00000310,0x00000311, + 0x00050041,0x00000037,0x00000313,0x00000304,0x000001eb,0x0003003e,0x00000313,0x00000312, + 0x00050041,0x00000037,0x00000314,0x000000c3,0x00000284,0x0004003d,0x00000036,0x00000315, + 0x00000314,0x00050082,0x00000036,0x00000316,0x00000315,0x0000022f,0x00050041,0x00000037, + 0x00000318,0x00000304,0x00000284,0x0004003d,0x00000036,0x00000319,0x00000318,0x0003003e, + 0x00000317,0x00000319,0x0003003e,0x0000031a,0x00000316,0x00060039,0x00000036,0x0000031b, + 0x0000003b,0x00000317,0x0000031a,0x0003003e,0x0000031c,0x00000192,0x0003003e,0x0000031d, + 0x0000031b,0x00060039,0x00000036,0x0000031e,0x0000004f,0x0000031c,0x0000031d,0x00050041, + 0x00000037,0x0000031f,0x00000304,0x00000284,0x0003003e,0x0000031f,0x0000031e,0x0004003d, + 0x00000055,0x00000320,0x00000304,0x000200fe,0x00000320,0x00010038,0x00050036,0x0000001a, + 0x000000ca,0x00000000,0x000000c6,0x00030037,0x0000001b,0x000000c7,0x00030037,0x0000006d, + 0x000000c8,0x00030037,0x0000006d,0x000000c9,0x000200f8,0x000000cb,0x0004003b,0x0000001b, + 0x00000323,0x00000007,0x0004003b,0x0000001b,0x00000328,0x00000007,0x0004003b,0x0000001b, + 0x0000032d,0x00000007,0x0004003b,0x0000001b,0x0000032f,0x00000007,0x0004003b,0x0000001b, + 0x00000331,0x00000007,0x0004003b,0x0000001b,0x00000332,0x00000007,0x0004003b,0x0000001b, + 0x00000334,0x00000007,0x0004003d,0x0000001a,0x00000324,0x000000c7,0x0004003d,0x00000055, + 0x00000325,0x000000c8,0x0004006f,0x0000001a,0x00000326,0x00000325,0x00050085,0x0000001a, + 0x00000327,0x00000324,0x00000326,0x0003003e,0x00000323,0x00000327,0x0004003d,0x00000055, + 0x0000032a,0x000000c8,0x0004006f,0x0000001a,0x0000032b,0x0000032a,0x00050083,0x0000001a, + 0x0000032c,0x0000032b,0x00000329,0x0004003d,0x0000001a,0x0000032e,0x00000323,0x0003003e, + 0x0000032d,0x0000032e,0x0003003e,0x0000032f,0x0000032c,0x00060039,0x0000001a,0x00000330, + 0x00000028,0x0000032d,0x0000032f,0x0003003e,0x00000331,0x00000329,0x0003003e,0x00000332, + 0x00000330,0x00060039,0x0000001a,0x00000333,0x00000043,0x00000331,0x00000332,0x0003003e, + 0x00000328,0x00000333,0x0004003d,0x0000001a,0x00000335,0x00000328,0x0004003d,0x00000055, + 0x00000336,0x000000c9,0x0004006f,0x0000001a,0x00000337,0x00000336,0x00050088,0x0000001a, + 0x00000338,0x00000335,0x00000337,0x0003003e,0x00000334,0x00000338,0x0004003d,0x0000001a, + 0x00000339,0x00000334,0x000200fe,0x00000339,0x00010038,0x00050036,0x000000a2,0x000000cf, + 0x00000000,0x000000cc,0x00030037,0x0000006d,0x000000cd,0x00030037,0x0000006d,0x000000ce, + 0x000200f8,0x000000d0,0x0004003d,0x00000055,0x0000033c,0x000000cd,0x0004007c,0x0000033d, + 0x0000033e,0x0000033c,0x0004003d,0x00000055,0x0000033f,0x000000ce,0x0004007c,0x0000033d, + 0x00000340,0x0000033f,0x000500b0,0x00000341,0x00000342,0x0000033e,0x00000340,0x0004009b, + 0x000000a2,0x00000343,0x00000342,0x000200fe,0x00000343,0x00010038,0x00050036,0x00000006, + 0x000000d2,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d1,0x000200f8,0x000000d3, + 0x0004003b,0x00000007,0x00000349,0x00000007,0x0004003d,0x00000006,0x00000346,0x000000d1, + 0x0006000c,0x00000006,0x00000347,0x00000001,0x00000004,0x00000346,0x000500b8,0x000000a2, + 0x00000348,0x00000347,0x000002d8,0x000300f7,0x0000034b,0x00000000,0x000400fa,0x00000348, + 0x0000034a,0x0000034c,0x000200f8,0x0000034a,0x0003003e,0x00000349,0x00000150,0x000200f9, + 0x0000034b,0x000200f8,0x0000034c,0x0004003d,0x00000006,0x0000034e,0x000000d1,0x00050085, + 0x00000006,0x0000034f,0x0000034d,0x0000034e,0x0006000c,0x00000006,0x00000350,0x00000001, + 0x0000000d,0x0000034f,0x0004003d,0x00000006,0x00000351,0x000000d1,0x00050085,0x00000006, + 0x00000352,0x0000034d,0x00000351,0x00050088,0x00000006,0x00000353,0x00000350,0x00000352, + 0x0004003d,0x00000006,0x00000355,0x000000d1,0x00050085,0x00000006,0x00000356,0x00000354, + 0x00000355,0x0006000c,0x00000006,0x00000357,0x00000001,0x0000000d,0x00000356,0x0004003d, + 0x00000006,0x00000358,0x000000d1,0x00050085,0x00000006,0x00000359,0x00000354,0x00000358, + 0x00050088,0x00000006,0x0000035a,0x00000357,0x00000359,0x00050085,0x00000006,0x0000035b, + 0x00000353,0x0000035a,0x0003003e,0x00000349,0x0000035b,0x000200f9,0x0000034b,0x000200f8, + 0x0000034b,0x0004003d,0x00000006,0x0000035c,0x00000349,0x000200fe,0x0000035c,0x00010038, + 0x00050036,0x00000006,0x000000d5,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d4, + 0x000200f8,0x000000d6,0x0004003b,0x00000007,0x00000362,0x00000007,0x0004003b,0x00000007, + 0x00000363,0x00000007,0x0004003b,0x00000007,0x00000365,0x00000007,0x0004003d,0x00000006, + 0x0000035f,0x000000d4,0x0006000c,0x00000006,0x00000360,0x00000001,0x00000004,0x0000035f, + 0x0003003e,0x00000362,0x00000360,0x0003003e,0x00000363,0x00000361,0x00060039,0x00000006, + 0x00000364,0x00000023,0x00000362,0x00000363,0x0003003e,0x000000d4,0x00000364,0x0004003d, + 0x00000006,0x00000366,0x000000d4,0x0003003e,0x00000365,0x00000366,0x00050039,0x00000006, + 0x00000367,0x000000d2,0x00000365,0x000200fe,0x00000367,0x00010038,0x00050036,0x00000006, + 0x000000d8,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d7,0x000200f8,0x000000d9, + 0x0004003b,0x00000007,0x0000036a,0x00000007,0x0004003b,0x00000007,0x0000036f,0x00000007, + 0x0004003d,0x00000006,0x0000036c,0x000000d7,0x00050085,0x00000006,0x0000036d,0x0000036b, + 0x0000036c,0x00050083,0x00000006,0x0000036e,0x0000036d,0x00000150,0x0003003e,0x0000036a, + 0x0000036e,0x0004003d,0x00000006,0x00000370,0x000000d7,0x00050085,0x00000006,0x00000371, + 0x0000029e,0x00000370,0x00050083,0x00000006,0x00000372,0x00000371,0x00000150,0x0003003e, + 0x0000036f,0x00000372,0x0004003d,0x00000006,0x00000374,0x0000036a,0x00050085,0x00000006, + 0x00000375,0x00000373,0x00000374,0x0004003d,0x00000006,0x00000376,0x0000036a,0x00050085, + 0x00000006,0x00000377,0x00000375,0x00000376,0x00050083,0x00000006,0x00000379,0x00000377, + 0x00000378,0x0004003d,0x00000006,0x0000037a,0x0000036f,0x0004003d,0x00000006,0x0000037b, + 0x0000036f,0x00050085,0x00000006,0x0000037c,0x0000037a,0x0000037b,0x00050085,0x00000006, + 0x0000037d,0x00000379,0x0000037c,0x000200fe,0x0000037d,0x00010038,0x00050036,0x00000006, + 0x000000db,0x00000000,0x00000016,0x00030037,0x00000007,0x000000da,0x000200f8,0x000000dc, + 0x0004003b,0x00000007,0x00000381,0x00000007,0x0004003b,0x00000007,0x00000383,0x00000007, + 0x0004003b,0x00000007,0x00000385,0x00000007,0x0004003d,0x00000006,0x00000382,0x000000da, + 0x0003003e,0x00000381,0x00000382,0x0003003e,0x00000383,0x00000380,0x00060039,0x00000006, + 0x00000384,0x00000023,0x00000381,0x00000383,0x0003003e,0x000000da,0x00000384,0x0004003d, + 0x00000006,0x00000386,0x000000da,0x0003003e,0x00000385,0x00000386,0x00050039,0x00000006, + 0x00000387,0x000000d8,0x00000385,0x000200fe,0x00000387,0x00010038,0x00050036,0x0000002f, + 0x000000e3,0x00000000,0x000000dd,0x00030037,0x00000030,0x000000de,0x00030037,0x00000030, + 0x000000df,0x00030037,0x00000030,0x000000e0,0x00030037,0x00000030,0x000000e1,0x00030037, + 0x00000007,0x000000e2,0x000200f8,0x000000e4,0x0004003b,0x00000007,0x0000038a,0x00000007, + 0x0004003b,0x00000007,0x0000038e,0x00000007,0x0004003b,0x00000007,0x00000390,0x00000007, + 0x0004003b,0x00000007,0x00000394,0x00000007,0x0004003b,0x00000007,0x00000396,0x00000007, + 0x0004003b,0x00000007,0x00000399,0x00000007,0x0004003b,0x00000007,0x0000039b,0x00000007, + 0x0004003b,0x00000007,0x0000039e,0x00000007,0x0004003d,0x00000006,0x0000038c,0x000000e2, + 0x00050083,0x00000006,0x0000038d,0x0000038b,0x0000038c,0x0003003e,0x0000038e,0x0000038d, + 0x00050039,0x00000006,0x0000038f,0x000000d5,0x0000038e,0x0003003e,0x0000038a,0x0000038f, + 0x0004003d,0x00000006,0x00000392,0x000000e2,0x00050083,0x00000006,0x00000393,0x00000391, + 0x00000392,0x0003003e,0x00000394,0x00000393,0x00050039,0x00000006,0x00000395,0x000000d5, + 0x00000394,0x0003003e,0x00000390,0x00000395,0x0004003d,0x00000006,0x00000397,0x000000e2, + 0x00050083,0x00000006,0x00000398,0x00000150,0x00000397,0x0003003e,0x00000399,0x00000398, + 0x00050039,0x00000006,0x0000039a,0x000000d5,0x00000399,0x0003003e,0x00000396,0x0000039a, + 0x0004003d,0x00000006,0x0000039c,0x000000e2,0x00050083,0x00000006,0x0000039d,0x00000361, + 0x0000039c,0x0003003e,0x0000039e,0x0000039d,0x00050039,0x00000006,0x0000039f,0x000000d5, + 0x0000039e,0x0003003e,0x0000039b,0x0000039f,0x0004003d,0x00000006,0x000003a0,0x0000038a, + 0x0004003d,0x0000002f,0x000003a1,0x000000de,0x0005008e,0x0000002f,0x000003a2,0x000003a1, + 0x000003a0,0x0004003d,0x00000006,0x000003a3,0x00000390,0x0004003d,0x0000002f,0x000003a4, + 0x000000df,0x0005008e,0x0000002f,0x000003a5,0x000003a4,0x000003a3,0x00050081,0x0000002f, + 0x000003a6,0x000003a2,0x000003a5,0x0004003d,0x00000006,0x000003a7,0x00000396,0x0004003d, + 0x0000002f,0x000003a8,0x000000e0,0x0005008e,0x0000002f,0x000003a9,0x000003a8,0x000003a7, + 0x00050081,0x0000002f,0x000003aa,0x000003a6,0x000003a9,0x0004003d,0x00000006,0x000003ab, + 0x0000039b,0x0004003d,0x0000002f,0x000003ac,0x000000e1,0x0005008e,0x0000002f,0x000003ad, + 0x000003ac,0x000003ab,0x00050081,0x0000002f,0x000003ae,0x000003aa,0x000003ad,0x0004003d, + 0x00000006,0x000003af,0x0000038a,0x0004003d,0x00000006,0x000003b0,0x00000390,0x00050081, + 0x00000006,0x000003b1,0x000003af,0x000003b0,0x0004003d,0x00000006,0x000003b2,0x00000396, + 0x00050081,0x00000006,0x000003b3,0x000003b1,0x000003b2,0x0004003d,0x00000006,0x000003b4, + 0x0000039b,0x00050081,0x00000006,0x000003b5,0x000003b3,0x000003b4,0x00070050,0x0000002f, + 0x000003b6,0x000003b5,0x000003b5,0x000003b5,0x000003b5,0x00050088,0x0000002f,0x000003b7, + 0x000003ae,0x000003b6,0x000200fe,0x000003b7,0x00010038,0x00050036,0x0000002f,0x000000ea, + 0x00000000,0x000000e7,0x00030037,0x000000e6,0x000000e8,0x00030037,0x0000001b,0x000000e9, + 0x000200f8,0x000000eb,0x0004003b,0x00000030,0x000003ba,0x00000007,0x0004003b,0x00000030, + 0x000003bb,0x00000007,0x0004003b,0x00000030,0x000003be,0x00000007,0x0004003b,0x00000030, + 0x000003c1,0x00000007,0x0004003b,0x00000030,0x000003c4,0x00000007,0x0004003b,0x00000007, + 0x000003c7,0x00000007,0x0004003b,0x00000030,0x000003cb,0x00000007,0x0004003b,0x00000030, + 0x000003ce,0x00000007,0x0004003b,0x00000030,0x000003d1,0x00000007,0x0004003b,0x00000030, + 0x000003d4,0x00000007,0x0004003b,0x00000030,0x000003d7,0x00000007,0x0004003b,0x00000007, + 0x000003da,0x00000007,0x0004003b,0x00000030,0x000003de,0x00000007,0x0004003b,0x00000030, + 0x000003e2,0x00000007,0x0004003b,0x00000030,0x000003e5,0x00000007,0x0004003b,0x00000030, + 0x000003e8,0x00000007,0x0004003b,0x00000030,0x000003eb,0x00000007,0x0004003b,0x00000007, + 0x000003ee,0x00000007,0x0004003b,0x00000030,0x000003f2,0x00000007,0x0004003b,0x00000030, + 0x000003f5,0x00000007,0x0004003b,0x00000030,0x000003f8,0x00000007,0x0004003b,0x00000030, + 0x000003fb,0x00000007,0x0004003b,0x00000030,0x000003fe,0x00000007,0x0004003b,0x00000007, + 0x00000401,0x00000007,0x0004003b,0x00000030,0x00000405,0x00000007,0x0004003b,0x00000030, + 0x00000406,0x00000007,0x0004003b,0x00000030,0x00000408,0x00000007,0x0004003b,0x00000030, + 0x0000040a,0x00000007,0x0004003b,0x00000030,0x0000040c,0x00000007,0x0004003b,0x00000007, + 0x0000040e,0x00000007,0x0004003b,0x00000414,0x00000415,0x00000007,0x0004003b,0x00000030, + 0x0000041f,0x00000007,0x0004003b,0x00000030,0x00000422,0x00000007,0x0004003b,0x00000037, + 0x00000425,0x00000007,0x0004003b,0x00000030,0x0000042e,0x00000007,0x0004003b,0x00000030, + 0x00000430,0x00000007,0x0004003b,0x00000030,0x00000435,0x00000007,0x0004003b,0x00000030, + 0x00000437,0x00000007,0x00050041,0x00000030,0x000003bc,0x000000e8,0x00000192,0x0004003d, + 0x0000002f,0x000003bd,0x000003bc,0x0003003e,0x000003bb,0x000003bd,0x00050041,0x00000030, + 0x000003bf,0x000000e8,0x0000022f,0x0004003d,0x0000002f,0x000003c0,0x000003bf,0x0003003e, + 0x000003be,0x000003c0,0x00050041,0x00000030,0x000003c2,0x000000e8,0x0000019d,0x0004003d, + 0x0000002f,0x000003c3,0x000003c2,0x0003003e,0x000003c1,0x000003c3,0x00050041,0x00000030, + 0x000003c5,0x000000e8,0x000001a2,0x0004003d,0x0000002f,0x000003c6,0x000003c5,0x0003003e, + 0x000003c4,0x000003c6,0x00050041,0x00000007,0x000003c8,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x000003c9,0x000003c8,0x0003003e,0x000003c7,0x000003c9,0x00090039,0x0000002f, + 0x000003ca,0x000000e3,0x000003bb,0x000003be,0x000003c1,0x000003c4,0x000003c7,0x0003003e, + 0x000003ba,0x000003ca,0x00050041,0x00000030,0x000003cf,0x000000e8,0x00000198,0x0004003d, + 0x0000002f,0x000003d0,0x000003cf,0x0003003e,0x000003ce,0x000003d0,0x00050041,0x00000030, + 0x000003d2,0x000000e8,0x000003cc,0x0004003d,0x0000002f,0x000003d3,0x000003d2,0x0003003e, + 0x000003d1,0x000003d3,0x00050041,0x00000030,0x000003d5,0x000000e8,0x000003cd,0x0004003d, + 0x0000002f,0x000003d6,0x000003d5,0x0003003e,0x000003d4,0x000003d6,0x00050041,0x00000030, + 0x000003d8,0x000000e8,0x000001a7,0x0004003d,0x0000002f,0x000003d9,0x000003d8,0x0003003e, + 0x000003d7,0x000003d9,0x00050041,0x00000007,0x000003db,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x000003dc,0x000003db,0x0003003e,0x000003da,0x000003dc,0x00090039,0x0000002f, + 0x000003dd,0x000000e3,0x000003ce,0x000003d1,0x000003d4,0x000003d7,0x000003da,0x0003003e, + 0x000003cb,0x000003dd,0x00050041,0x00000030,0x000003e3,0x000000e8,0x000003df,0x0004003d, + 0x0000002f,0x000003e4,0x000003e3,0x0003003e,0x000003e2,0x000003e4,0x00050041,0x00000030, + 0x000003e6,0x000000e8,0x000003e0,0x0004003d,0x0000002f,0x000003e7,0x000003e6,0x0003003e, + 0x000003e5,0x000003e7,0x00050041,0x00000030,0x000003e9,0x000000e8,0x000001ad,0x0004003d, + 0x0000002f,0x000003ea,0x000003e9,0x0003003e,0x000003e8,0x000003ea,0x00050041,0x00000030, + 0x000003ec,0x000000e8,0x000003e1,0x0004003d,0x0000002f,0x000003ed,0x000003ec,0x0003003e, + 0x000003eb,0x000003ed,0x00050041,0x00000007,0x000003ef,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x000003f0,0x000003ef,0x0003003e,0x000003ee,0x000003f0,0x00090039,0x0000002f, + 0x000003f1,0x000000e3,0x000003e2,0x000003e5,0x000003e8,0x000003eb,0x000003ee,0x0003003e, + 0x000003de,0x000003f1,0x00050041,0x00000030,0x000003f6,0x000000e8,0x000003f3,0x0004003d, + 0x0000002f,0x000003f7,0x000003f6,0x0003003e,0x000003f5,0x000003f7,0x00050041,0x00000030, + 0x000003f9,0x000000e8,0x000001b2,0x0004003d,0x0000002f,0x000003fa,0x000003f9,0x0003003e, + 0x000003f8,0x000003fa,0x00050041,0x00000030,0x000003fc,0x000000e8,0x000003f4,0x0004003d, + 0x0000002f,0x000003fd,0x000003fc,0x0003003e,0x000003fb,0x000003fd,0x00050041,0x00000030, + 0x000003ff,0x000000e8,0x000001b8,0x0004003d,0x0000002f,0x00000400,0x000003ff,0x0003003e, + 0x000003fe,0x00000400,0x00050041,0x00000007,0x00000402,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x00000403,0x00000402,0x0003003e,0x00000401,0x00000403,0x00090039,0x0000002f, + 0x00000404,0x000000e3,0x000003f5,0x000003f8,0x000003fb,0x000003fe,0x00000401,0x0003003e, + 0x000003f2,0x00000404,0x0004003d,0x0000002f,0x00000407,0x000003ba,0x0003003e,0x00000406, + 0x00000407,0x0004003d,0x0000002f,0x00000409,0x000003cb,0x0003003e,0x00000408,0x00000409, + 0x0004003d,0x0000002f,0x0000040b,0x000003de,0x0003003e,0x0000040a,0x0000040b,0x0004003d, + 0x0000002f,0x0000040d,0x000003f2,0x0003003e,0x0000040c,0x0000040d,0x00050041,0x00000007, + 0x0000040f,0x000000e9,0x00000284,0x0004003d,0x00000006,0x00000410,0x0000040f,0x0003003e, + 0x0000040e,0x00000410,0x00090039,0x0000002f,0x00000411,0x000000e3,0x00000406,0x00000408, + 0x0000040a,0x0000040c,0x0000040e,0x0003003e,0x00000405,0x00000411,0x00050041,0x00000030, + 0x00000416,0x000000e8,0x000003cc,0x0004003d,0x0000002f,0x00000417,0x00000416,0x00050041, + 0x00000030,0x00000418,0x000000e8,0x000003cd,0x0004003d,0x0000002f,0x00000419,0x00000418, + 0x00050041,0x00000030,0x0000041a,0x000000e8,0x000003e0,0x0004003d,0x0000002f,0x0000041b, + 0x0000041a,0x00050041,0x00000030,0x0000041c,0x000000e8,0x000001ad,0x0004003d,0x0000002f, + 0x0000041d,0x0000041c,0x00070050,0x00000413,0x0000041e,0x00000417,0x00000419,0x0000041b, + 0x0000041d,0x0003003e,0x00000415,0x0000041e,0x00050041,0x00000030,0x00000420,0x00000415, + 0x00000192,0x0004003d,0x0000002f,0x00000421,0x00000420,0x0003003e,0x0000041f,0x00000421, + 0x00050041,0x00000030,0x00000423,0x00000415,0x00000192,0x0004003d,0x0000002f,0x00000424, + 0x00000423,0x0003003e,0x00000422,0x00000424,0x0003003e,0x00000425,0x0000022f,0x000200f9, + 0x00000426,0x000200f8,0x00000426,0x000400f6,0x00000428,0x00000429,0x00000000,0x000200f9, + 0x0000042a,0x000200f8,0x0000042a,0x0004003d,0x00000036,0x0000042b,0x00000425,0x000500b1, + 0x000000a2,0x0000042c,0x0000042b,0x00000198,0x000400fa,0x0000042c,0x00000427,0x00000428, + 0x000200f8,0x00000427,0x0004003d,0x00000036,0x0000042d,0x00000425,0x0004003d,0x0000002f, + 0x0000042f,0x0000041f,0x0003003e,0x0000042e,0x0000042f,0x00050041,0x00000030,0x00000431, + 0x00000415,0x0000042d,0x0004003d,0x0000002f,0x00000432,0x00000431,0x0003003e,0x00000430, + 0x00000432,0x00060039,0x0000002f,0x00000433,0x00000034,0x0000042e,0x00000430,0x0003003e, + 0x0000041f,0x00000433,0x0004003d,0x00000036,0x00000434,0x00000425,0x0004003d,0x0000002f, + 0x00000436,0x00000422,0x0003003e,0x00000435,0x00000436,0x00050041,0x00000030,0x00000438, + 0x00000415,0x00000434,0x0004003d,0x0000002f,0x00000439,0x00000438,0x0003003e,0x00000437, + 0x00000439,0x00060039,0x0000002f,0x0000043a,0x0000004b,0x00000435,0x00000437,0x0003003e, + 0x00000422,0x0000043a,0x000200f9,0x00000429,0x000200f8,0x00000429,0x0004003d,0x00000036, + 0x0000043b,0x00000425,0x00050080,0x00000036,0x0000043c,0x0000043b,0x0000022f,0x0003003e, + 0x00000425,0x0000043c,0x000200f9,0x00000426,0x000200f8,0x00000428,0x0004003d,0x0000002f, + 0x0000043d,0x00000405,0x0004003d,0x0000002f,0x0000043e,0x0000041f,0x0004003d,0x0000002f, + 0x0000043f,0x00000422,0x0008000c,0x0000002f,0x00000440,0x00000001,0x0000002b,0x0000043d, + 0x0000043e,0x0000043f,0x0003003e,0x00000405,0x00000440,0x0004003d,0x0000002f,0x00000441, + 0x00000405,0x000200fe,0x00000441,0x00010038,0x00050036,0x00000055,0x000000ef,0x00000000, + 0x000000c0,0x00030037,0x0000006d,0x000000ec,0x00030037,0x0000006d,0x000000ed,0x00030037, + 0x0000006d,0x000000ee,0x000200f8,0x000000f0,0x0004003b,0x0000006d,0x00000444,0x00000007, + 0x0004003b,0x00000037,0x0000044b,0x00000007,0x0004003b,0x00000037,0x0000044e,0x00000007, + 0x0004003b,0x00000037,0x00000450,0x00000007,0x0004003b,0x00000037,0x00000451,0x00000007, + 0x0004003b,0x00000037,0x00000457,0x00000007,0x0004003b,0x00000037,0x0000045a,0x00000007, + 0x0004003b,0x00000037,0x0000045c,0x00000007,0x0004003b,0x00000037,0x0000045d,0x00000007, + 0x0004003d,0x00000055,0x00000445,0x000000ec,0x0004003d,0x00000055,0x00000446,0x000000ed, + 0x00050080,0x00000055,0x00000447,0x00000445,0x00000446,0x0003003e,0x00000444,0x00000447, + 0x00050041,0x00000037,0x00000448,0x000000ee,0x000001eb,0x0004003d,0x00000036,0x00000449, + 0x00000448,0x00050082,0x00000036,0x0000044a,0x00000449,0x0000019d,0x00050041,0x00000037, + 0x0000044c,0x00000444,0x000001eb,0x0004003d,0x00000036,0x0000044d,0x0000044c,0x0003003e, + 0x0000044b,0x0000044d,0x0003003e,0x0000044e,0x0000044a,0x00060039,0x00000036,0x0000044f, + 0x0000003b,0x0000044b,0x0000044e,0x0003003e,0x00000450,0x0000022f,0x0003003e,0x00000451, + 0x0000044f,0x00060039,0x00000036,0x00000452,0x0000004f,0x00000450,0x00000451,0x00050041, + 0x00000037,0x00000453,0x00000444,0x000001eb,0x0003003e,0x00000453,0x00000452,0x00050041, + 0x00000037,0x00000454,0x000000ee,0x00000284,0x0004003d,0x00000036,0x00000455,0x00000454, + 0x00050082,0x00000036,0x00000456,0x00000455,0x0000019d,0x00050041,0x00000037,0x00000458, + 0x00000444,0x00000284,0x0004003d,0x00000036,0x00000459,0x00000458,0x0003003e,0x00000457, + 0x00000459,0x0003003e,0x0000045a,0x00000456,0x00060039,0x00000036,0x0000045b,0x0000003b, + 0x00000457,0x0000045a,0x0003003e,0x0000045c,0x0000022f,0x0003003e,0x0000045d,0x0000045b, + 0x00060039,0x00000036,0x0000045e,0x0000004f,0x0000045c,0x0000045d,0x00050041,0x00000037, + 0x0000045f,0x00000444,0x00000284,0x0003003e,0x0000045f,0x0000045e,0x0004003d,0x00000055, + 0x00000460,0x00000444,0x000200fe,0x00000460,0x00010038,0x00050036,0x00000002,0x000000f4, + 0x00000000,0x000000f1,0x00030037,0x0000009b,0x000000f2,0x00030037,0x0000000f,0x000000f3, + 0x000200f8,0x000000f5,0x0004003d,0x0000000e,0x00000463,0x000000f3,0x00050041,0x0000000f, + 0x00000464,0x000000f2,0x0000019d,0x0004003d,0x0000000e,0x00000465,0x00000464,0x00050041, + 0x0000000f,0x00000466,0x000000f2,0x000001a2,0x0004003d,0x0000000e,0x00000467,0x00000466, + 0x0008000c,0x0000000e,0x00000468,0x00000001,0x0000002b,0x00000463,0x00000465,0x00000467, + 0x0003003e,0x000000f3,0x00000468,0x000100fd,0x00010038,0x00050036,0x00000006,0x000000f9, + 0x00000000,0x000000f6,0x00030037,0x0000001b,0x000000f7,0x00030037,0x00000007,0x000000f8, + 0x000200f8,0x000000fa,0x0004003b,0x0000001b,0x00000469,0x00000007,0x0004003b,0x00000007, + 0x0000046e,0x00000007,0x0004003b,0x00000007,0x00000472,0x00000007,0x0004003d,0x0000001a, + 0x0000046a,0x000000f7,0x0004003d,0x00000006,0x0000046b,0x000000f8,0x00050050,0x0000001a, + 0x0000046c,0x0000046b,0x0000046b,0x00050085,0x0000001a,0x0000046d,0x0000046a,0x0000046c, + 0x0003003e,0x00000469,0x0000046d,0x0004003d,0x0000001a,0x0000046f,0x00000469,0x0004003d, + 0x0000001a,0x00000470,0x00000469,0x00050094,0x00000006,0x00000471,0x0000046f,0x00000470, + 0x0003003e,0x00000472,0x00000471,0x00050039,0x00000006,0x00000473,0x000000db,0x00000472, + 0x0003003e,0x0000046e,0x00000473,0x0004003d,0x00000006,0x00000474,0x0000046e,0x000200fe, + 0x00000474,0x00010038,0x00050036,0x00000006,0x00000101,0x00000000,0x000000fe,0x00030037, + 0x000000fb,0x000000ff,0x00030037,0x000000fd,0x00000100,0x000200f8,0x00000102,0x0004003b, + 0x00000007,0x00000477,0x00000007,0x0004003b,0x00000007,0x00000480,0x00000007,0x0004003b, + 0x00000007,0x00000481,0x00000007,0x00040039,0x0000001a,0x00000478,0x00000062,0x00050050, + 0x0000001a,0x00000479,0x00000150,0x00000150,0x00050088,0x0000001a,0x0000047a,0x00000479, + 0x00000478,0x00050050,0x0000001a,0x0000047b,0x00000150,0x00000150,0x00050083,0x0000001a, + 0x0000047c,0x0000047a,0x0000047b,0x00050051,0x00000006,0x0000047d,0x0000047c,0x00000000, + 0x00050081,0x00000006,0x0000047e,0x00000150,0x0000047d,0x0003003e,0x00000477,0x0000047e, + 0x0003003e,0x00000480,0x0000047f,0x0004003d,0x00000006,0x00000482,0x00000477,0x0003003e, + 0x00000481,0x00000482,0x00060039,0x00000006,0x00000483,0x00000023,0x00000480,0x00000481, + 0x000200fe,0x00000483,0x00010038,0x00050036,0x0000000e,0x00000104,0x00000000,0x0000006e, + 0x00030037,0x0000006d,0x00000103,0x000200f8,0x00000105,0x0004003b,0x0000000f,0x00000486, + 0x00000007,0x0004003b,0x0000006d,0x00000488,0x00000007,0x0004003b,0x0000000f,0x0000048b, + 0x00000007,0x0004003b,0x0000000f,0x0000048c,0x00000007,0x0004003b,0x0000000f,0x00000490, + 0x00000007,0x0004003b,0x0000000f,0x00000491,0x00000007,0x0004003d,0x00000055,0x00000489, + 0x00000103,0x0003003e,0x00000488,0x00000489,0x00050039,0x0000000e,0x0000048a,0x00000070, + 0x00000488,0x0003003e,0x0000048b,0x00000487,0x0003003e,0x0000048c,0x0000048a,0x00060039, + 0x0000000e,0x0000048d,0x00000047,0x0000048b,0x0000048c,0x00040039,0x00000006,0x0000048e, + 0x00000091,0x0005008e,0x0000000e,0x0000048f,0x0000048d,0x0000048e,0x0003003e,0x00000486, + 0x0000048f,0x0004003d,0x0000000e,0x00000492,0x00000486,0x0003003e,0x00000491,0x00000492, + 0x00050039,0x0000000e,0x00000493,0x000000b4,0x00000491,0x0003003e,0x00000490,0x00000493, + 0x0004003d,0x0000000e,0x00000494,0x00000490,0x000200fe,0x00000494,0x00010038,0x00050036, + 0x00000002,0x00000109,0x00000000,0x00000106,0x00030037,0x000000fb,0x00000107,0x00030037, + 0x000000fd,0x00000108,0x000200f8,0x0000010a,0x0004003b,0x0000001b,0x00000497,0x00000007, + 0x0004003b,0x0000001b,0x0000049b,0x00000007,0x0004003b,0x0000006d,0x0000049f,0x00000007, + 0x0004003b,0x0000001b,0x000004a3,0x00000007,0x0004003b,0x0000001b,0x000004a9,0x00000007, + 0x0004003b,0x0000006d,0x000004ad,0x00000007,0x0004003b,0x000000a3,0x000004be,0x00000007, + 0x0004003b,0x000000a3,0x000004c4,0x00000007,0x0004003b,0x0000001b,0x000004ca,0x00000007, + 0x0004003b,0x000000a3,0x000004cd,0x00000007,0x0004003b,0x00000037,0x000004d0,0x00000007, + 0x0004003b,0x00000037,0x000004d1,0x00000007,0x0004003b,0x00000037,0x000004d9,0x00000007, + 0x0004003b,0x0000006d,0x000004e1,0x00000007,0x0004003b,0x00000037,0x000004e3,0x00000007, + 0x0004003b,0x00000037,0x000004ec,0x00000007,0x0004003b,0x0000006d,0x000004f5,0x00000007, + 0x0004003b,0x0000006d,0x000004fb,0x00000007,0x0004003b,0x0000006d,0x000004fd,0x00000007, + 0x0004003b,0x0000006d,0x000004ff,0x00000007,0x0004003b,0x0000006d,0x00000500,0x00000007, + 0x0004003b,0x00000504,0x00000505,0x00000007,0x0004003b,0x0000006d,0x00000507,0x00000007, + 0x0004003b,0x0000000f,0x0000051d,0x00000007,0x0004003b,0x0000000f,0x00000521,0x00000007, + 0x0004003b,0x0000000f,0x00000523,0x00000007,0x0004003b,0x00000007,0x00000528,0x00000007, + 0x0004003b,0x000000fd,0x00000529,0x00000007,0x0004003b,0x00000007,0x0000052d,0x00000007, + 0x0004003b,0x00000007,0x00000532,0x00000007,0x0004003b,0x00000007,0x00000533,0x00000007, + 0x0004003b,0x00000007,0x00000535,0x00000007,0x0004003b,0x00000007,0x0000053f,0x00000007, + 0x0004003b,0x00000007,0x00000541,0x00000007,0x0004003b,0x00000007,0x00000542,0x00000007, + 0x0004003b,0x00000007,0x00000544,0x00000007,0x0004003b,0x00000007,0x00000545,0x00000007, + 0x0004003b,0x00000007,0x00000547,0x00000007,0x0004003b,0x00000007,0x00000548,0x00000007, + 0x0004003b,0x00000007,0x0000054a,0x00000007,0x0004003b,0x00000007,0x0000054c,0x00000007, + 0x0004003b,0x00000037,0x0000054f,0x00000007,0x0004003b,0x00000037,0x00000557,0x00000007, + 0x0004003b,0x0000006d,0x0000055f,0x00000007,0x0004003b,0x00000037,0x00000561,0x00000007, + 0x0004003b,0x00000037,0x0000056a,0x00000007,0x0004003b,0x0000001b,0x00000573,0x00000007, + 0x0004003b,0x0000001b,0x00000578,0x00000007,0x0004003b,0x0000006d,0x0000057c,0x00000007, + 0x0004003b,0x00000007,0x00000582,0x00000007,0x0004003b,0x0000006d,0x00000585,0x00000007, + 0x0004003b,0x0000006d,0x00000586,0x00000007,0x0004003b,0x00000007,0x0000058d,0x00000007, + 0x0004003b,0x0000001b,0x0000058f,0x00000007,0x0004003b,0x00000007,0x00000591,0x00000007, + 0x0004003b,0x00000007,0x000005a3,0x00000007,0x0004003b,0x00000007,0x000005a7,0x00000007, + 0x0004003b,0x000000a3,0x000005ae,0x00000007,0x0004003b,0x000000a3,0x000005b8,0x00000007, + 0x0004003b,0x0000009b,0x000005ba,0x00000007,0x0004003b,0x0000009b,0x000005c6,0x00000007, + 0x0004003b,0x0000009b,0x000005e5,0x00000007,0x0004003b,0x0000000f,0x000005e8,0x00000007, + 0x0004003b,0x0000000f,0x000005f1,0x00000007,0x0004003b,0x0000000f,0x000005f5,0x00000007, + 0x0004003b,0x0000000f,0x000005f7,0x00000007,0x00050051,0x00000055,0x00000498,0x00000107, + 0x00000000,0x0004006f,0x0000001a,0x00000499,0x00000498,0x00050081,0x0000001a,0x0000049a, + 0x00000499,0x00000329,0x0003003e,0x00000497,0x0000049a,0x0004003d,0x0000001a,0x0000049c, + 0x00000497,0x00040039,0x0000001a,0x0000049d,0x00000062,0x00050085,0x0000001a,0x0000049e, + 0x0000049c,0x0000049d,0x0003003e,0x0000049b,0x0000049e,0x0004003d,0x0000001a,0x000004a0, + 0x0000049b,0x0006000c,0x0000001a,0x000004a1,0x00000001,0x00000008,0x000004a0,0x0004006e, + 0x00000055,0x000004a2,0x000004a1,0x0003003e,0x0000049f,0x000004a2,0x0004003d,0x00000055, + 0x000004a4,0x0000049f,0x0004006f,0x0000001a,0x000004a5,0x000004a4,0x00050081,0x0000001a, + 0x000004a6,0x000004a5,0x00000329,0x00040039,0x0000001a,0x000004a7,0x00000060,0x00050083, + 0x0000001a,0x000004a8,0x000004a6,0x000004a7,0x0003003e,0x000004a3,0x000004a8,0x0004003d, + 0x0000001a,0x000004aa,0x000004a3,0x0004003d,0x0000001a,0x000004ab,0x0000049b,0x00050083, + 0x0000001a,0x000004ac,0x000004aa,0x000004ab,0x0003003e,0x000004a9,0x000004ac,0x00050041, + 0x00000007,0x000004ae,0x000004a3,0x000001eb,0x0004003d,0x00000006,0x000004af,0x000004ae, + 0x00050041,0x00000007,0x000004b0,0x0000049b,0x000001eb,0x0004003d,0x00000006,0x000004b1, + 0x000004b0,0x000500ba,0x000000a2,0x000004b2,0x000004af,0x000004b1,0x000600a9,0x00000036, + 0x000004b5,0x000004b2,0x000004b3,0x000004b4,0x00050041,0x00000037,0x000004b6,0x000004ad, + 0x000001eb,0x0003003e,0x000004b6,0x000004b5,0x00050041,0x00000007,0x000004b7,0x000004a3, + 0x00000284,0x0004003d,0x00000006,0x000004b8,0x000004b7,0x00050041,0x00000007,0x000004b9, + 0x0000049b,0x00000284,0x0004003d,0x00000006,0x000004ba,0x000004b9,0x000500ba,0x000000a2, + 0x000004bb,0x000004b8,0x000004ba,0x000600a9,0x00000036,0x000004bc,0x000004bb,0x000004b3, + 0x000004b4,0x00050041,0x00000037,0x000004bd,0x000004ad,0x00000284,0x0003003e,0x000004bd, + 0x000004bc,0x00050041,0x00000007,0x000004bf,0x000004a3,0x00000284,0x0004003d,0x00000006, + 0x000004c0,0x000004bf,0x00050041,0x00000007,0x000004c1,0x0000049b,0x00000284,0x0004003d, + 0x00000006,0x000004c2,0x000004c1,0x000500ba,0x000000a2,0x000004c3,0x000004c0,0x000004c2, + 0x0003003e,0x000004be,0x000004c3,0x00050041,0x00000007,0x000004c5,0x000004a3,0x000001eb, + 0x0004003d,0x00000006,0x000004c6,0x000004c5,0x00050041,0x00000007,0x000004c7,0x0000049b, + 0x000001eb,0x0004003d,0x00000006,0x000004c8,0x000004c7,0x000500ba,0x000000a2,0x000004c9, + 0x000004c6,0x000004c8,0x0003003e,0x000004c4,0x000004c9,0x0004003d,0x00000055,0x000004cb, + 0x000004ad,0x0004006f,0x0000001a,0x000004cc,0x000004cb,0x0003003e,0x000004ca,0x000004cc, + 0x00050051,0x00000006,0x000004ce,0x00000107,0x0000000a,0x000500b4,0x000000a2,0x000004cf, + 0x000004ce,0x0000014f,0x0003003e,0x000004cd,0x000004cf,0x0003003e,0x000004d0,0x00000192, + 0x0003003e,0x000004d1,0x00000192,0x000200f9,0x000004d2,0x000200f8,0x000004d2,0x000400f6, + 0x000004d4,0x000004d5,0x00000000,0x000200f9,0x000004d6,0x000200f8,0x000004d6,0x0004003d, + 0x00000036,0x000004d7,0x000004d1,0x000500b1,0x000000a2,0x000004d8,0x000004d7,0x000001a2, + 0x000400fa,0x000004d8,0x000004d3,0x000004d4,0x000200f8,0x000004d3,0x0003003e,0x000004d9, + 0x00000192,0x000200f9,0x000004da,0x000200f8,0x000004da,0x000400f6,0x000004dc,0x000004dd, + 0x00000000,0x000200f9,0x000004de,0x000200f8,0x000004de,0x0004003d,0x00000036,0x000004df, + 0x000004d9,0x000500b1,0x000000a2,0x000004e0,0x000004df,0x000001a2,0x000400fa,0x000004e0, + 0x000004db,0x000004dc,0x000200f8,0x000004db,0x0004003d,0x000000a2,0x000004e2,0x000004c4, + 0x000300f7,0x000004e5,0x00000000,0x000400fa,0x000004e2,0x000004e4,0x000004e8,0x000200f8, + 0x000004e4,0x0004003d,0x00000036,0x000004e6,0x000004d9,0x00050082,0x00000036,0x000004e7, + 0x000001a2,0x000004e6,0x0003003e,0x000004e3,0x000004e7,0x000200f9,0x000004e5,0x000200f8, + 0x000004e8,0x0004003d,0x00000036,0x000004e9,0x000004d9,0x0003003e,0x000004e3,0x000004e9, + 0x000200f9,0x000004e5,0x000200f8,0x000004e5,0x0004003d,0x00000036,0x000004ea,0x000004e3, + 0x0004003d,0x000000a2,0x000004eb,0x000004be,0x000300f7,0x000004ee,0x00000000,0x000400fa, + 0x000004eb,0x000004ed,0x000004f1,0x000200f8,0x000004ed,0x0004003d,0x00000036,0x000004ef, + 0x000004d1,0x00050082,0x00000036,0x000004f0,0x000001a2,0x000004ef,0x0003003e,0x000004ec, + 0x000004f0,0x000200f9,0x000004ee,0x000200f8,0x000004f1,0x0004003d,0x00000036,0x000004f2, + 0x000004d1,0x0003003e,0x000004ec,0x000004f2,0x000200f9,0x000004ee,0x000200f8,0x000004ee, + 0x0004003d,0x00000036,0x000004f3,0x000004ec,0x00050050,0x00000055,0x000004f4,0x000004ea, + 0x000004f3,0x0003003e,0x000004e1,0x000004f4,0x0004003d,0x00000055,0x000004f6,0x0000049f, + 0x0004003d,0x00000055,0x000004f7,0x000004ad,0x00050080,0x00000055,0x000004f8,0x000004f6, + 0x000004f7,0x0004003d,0x00000055,0x000004f9,0x000004e1,0x00050080,0x00000055,0x000004fa, + 0x000004f8,0x000004f9,0x0003003e,0x000004f5,0x000004fa,0x00040039,0x00000055,0x000004fc, + 0x00000057,0x0004003d,0x00000055,0x000004fe,0x000004f5,0x0003003e,0x000004fd,0x000004fe, + 0x0003003e,0x000004ff,0x0000020f,0x0003003e,0x00000500,0x000004fc,0x00070039,0x00000055, + 0x00000501,0x000000c4,0x000004fd,0x000004ff,0x00000500,0x0003003e,0x000004fb,0x00000501, + 0x0004003d,0x00000036,0x00000506,0x000004d0,0x0004003d,0x00000055,0x00000508,0x000004fb, + 0x0003003e,0x00000507,0x00000508,0x00050039,0x0000000e,0x00000509,0x00000104,0x00000507, + 0x00050041,0x0000000f,0x0000050a,0x00000505,0x00000506,0x0003003e,0x0000050a,0x00000509, + 0x0004003d,0x00000036,0x0000050b,0x000004d0,0x00050080,0x00000036,0x0000050c,0x0000050b, + 0x0000022f,0x0003003e,0x000004d0,0x0000050c,0x000200f9,0x000004dd,0x000200f8,0x000004dd, + 0x0004003d,0x00000036,0x0000050d,0x000004d9,0x00050080,0x00000036,0x0000050e,0x0000050d, + 0x0000022f,0x0003003e,0x000004d9,0x0000050e,0x000200f9,0x000004da,0x000200f8,0x000004dc, + 0x000200f9,0x000004d5,0x000200f8,0x000004d5,0x0004003d,0x00000036,0x0000050f,0x000004d1, + 0x00050080,0x00000036,0x00000510,0x0000050f,0x0000022f,0x0003003e,0x000004d1,0x00000510, + 0x000200f9,0x000004d2,0x000200f8,0x000004d4,0x0004003d,0x000000a2,0x00000511,0x000004cd, + 0x000300f7,0x00000513,0x00000000,0x000400fa,0x00000511,0x00000512,0x00000513,0x000200f8, + 0x00000512,0x0003003e,0x000004d0,0x00000192,0x000200f9,0x00000514,0x000200f8,0x00000514, + 0x000400f6,0x00000516,0x00000517,0x00000000,0x000200f9,0x00000518,0x000200f8,0x00000518, + 0x0004003d,0x00000036,0x00000519,0x000004d0,0x000500b1,0x000000a2,0x0000051a,0x00000519, + 0x000003e0,0x000400fa,0x0000051a,0x00000515,0x00000516,0x000200f8,0x00000515,0x0004003d, + 0x00000036,0x0000051b,0x000004d0,0x0004003d,0x00000036,0x0000051c,0x000004d0,0x00050041, + 0x0000000f,0x0000051e,0x00000505,0x0000051c,0x0004003d,0x0000000e,0x0000051f,0x0000051e, + 0x0003003e,0x0000051d,0x0000051f,0x00050039,0x0000000e,0x00000520,0x000000b1,0x0000051d, + 0x0003003e,0x00000521,0x00000520,0x00050039,0x0000000e,0x00000522,0x000000b7,0x00000521, + 0x0003003e,0x00000523,0x00000522,0x00050039,0x0000000e,0x00000524,0x000000b4,0x00000523, + 0x00050041,0x0000000f,0x00000525,0x00000505,0x0000051b,0x0003003e,0x00000525,0x00000524, + 0x000200f9,0x00000517,0x000200f8,0x00000517,0x0004003d,0x00000036,0x00000526,0x000004d0, + 0x00050080,0x00000036,0x00000527,0x00000526,0x0000022f,0x0003003e,0x000004d0,0x00000527, + 0x000200f9,0x00000514,0x000200f8,0x00000516,0x000200f9,0x00000513,0x000200f8,0x00000513, + 0x0004003d,0x000000fc,0x0000052a,0x00000108,0x0003003e,0x00000529,0x0000052a,0x00060039, + 0x00000006,0x0000052b,0x00000101,0x00000107,0x00000529,0x0004003d,0x000000fc,0x0000052c, + 0x00000529,0x0003003e,0x00000108,0x0000052c,0x0003003e,0x00000528,0x0000052b,0x0004003d, + 0x00000006,0x0000052e,0x00000528,0x00050081,0x00000006,0x0000052f,0x00000150,0x0000052e, + 0x00050085,0x00000006,0x00000531,0x0000052f,0x00000530,0x0003003e,0x00000532,0x00000150, + 0x0003003e,0x00000533,0x00000531,0x00060039,0x00000006,0x00000534,0x0000003f,0x00000532, + 0x00000533,0x0003003e,0x0000052d,0x00000534,0x00050051,0x00000006,0x00000536,0x00000107, + 0x00000007,0x00050085,0x00000006,0x00000537,0x00000536,0x000002a2,0x00050083,0x00000006, + 0x00000538,0x00000150,0x00000537,0x00050051,0x00000006,0x00000539,0x00000107,0x00000009, + 0x00050083,0x00000006,0x0000053a,0x00000150,0x00000539,0x00050041,0x00000007,0x0000053b, + 0x00000108,0x00000198,0x0004003d,0x00000006,0x0000053c,0x0000053b,0x00050085,0x00000006, + 0x0000053e,0x0000053c,0x0000053d,0x0003003e,0x0000053f,0x0000053e,0x00050039,0x00000006, + 0x00000540,0x00000018,0x0000053f,0x0003003e,0x00000541,0x0000053a,0x0003003e,0x00000542, + 0x00000540,0x00060039,0x00000006,0x00000543,0x00000023,0x00000541,0x00000542,0x0003003e, + 0x00000544,0x00000538,0x0003003e,0x00000545,0x00000543,0x00060039,0x00000006,0x00000546, + 0x00000023,0x00000544,0x00000545,0x0003003e,0x00000535,0x00000546,0x0004003d,0x00000006, + 0x00000549,0x0000052d,0x0003003e,0x00000548,0x00000549,0x0004003d,0x00000006,0x0000054b, + 0x00000528,0x0003003e,0x0000054a,0x0000054b,0x0004003d,0x00000006,0x0000054d,0x00000535, + 0x0003003e,0x0000054c,0x0000054d,0x00070039,0x00000006,0x0000054e,0x0000000c,0x00000548, + 0x0000054a,0x0000054c,0x0003003e,0x00000547,0x0000054e,0x0003003e,0x000004d0,0x00000192, + 0x0003003e,0x0000054f,0x00000192,0x000200f9,0x00000550,0x000200f8,0x00000550,0x000400f6, + 0x00000552,0x00000553,0x00000000,0x000200f9,0x00000554,0x000200f8,0x00000554,0x0004003d, + 0x00000036,0x00000555,0x0000054f,0x000500b1,0x000000a2,0x00000556,0x00000555,0x000001a2, + 0x000400fa,0x00000556,0x00000551,0x00000552,0x000200f8,0x00000551,0x0003003e,0x00000557, + 0x00000192,0x000200f9,0x00000558,0x000200f8,0x00000558,0x000400f6,0x0000055a,0x0000055b, + 0x00000000,0x000200f9,0x0000055c,0x000200f8,0x0000055c,0x0004003d,0x00000036,0x0000055d, + 0x00000557,0x000500b1,0x000000a2,0x0000055e,0x0000055d,0x000001a2,0x000400fa,0x0000055e, + 0x00000559,0x0000055a,0x000200f8,0x00000559,0x0004003d,0x000000a2,0x00000560,0x000004c4, + 0x000300f7,0x00000563,0x00000000,0x000400fa,0x00000560,0x00000562,0x00000566,0x000200f8, + 0x00000562,0x0004003d,0x00000036,0x00000564,0x00000557,0x00050082,0x00000036,0x00000565, + 0x000001a2,0x00000564,0x0003003e,0x00000561,0x00000565,0x000200f9,0x00000563,0x000200f8, + 0x00000566,0x0004003d,0x00000036,0x00000567,0x00000557,0x0003003e,0x00000561,0x00000567, + 0x000200f9,0x00000563,0x000200f8,0x00000563,0x0004003d,0x00000036,0x00000568,0x00000561, + 0x0004003d,0x000000a2,0x00000569,0x000004be,0x000300f7,0x0000056c,0x00000000,0x000400fa, + 0x00000569,0x0000056b,0x0000056f,0x000200f8,0x0000056b,0x0004003d,0x00000036,0x0000056d, + 0x0000054f,0x00050082,0x00000036,0x0000056e,0x000001a2,0x0000056d,0x0003003e,0x0000056a, + 0x0000056e,0x000200f9,0x0000056c,0x000200f8,0x0000056f,0x0004003d,0x00000036,0x00000570, + 0x0000054f,0x0003003e,0x0000056a,0x00000570,0x000200f9,0x0000056c,0x000200f8,0x0000056c, + 0x0004003d,0x00000036,0x00000571,0x0000056a,0x00050050,0x00000055,0x00000572,0x00000568, + 0x00000571,0x0003003e,0x0000055f,0x00000572,0x0004003d,0x0000001a,0x00000574,0x000004ca, + 0x0004003d,0x00000055,0x00000575,0x0000055f,0x0004006f,0x0000001a,0x00000576,0x00000575, + 0x00050081,0x0000001a,0x00000577,0x00000574,0x00000576,0x0003003e,0x00000573,0x00000577, + 0x0004003d,0x0000001a,0x00000579,0x000004a9,0x0004003d,0x0000001a,0x0000057a,0x00000573, + 0x00050081,0x0000001a,0x0000057b,0x00000579,0x0000057a,0x0003003e,0x00000578,0x0000057b, + 0x0004003d,0x00000055,0x0000057d,0x0000049f,0x0004003d,0x00000055,0x0000057e,0x000004ad, + 0x00050080,0x00000055,0x0000057f,0x0000057d,0x0000057e,0x0004003d,0x00000055,0x00000580, + 0x0000055f,0x00050080,0x00000055,0x00000581,0x0000057f,0x00000580,0x0003003e,0x0000057c, + 0x00000581,0x0004003d,0x00000055,0x00000583,0x0000057c,0x00040039,0x00000055,0x00000584, + 0x00000057,0x0003003e,0x00000585,0x00000583,0x0003003e,0x00000586,0x00000584,0x00060039, + 0x000000a2,0x00000587,0x000000cf,0x00000585,0x00000586,0x000600a9,0x00000006,0x00000588, + 0x00000587,0x00000150,0x0000014f,0x0003003e,0x00000582,0x00000588,0x0004003d,0x000000a2, + 0x00000589,0x000004cd,0x000400a8,0x000000a2,0x0000058a,0x00000589,0x000300f7,0x0000058c, + 0x00000000,0x000400fa,0x0000058a,0x0000058b,0x0000058c,0x000200f8,0x0000058b,0x0004003d, + 0x00000006,0x0000058e,0x00000582,0x0004003d,0x0000001a,0x00000590,0x00000578,0x0003003e, + 0x0000058f,0x00000590,0x0004003d,0x00000006,0x00000592,0x00000547,0x0003003e,0x00000591, + 0x00000592,0x00060039,0x00000006,0x00000593,0x000000f9,0x0000058f,0x00000591,0x00050085, + 0x00000006,0x00000594,0x0000058e,0x00000593,0x0003003e,0x0000058d,0x00000594,0x0004003d, + 0x00000036,0x00000595,0x000004d0,0x00050041,0x0000000f,0x00000596,0x00000505,0x00000595, + 0x0004003d,0x0000000e,0x00000597,0x00000596,0x0004003d,0x00000006,0x00000598,0x0000058d, + 0x0005008e,0x0000000e,0x00000599,0x00000597,0x00000598,0x00050041,0x0000000f,0x0000059a, + 0x00000108,0x0000022f,0x0004003d,0x0000000e,0x0000059b,0x0000059a,0x00050081,0x0000000e, + 0x0000059c,0x0000059b,0x00000599,0x00050041,0x0000000f,0x0000059d,0x00000108,0x0000022f, + 0x0003003e,0x0000059d,0x0000059c,0x0004003d,0x00000006,0x0000059e,0x0000058d,0x00050041, + 0x00000007,0x0000059f,0x00000108,0x0000019d,0x0004003d,0x00000006,0x000005a0,0x0000059f, + 0x00050081,0x00000006,0x000005a1,0x000005a0,0x0000059e,0x00050041,0x00000007,0x000005a2, + 0x00000108,0x0000019d,0x0003003e,0x000005a2,0x000005a1,0x000200f9,0x0000058c,0x000200f8, + 0x0000058c,0x0004003d,0x0000001a,0x000005a4,0x00000578,0x0004003d,0x0000001a,0x000005a5, + 0x00000578,0x00050094,0x00000006,0x000005a6,0x000005a4,0x000005a5,0x0003003e,0x000005a3, + 0x000005a6,0x0004003d,0x00000006,0x000005a9,0x000005a3,0x00050085,0x00000006,0x000005aa, + 0x000005a8,0x000005a9,0x0006000c,0x00000006,0x000005ab,0x00000001,0x0000001b,0x000005aa, + 0x0004003d,0x00000006,0x000005ac,0x00000582,0x00050085,0x00000006,0x000005ad,0x000005ab, + 0x000005ac,0x0003003e,0x000005a7,0x000005ad,0x0004003d,0x00000036,0x000005af,0x0000054f, + 0x000500aa,0x000000a2,0x000005b0,0x000005af,0x00000192,0x0004003d,0x00000036,0x000005b1, + 0x00000557,0x000500aa,0x000000a2,0x000005b2,0x000005b1,0x00000192,0x000500a7,0x000000a2, + 0x000005b3,0x000005b0,0x000005b2,0x0003003e,0x000005ae,0x000005b3,0x0004003d,0x00000036, + 0x000005b4,0x000004d0,0x00050041,0x0000000f,0x000005b5,0x00000505,0x000005b4,0x0004003d, + 0x0000000e,0x000005b6,0x000005b5,0x0004003d,0x00000006,0x000005b7,0x000005a7,0x0004003d, + 0x000000a2,0x000005b9,0x000005ae,0x0003003e,0x000005b8,0x000005b9,0x00050041,0x0000009b, + 0x000005bb,0x00000108,0x00000192,0x0004003d,0x0000009a,0x000005bc,0x000005bb,0x0003003e, + 0x000005ba,0x000005bc,0x00080039,0x00000002,0x000005bd,0x000000a9,0x000005b8,0x000005ba, + 0x000005b6,0x000005b7,0x0004003d,0x0000009a,0x000005be,0x000005ba,0x00050041,0x0000009b, + 0x000005bf,0x00000108,0x00000192,0x0003003e,0x000005bf,0x000005be,0x0004003d,0x00000036, + 0x000005c0,0x000004d0,0x00050080,0x00000036,0x000005c1,0x000005c0,0x0000022f,0x0003003e, + 0x000004d0,0x000005c1,0x000200f9,0x0000055b,0x000200f8,0x0000055b,0x0004003d,0x00000036, + 0x000005c2,0x00000557,0x00050080,0x00000036,0x000005c3,0x000005c2,0x0000022f,0x0003003e, + 0x00000557,0x000005c3,0x000200f9,0x00000558,0x000200f8,0x0000055a,0x000200f9,0x00000553, + 0x000200f8,0x00000553,0x0004003d,0x00000036,0x000005c4,0x0000054f,0x00050080,0x00000036, + 0x000005c5,0x000005c4,0x0000022f,0x0003003e,0x0000054f,0x000005c5,0x000200f9,0x00000550, + 0x000200f8,0x00000552,0x00050041,0x0000009b,0x000005c7,0x00000108,0x00000192,0x0004003d, + 0x0000009a,0x000005c8,0x000005c7,0x0003003e,0x000005c6,0x000005c8,0x00050039,0x00000002, + 0x000005c9,0x000000ad,0x000005c6,0x0004003d,0x0000009a,0x000005ca,0x000005c6,0x00050041, + 0x0000009b,0x000005cb,0x00000108,0x00000192,0x0003003e,0x000005cb,0x000005ca,0x00050041, + 0x00000007,0x000005cc,0x00000108,0x0000019d,0x0004003d,0x00000006,0x000005cd,0x000005cc, + 0x000500ba,0x000000a2,0x000005ce,0x000005cd,0x000002d8,0x000600a9,0x00000006,0x000005cf, + 0x000005ce,0x00000150,0x0000014f,0x00050041,0x00000007,0x000005d0,0x00000108,0x0000019d, + 0x0004003d,0x00000006,0x000005d1,0x000005d0,0x00050085,0x00000006,0x000005d2,0x000005d1, + 0x000005cf,0x00050041,0x00000007,0x000005d3,0x00000108,0x0000019d,0x0003003e,0x000005d3, + 0x000005d2,0x00050041,0x00000007,0x000005d4,0x00000108,0x0000019d,0x0004003d,0x00000006, + 0x000005d5,0x000005d4,0x000500ba,0x000000a2,0x000005d6,0x000005d5,0x000002d8,0x000300f7, + 0x000005d8,0x00000000,0x000400fa,0x000005d6,0x000005d7,0x000005d8,0x000200f8,0x000005d7, + 0x00050041,0x0000000f,0x000005d9,0x00000108,0x0000022f,0x0004003d,0x0000000e,0x000005da, + 0x000005d9,0x00050041,0x00000007,0x000005db,0x00000108,0x0000019d,0x0004003d,0x00000006, + 0x000005dc,0x000005db,0x00060050,0x0000000e,0x000005dd,0x000005dc,0x000005dc,0x000005dc, + 0x00050088,0x0000000e,0x000005de,0x000005da,0x000005dd,0x00050041,0x0000000f,0x000005df, + 0x00000108,0x0000022f,0x0003003e,0x000005df,0x000005de,0x00050041,0x00000007,0x000005e1, + 0x00000108,0x0000019d,0x0004003d,0x00000006,0x000005e2,0x000005e1,0x00050085,0x00000006, + 0x000005e3,0x000005e2,0x000005e0,0x00050041,0x00000007,0x000005e4,0x00000108,0x0000019d, + 0x0003003e,0x000005e4,0x000005e3,0x00050041,0x0000009b,0x000005e6,0x00000108,0x00000192, + 0x0004003d,0x0000009a,0x000005e7,0x000005e6,0x0003003e,0x000005e5,0x000005e7,0x00050041, + 0x0000000f,0x000005e9,0x00000108,0x0000022f,0x0004003d,0x0000000e,0x000005ea,0x000005e9, + 0x0003003e,0x000005e8,0x000005ea,0x00060039,0x00000002,0x000005eb,0x000000f4,0x000005e5, + 0x000005e8,0x0004003d,0x0000000e,0x000005ec,0x000005e8,0x00050041,0x0000000f,0x000005ed, + 0x00000108,0x0000022f,0x0003003e,0x000005ed,0x000005ec,0x000200f9,0x000005d8,0x000200f8, + 0x000005d8,0x0004003d,0x000000a2,0x000005ee,0x000004cd,0x000300f7,0x000005f0,0x00000000, + 0x000400fa,0x000005ee,0x000005ef,0x000005f0,0x000200f8,0x000005ef,0x00060041,0x0000000f, + 0x000005f2,0x00000108,0x00000192,0x00000192,0x0004003d,0x0000000e,0x000005f3,0x000005f2, + 0x0003003e,0x000005f1,0x000005f3,0x00050039,0x0000000e,0x000005f4,0x000000b1,0x000005f1, + 0x0003003e,0x000005f5,0x000005f4,0x00050039,0x0000000e,0x000005f6,0x000000ba,0x000005f5, + 0x0003003e,0x000005f7,0x000005f6,0x00050039,0x0000000e,0x000005f8,0x000000b4,0x000005f7, + 0x00050041,0x0000000f,0x000005f9,0x00000108,0x0000022f,0x0003003e,0x000005f9,0x000005f8, + 0x00050041,0x00000007,0x000005fa,0x00000108,0x0000019d,0x0003003e,0x000005fa,0x00000150, + 0x00050041,0x00000007,0x000005fb,0x00000108,0x00000198,0x0003003e,0x000005fb,0x0000014f, + 0x000200f9,0x000005f0,0x000200f8,0x000005f0,0x000100fd,0x00010038,0x00050036,0x0000002f, + 0x0000010c,0x00000000,0x00000072,0x00030037,0x0000006d,0x0000010b,0x000200f8,0x0000010d, + 0x0004003b,0x0000006d,0x000005fc,0x00000007,0x0004003d,0x00000055,0x000005fd,0x0000010b, + 0x0003003e,0x000005fc,0x000005fd,0x00050039,0x0000002f,0x000005fe,0x00000074,0x000005fc, + 0x000200fe,0x000005fe,0x00010038,0x00050036,0x000000e5,0x00000111,0x00000000,0x0000010e, + 0x00030037,0x0000006d,0x0000010f,0x00030037,0x0000006d,0x00000110,0x000200f8,0x00000112, + 0x0004003b,0x000000e6,0x00000601,0x00000007,0x0004003b,0x0000006d,0x00000603,0x00000007, + 0x0004003b,0x0000006d,0x00000605,0x00000007,0x0004003b,0x0000006d,0x00000606,0x00000007, + 0x0004003b,0x0000006d,0x00000609,0x00000007,0x0004003b,0x0000006d,0x0000060d,0x00000007, + 0x0004003b,0x0000006d,0x0000060f,0x00000007,0x0004003b,0x0000006d,0x00000610,0x00000007, + 0x0004003b,0x0000006d,0x00000613,0x00000007,0x0004003b,0x0000006d,0x00000617,0x00000007, + 0x0004003b,0x0000006d,0x00000619,0x00000007,0x0004003b,0x0000006d,0x0000061a,0x00000007, + 0x0004003b,0x0000006d,0x0000061d,0x00000007,0x0004003b,0x0000006d,0x00000621,0x00000007, + 0x0004003b,0x0000006d,0x00000623,0x00000007,0x0004003b,0x0000006d,0x00000624,0x00000007, + 0x0004003b,0x0000006d,0x00000627,0x00000007,0x0004003b,0x0000006d,0x0000062b,0x00000007, + 0x0004003b,0x0000006d,0x0000062d,0x00000007,0x0004003b,0x0000006d,0x0000062e,0x00000007, + 0x0004003b,0x0000006d,0x00000631,0x00000007,0x0004003b,0x0000006d,0x00000634,0x00000007, + 0x0004003b,0x0000006d,0x00000636,0x00000007,0x0004003b,0x0000006d,0x00000637,0x00000007, + 0x0004003b,0x0000006d,0x0000063a,0x00000007,0x0004003b,0x0000006d,0x0000063e,0x00000007, + 0x0004003b,0x0000006d,0x00000640,0x00000007,0x0004003b,0x0000006d,0x00000641,0x00000007, + 0x0004003b,0x0000006d,0x00000644,0x00000007,0x0004003b,0x0000006d,0x00000648,0x00000007, + 0x0004003b,0x0000006d,0x0000064a,0x00000007,0x0004003b,0x0000006d,0x0000064b,0x00000007, + 0x0004003b,0x0000006d,0x0000064e,0x00000007,0x0004003b,0x0000006d,0x00000652,0x00000007, + 0x0004003b,0x0000006d,0x00000654,0x00000007,0x0004003b,0x0000006d,0x00000655,0x00000007, + 0x0004003b,0x0000006d,0x00000658,0x00000007,0x0004003b,0x0000006d,0x0000065c,0x00000007, + 0x0004003b,0x0000006d,0x0000065e,0x00000007,0x0004003b,0x0000006d,0x0000065f,0x00000007, + 0x0004003b,0x0000006d,0x00000662,0x00000007,0x0004003b,0x0000006d,0x00000666,0x00000007, + 0x0004003b,0x0000006d,0x00000668,0x00000007,0x0004003b,0x0000006d,0x00000669,0x00000007, + 0x0004003b,0x0000006d,0x0000066c,0x00000007,0x0004003b,0x0000006d,0x00000670,0x00000007, + 0x0004003b,0x0000006d,0x00000672,0x00000007,0x0004003b,0x0000006d,0x00000673,0x00000007, + 0x0004003b,0x0000006d,0x00000676,0x00000007,0x0004003b,0x0000006d,0x0000067a,0x00000007, + 0x0004003b,0x0000006d,0x0000067c,0x00000007,0x0004003b,0x0000006d,0x0000067d,0x00000007, + 0x0004003b,0x0000006d,0x00000680,0x00000007,0x0004003b,0x0000006d,0x00000684,0x00000007, + 0x0004003b,0x0000006d,0x00000686,0x00000007,0x0004003b,0x0000006d,0x00000687,0x00000007, + 0x0004003b,0x0000006d,0x0000068a,0x00000007,0x0004003b,0x0000006d,0x0000068e,0x00000007, + 0x0004003b,0x0000006d,0x00000690,0x00000007,0x0004003b,0x0000006d,0x00000691,0x00000007, + 0x0004003b,0x0000006d,0x00000694,0x00000007,0x0004003b,0x0000006d,0x00000698,0x00000007, + 0x0004003b,0x0000006d,0x0000069a,0x00000007,0x0004003b,0x0000006d,0x0000069b,0x00000007, + 0x0004003b,0x0000006d,0x0000069e,0x00000007,0x0004003d,0x00000055,0x00000604,0x0000010f, + 0x0003003e,0x00000603,0x00000604,0x0003003e,0x00000605,0x00000602,0x0004003d,0x00000055, + 0x00000607,0x00000110,0x0003003e,0x00000606,0x00000607,0x00070039,0x00000055,0x00000608, + 0x000000ef,0x00000603,0x00000605,0x00000606,0x0003003e,0x00000609,0x00000608,0x00050039, + 0x0000002f,0x0000060a,0x0000010c,0x00000609,0x00050041,0x00000030,0x0000060b,0x00000601, + 0x00000192,0x0003003e,0x0000060b,0x0000060a,0x0004003d,0x00000055,0x0000060e,0x0000010f, + 0x0003003e,0x0000060d,0x0000060e,0x0003003e,0x0000060f,0x0000060c,0x0004003d,0x00000055, + 0x00000611,0x00000110,0x0003003e,0x00000610,0x00000611,0x00070039,0x00000055,0x00000612, + 0x000000ef,0x0000060d,0x0000060f,0x00000610,0x0003003e,0x00000613,0x00000612,0x00050039, + 0x0000002f,0x00000614,0x0000010c,0x00000613,0x00050041,0x00000030,0x00000615,0x00000601, + 0x0000022f,0x0003003e,0x00000615,0x00000614,0x0004003d,0x00000055,0x00000618,0x0000010f, + 0x0003003e,0x00000617,0x00000618,0x0003003e,0x00000619,0x00000616,0x0004003d,0x00000055, + 0x0000061b,0x00000110,0x0003003e,0x0000061a,0x0000061b,0x00070039,0x00000055,0x0000061c, + 0x000000ef,0x00000617,0x00000619,0x0000061a,0x0003003e,0x0000061d,0x0000061c,0x00050039, + 0x0000002f,0x0000061e,0x0000010c,0x0000061d,0x00050041,0x00000030,0x0000061f,0x00000601, + 0x0000019d,0x0003003e,0x0000061f,0x0000061e,0x0004003d,0x00000055,0x00000622,0x0000010f, + 0x0003003e,0x00000621,0x00000622,0x0003003e,0x00000623,0x00000620,0x0004003d,0x00000055, + 0x00000625,0x00000110,0x0003003e,0x00000624,0x00000625,0x00070039,0x00000055,0x00000626, + 0x000000ef,0x00000621,0x00000623,0x00000624,0x0003003e,0x00000627,0x00000626,0x00050039, + 0x0000002f,0x00000628,0x0000010c,0x00000627,0x00050041,0x00000030,0x00000629,0x00000601, + 0x000001a2,0x0003003e,0x00000629,0x00000628,0x0004003d,0x00000055,0x0000062c,0x0000010f, + 0x0003003e,0x0000062b,0x0000062c,0x0003003e,0x0000062d,0x0000062a,0x0004003d,0x00000055, + 0x0000062f,0x00000110,0x0003003e,0x0000062e,0x0000062f,0x00070039,0x00000055,0x00000630, + 0x000000ef,0x0000062b,0x0000062d,0x0000062e,0x0003003e,0x00000631,0x00000630,0x00050039, + 0x0000002f,0x00000632,0x0000010c,0x00000631,0x00050041,0x00000030,0x00000633,0x00000601, + 0x00000198,0x0003003e,0x00000633,0x00000632,0x0004003d,0x00000055,0x00000635,0x0000010f, + 0x0003003e,0x00000634,0x00000635,0x0003003e,0x00000636,0x0000020f,0x0004003d,0x00000055, + 0x00000638,0x00000110,0x0003003e,0x00000637,0x00000638,0x00070039,0x00000055,0x00000639, + 0x000000ef,0x00000634,0x00000636,0x00000637,0x0003003e,0x0000063a,0x00000639,0x00050039, + 0x0000002f,0x0000063b,0x0000010c,0x0000063a,0x00050041,0x00000030,0x0000063c,0x00000601, + 0x000003cc,0x0003003e,0x0000063c,0x0000063b,0x0004003d,0x00000055,0x0000063f,0x0000010f, + 0x0003003e,0x0000063e,0x0000063f,0x0003003e,0x00000640,0x0000063d,0x0004003d,0x00000055, + 0x00000642,0x00000110,0x0003003e,0x00000641,0x00000642,0x00070039,0x00000055,0x00000643, + 0x000000ef,0x0000063e,0x00000640,0x00000641,0x0003003e,0x00000644,0x00000643,0x00050039, + 0x0000002f,0x00000645,0x0000010c,0x00000644,0x00050041,0x00000030,0x00000646,0x00000601, + 0x000003cd,0x0003003e,0x00000646,0x00000645,0x0004003d,0x00000055,0x00000649,0x0000010f, + 0x0003003e,0x00000648,0x00000649,0x0003003e,0x0000064a,0x00000647,0x0004003d,0x00000055, + 0x0000064c,0x00000110,0x0003003e,0x0000064b,0x0000064c,0x00070039,0x00000055,0x0000064d, + 0x000000ef,0x00000648,0x0000064a,0x0000064b,0x0003003e,0x0000064e,0x0000064d,0x00050039, + 0x0000002f,0x0000064f,0x0000010c,0x0000064e,0x00050041,0x00000030,0x00000650,0x00000601, + 0x000001a7,0x0003003e,0x00000650,0x0000064f,0x0004003d,0x00000055,0x00000653,0x0000010f, + 0x0003003e,0x00000652,0x00000653,0x0003003e,0x00000654,0x00000651,0x0004003d,0x00000055, + 0x00000656,0x00000110,0x0003003e,0x00000655,0x00000656,0x00070039,0x00000055,0x00000657, + 0x000000ef,0x00000652,0x00000654,0x00000655,0x0003003e,0x00000658,0x00000657,0x00050039, + 0x0000002f,0x00000659,0x0000010c,0x00000658,0x00050041,0x00000030,0x0000065a,0x00000601, + 0x000003df,0x0003003e,0x0000065a,0x00000659,0x0004003d,0x00000055,0x0000065d,0x0000010f, + 0x0003003e,0x0000065c,0x0000065d,0x0003003e,0x0000065e,0x0000065b,0x0004003d,0x00000055, + 0x00000660,0x00000110,0x0003003e,0x0000065f,0x00000660,0x00070039,0x00000055,0x00000661, + 0x000000ef,0x0000065c,0x0000065e,0x0000065f,0x0003003e,0x00000662,0x00000661,0x00050039, + 0x0000002f,0x00000663,0x0000010c,0x00000662,0x00050041,0x00000030,0x00000664,0x00000601, + 0x000003e0,0x0003003e,0x00000664,0x00000663,0x0004003d,0x00000055,0x00000667,0x0000010f, + 0x0003003e,0x00000666,0x00000667,0x0003003e,0x00000668,0x00000665,0x0004003d,0x00000055, + 0x0000066a,0x00000110,0x0003003e,0x00000669,0x0000066a,0x00070039,0x00000055,0x0000066b, + 0x000000ef,0x00000666,0x00000668,0x00000669,0x0003003e,0x0000066c,0x0000066b,0x00050039, + 0x0000002f,0x0000066d,0x0000010c,0x0000066c,0x00050041,0x00000030,0x0000066e,0x00000601, + 0x000001ad,0x0003003e,0x0000066e,0x0000066d,0x0004003d,0x00000055,0x00000671,0x0000010f, + 0x0003003e,0x00000670,0x00000671,0x0003003e,0x00000672,0x0000066f,0x0004003d,0x00000055, + 0x00000674,0x00000110,0x0003003e,0x00000673,0x00000674,0x00070039,0x00000055,0x00000675, + 0x000000ef,0x00000670,0x00000672,0x00000673,0x0003003e,0x00000676,0x00000675,0x00050039, + 0x0000002f,0x00000677,0x0000010c,0x00000676,0x00050041,0x00000030,0x00000678,0x00000601, + 0x000003e1,0x0003003e,0x00000678,0x00000677,0x0004003d,0x00000055,0x0000067b,0x0000010f, + 0x0003003e,0x0000067a,0x0000067b,0x0003003e,0x0000067c,0x00000679,0x0004003d,0x00000055, + 0x0000067e,0x00000110,0x0003003e,0x0000067d,0x0000067e,0x00070039,0x00000055,0x0000067f, + 0x000000ef,0x0000067a,0x0000067c,0x0000067d,0x0003003e,0x00000680,0x0000067f,0x00050039, + 0x0000002f,0x00000681,0x0000010c,0x00000680,0x00050041,0x00000030,0x00000682,0x00000601, + 0x000003f3,0x0003003e,0x00000682,0x00000681,0x0004003d,0x00000055,0x00000685,0x0000010f, + 0x0003003e,0x00000684,0x00000685,0x0003003e,0x00000686,0x00000683,0x0004003d,0x00000055, + 0x00000688,0x00000110,0x0003003e,0x00000687,0x00000688,0x00070039,0x00000055,0x00000689, + 0x000000ef,0x00000684,0x00000686,0x00000687,0x0003003e,0x0000068a,0x00000689,0x00050039, + 0x0000002f,0x0000068b,0x0000010c,0x0000068a,0x00050041,0x00000030,0x0000068c,0x00000601, + 0x000001b2,0x0003003e,0x0000068c,0x0000068b,0x0004003d,0x00000055,0x0000068f,0x0000010f, + 0x0003003e,0x0000068e,0x0000068f,0x0003003e,0x00000690,0x0000068d,0x0004003d,0x00000055, + 0x00000692,0x00000110,0x0003003e,0x00000691,0x00000692,0x00070039,0x00000055,0x00000693, + 0x000000ef,0x0000068e,0x00000690,0x00000691,0x0003003e,0x00000694,0x00000693,0x00050039, + 0x0000002f,0x00000695,0x0000010c,0x00000694,0x00050041,0x00000030,0x00000696,0x00000601, + 0x000003f4,0x0003003e,0x00000696,0x00000695,0x0004003d,0x00000055,0x00000699,0x0000010f, + 0x0003003e,0x00000698,0x00000699,0x0003003e,0x0000069a,0x00000697,0x0004003d,0x00000055, + 0x0000069c,0x00000110,0x0003003e,0x0000069b,0x0000069c,0x00070039,0x00000055,0x0000069d, + 0x000000ef,0x00000698,0x0000069a,0x0000069b,0x0003003e,0x0000069e,0x0000069d,0x00050039, + 0x0000002f,0x0000069f,0x0000010c,0x0000069e,0x00050041,0x00000030,0x000006a0,0x00000601, + 0x000001b8,0x0003003e,0x000006a0,0x0000069f,0x0004003d,0x000000e5,0x000006a1,0x00000601, + 0x000200fe,0x000006a1,0x00010038,0x00050036,0x0000002f,0x00000116,0x00000000,0x00000113, + 0x00030037,0x0000001b,0x00000114,0x00030037,0x0000006d,0x00000115,0x000200f8,0x00000117, + 0x0004003b,0x0000001b,0x000006a4,0x00000007,0x0004003b,0x0000001b,0x000006aa,0x00000007, + 0x0004003b,0x0000001b,0x000006ab,0x00000007,0x0004003b,0x00000007,0x000006b2,0x00000007, + 0x0004003b,0x00000007,0x000006b3,0x00000007,0x0004003b,0x00000007,0x000006b7,0x00000007, + 0x0004003b,0x00000007,0x000006b8,0x00000007,0x0004003b,0x00000007,0x000006bf,0x00000007, + 0x0004003b,0x00000007,0x000006c0,0x00000007,0x0004003b,0x00000007,0x000006c4,0x00000007, + 0x0004003b,0x00000007,0x000006c5,0x00000007,0x0004003b,0x0000006d,0x000006c8,0x00000007, + 0x0004003b,0x00000030,0x000006cc,0x00000007,0x0004003b,0x0000006d,0x000006cd,0x00000007, + 0x0004003b,0x0000006d,0x000006cf,0x00000007,0x0004003b,0x000000e6,0x000006d2,0x00000007, + 0x0004003b,0x0000001b,0x000006d3,0x00000007,0x0004003d,0x0000001a,0x000006a5,0x00000114, + 0x0004003d,0x00000055,0x000006a6,0x00000115,0x0004006f,0x0000001a,0x000006a7,0x000006a6, + 0x00050085,0x0000001a,0x000006a8,0x000006a5,0x000006a7,0x00050083,0x0000001a,0x000006a9, + 0x000006a8,0x00000329,0x0003003e,0x000006a4,0x000006a9,0x0004003d,0x0000001a,0x000006ac, + 0x000006a4,0x0003003e,0x000006ab,0x000006ac,0x00050039,0x0000001a,0x000006ad,0x0000001e, + 0x000006ab,0x0003003e,0x000006aa,0x000006ad,0x00050041,0x00000037,0x000006ae,0x00000115, + 0x000001eb,0x0004003d,0x00000036,0x000006af,0x000006ae,0x00050082,0x00000036,0x000006b0, + 0x000006af,0x0000022f,0x0004006f,0x00000006,0x000006b1,0x000006b0,0x0003003e,0x000006b2, + 0x000006b1,0x00050041,0x00000007,0x000006b4,0x000006a4,0x000001eb,0x0004003d,0x00000006, + 0x000006b5,0x000006b4,0x0003003e,0x000006b3,0x000006b5,0x00060039,0x00000006,0x000006b6, + 0x00000023,0x000006b2,0x000006b3,0x0003003e,0x000006b7,0x0000014f,0x0003003e,0x000006b8, + 0x000006b6,0x00060039,0x00000006,0x000006b9,0x0000003f,0x000006b7,0x000006b8,0x00050041, + 0x00000007,0x000006ba,0x000006a4,0x000001eb,0x0003003e,0x000006ba,0x000006b9,0x00050041, + 0x00000037,0x000006bb,0x00000115,0x00000284,0x0004003d,0x00000036,0x000006bc,0x000006bb, + 0x00050082,0x00000036,0x000006bd,0x000006bc,0x0000022f,0x0004006f,0x00000006,0x000006be, + 0x000006bd,0x0003003e,0x000006bf,0x000006be,0x00050041,0x00000007,0x000006c1,0x000006a4, + 0x00000284,0x0004003d,0x00000006,0x000006c2,0x000006c1,0x0003003e,0x000006c0,0x000006c2, + 0x00060039,0x00000006,0x000006c3,0x00000023,0x000006bf,0x000006c0,0x0003003e,0x000006c4, + 0x0000014f,0x0003003e,0x000006c5,0x000006c3,0x00060039,0x00000006,0x000006c6,0x0000003f, + 0x000006c4,0x000006c5,0x00050041,0x00000007,0x000006c7,0x000006a4,0x00000284,0x0003003e, + 0x000006c7,0x000006c6,0x0004003d,0x0000001a,0x000006c9,0x000006a4,0x0006000c,0x0000001a, + 0x000006ca,0x00000001,0x00000008,0x000006c9,0x0004006e,0x00000055,0x000006cb,0x000006ca, + 0x0003003e,0x000006c8,0x000006cb,0x0004003d,0x00000055,0x000006ce,0x000006c8,0x0003003e, + 0x000006cd,0x000006ce,0x0004003d,0x00000055,0x000006d0,0x00000115,0x0003003e,0x000006cf, + 0x000006d0,0x00060039,0x000000e5,0x000006d1,0x00000111,0x000006cd,0x000006cf,0x0003003e, + 0x000006d2,0x000006d1,0x0004003d,0x0000001a,0x000006d4,0x000006aa,0x0003003e,0x000006d3, + 0x000006d4,0x00060039,0x0000002f,0x000006d5,0x000000ea,0x000006d2,0x000006d3,0x0003003e, + 0x000006cc,0x000006d5,0x0004003d,0x0000002f,0x000006d6,0x000006cc,0x000200fe,0x000006d6, + 0x00010038,0x00050036,0x0000001a,0x0000011b,0x00000000,0x00000118,0x00030037,0x0000006d, + 0x00000119,0x00030037,0x0000001b,0x0000011a,0x000200f8,0x0000011c,0x0004003b,0x0000001b, + 0x000006d9,0x00000007,0x0004003b,0x0000006d,0x000006df,0x00000007,0x0004003d,0x0000001a, + 0x000006da,0x0000011a,0x00040039,0x00000055,0x000006db,0x00000057,0x0004006f,0x0000001a, + 0x000006dc,0x000006db,0x00050085,0x0000001a,0x000006dd,0x000006da,0x000006dc,0x0004006e, + 0x00000055,0x000006de,0x000006dd,0x0003003e,0x000006df,0x000006de,0x00050039,0x0000001a, + 0x000006e0,0x0000008f,0x000006df,0x0003003e,0x000006d9,0x000006e0,0x0004003d,0x0000001a, + 0x000006e1,0x000006d9,0x000200fe,0x000006e1,0x00010038,0x00050036,0x00000002,0x00000120, + 0x00000000,0x0000011e,0x00030037,0x0000011d,0x0000011f,0x000200f8,0x00000121,0x0004003b, + 0x0000001b,0x000006ea,0x00000007,0x00050041,0x0000001b,0x000006e4,0x0000011f,0x0000022f, + 0x0004003d,0x0000001a,0x000006e5,0x000006e4,0x00050041,0x0000001b,0x000006e6,0x0000011f, + 0x00000198,0x0004003d,0x0000001a,0x000006e7,0x000006e6,0x00050081,0x0000001a,0x000006e8, + 0x000006e5,0x000006e7,0x00050041,0x0000001b,0x000006e9,0x0000011f,0x000003cc,0x0003003e, + 0x000006e9,0x000006e8,0x00050041,0x0000001b,0x000006eb,0x0000011f,0x000003cc,0x0004003d, + 0x0000001a,0x000006ec,0x000006eb,0x0003003e,0x000006ea,0x000006ec,0x00050039,0x000000a2, + 0x000006ed,0x000000be,0x000006ea,0x00050041,0x000000a3,0x000006ee,0x0000011f,0x000001b2, + 0x0003003e,0x000006ee,0x000006ed,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000124, + 0x00000000,0x00000106,0x00030037,0x000000fb,0x00000122,0x00030037,0x000000fd,0x00000123, + 0x000200f8,0x00000125,0x0004003b,0x00000030,0x000006ef,0x00000007,0x0004003b,0x0000001b, + 0x000006f1,0x00000007,0x0004003b,0x0000006d,0x000006f3,0x00000007,0x0004003b,0x0000000f, + 0x00000702,0x00000007,0x00040039,0x00000055,0x000006f0,0x0000005d,0x00050051,0x0000001a, + 0x000006f2,0x00000122,0x00000005,0x0003003e,0x000006f1,0x000006f2,0x0003003e,0x000006f3, + 0x000006f0,0x00060039,0x0000002f,0x000006f4,0x00000116,0x000006f1,0x000006f3,0x0003003e, + 0x000006ef,0x000006f4,0x0004003d,0x0000002f,0x000006f5,0x000006ef,0x0008004f,0x0000000e, + 0x000006f6,0x000006f5,0x000006f5,0x00000000,0x00000001,0x00000002,0x00050041,0x0000000f, + 0x000006f7,0x00000123,0x000001a2,0x0003003e,0x000006f7,0x000006f6,0x00040039,0x00000006, + 0x000006f8,0x00000067,0x00050041,0x0000000f,0x000006f9,0x00000123,0x000001a2,0x0004003d, + 0x0000000e,0x000006fa,0x000006f9,0x0005008e,0x0000000e,0x000006fb,0x000006fa,0x000006f8, + 0x00050041,0x0000000f,0x000006fc,0x00000123,0x000001a2,0x0003003e,0x000006fc,0x000006fb, + 0x00040039,0x00000006,0x000006fd,0x00000091,0x00050041,0x0000000f,0x000006fe,0x00000123, + 0x000001a2,0x0004003d,0x0000000e,0x000006ff,0x000006fe,0x0005008e,0x0000000e,0x00000700, + 0x000006ff,0x000006fd,0x00050041,0x0000000f,0x00000701,0x00000123,0x000001a2,0x0003003e, + 0x00000701,0x00000700,0x00050041,0x0000000f,0x00000703,0x00000123,0x000001a2,0x0004003d, + 0x0000000e,0x00000704,0x00000703,0x0003003e,0x00000702,0x00000704,0x00050039,0x0000000e, + 0x00000705,0x000000b4,0x00000702,0x00050041,0x0000000f,0x00000706,0x00000123,0x000001a2, + 0x0003003e,0x00000706,0x00000705,0x00050041,0x00000007,0x00000708,0x000006ef,0x00000707, + 0x0004003d,0x00000006,0x00000709,0x00000708,0x00050041,0x00000007,0x0000070a,0x00000123, + 0x000003cc,0x0003003e,0x0000070a,0x00000709,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000128,0x00000000,0x00000106,0x00030037,0x000000fb,0x00000126,0x00030037,0x000000fd, + 0x00000127,0x000200f8,0x00000129,0x0004003b,0x00000007,0x00000718,0x00000007,0x0004003b, + 0x00000007,0x00000719,0x00000007,0x0004003b,0x0000000f,0x0000071c,0x00000007,0x0004003b, + 0x0000000f,0x00000720,0x00000007,0x0004003b,0x0000000f,0x00000722,0x00000007,0x0004003b, + 0x0000000f,0x00000725,0x00000007,0x0004003b,0x0000000f,0x00000729,0x00000007,0x0004003b, + 0x0000000f,0x0000072b,0x00000007,0x0004003b,0x00000007,0x0000072e,0x00000007,0x0004003b, + 0x00000007,0x00000734,0x00000007,0x0004003b,0x0000000f,0x00000736,0x00000007,0x0004003b, + 0x0000000f,0x00000739,0x00000007,0x0004003b,0x00000007,0x0000073c,0x00000007,0x0004003b, + 0x0000000f,0x00000740,0x00000007,0x0004003b,0x0000000f,0x00000745,0x00000007,0x00050041, + 0x00000007,0x0000070b,0x00000127,0x00000198,0x0004003d,0x00000006,0x0000070c,0x0000070b, + 0x000500ba,0x000000a2,0x0000070d,0x0000070c,0x000002d8,0x000600a9,0x00000006,0x0000070e, + 0x0000070d,0x00000150,0x0000014f,0x00050041,0x00000007,0x0000070f,0x00000127,0x00000198, + 0x0004003d,0x00000006,0x00000710,0x0000070f,0x00050085,0x00000006,0x00000711,0x00000710, + 0x0000070e,0x00050041,0x00000007,0x00000712,0x00000127,0x00000198,0x0003003e,0x00000712, + 0x00000711,0x00050041,0x00000007,0x00000713,0x00000127,0x00000198,0x0004003d,0x00000006, + 0x00000714,0x00000713,0x00050041,0x00000007,0x00000715,0x00000127,0x0000019d,0x0004003d, + 0x00000006,0x00000716,0x00000715,0x00050081,0x00000006,0x00000717,0x00000714,0x00000716, + 0x0003003e,0x00000718,0x000002d8,0x0003003e,0x00000719,0x00000717,0x00060039,0x00000006, + 0x0000071a,0x0000003f,0x00000718,0x00000719,0x00050041,0x00000007,0x0000071b,0x00000127, + 0x00000198,0x0003003e,0x0000071b,0x0000071a,0x00050041,0x0000000f,0x0000071d,0x00000127, + 0x0000022f,0x0004003d,0x0000000e,0x0000071e,0x0000071d,0x0003003e,0x0000071c,0x0000071e, + 0x00050039,0x0000000e,0x0000071f,0x000000b1,0x0000071c,0x0003003e,0x00000720,0x0000071f, + 0x00050039,0x0000000e,0x00000721,0x000000b7,0x00000720,0x0003003e,0x00000722,0x00000721, + 0x00050039,0x0000000e,0x00000723,0x000000b4,0x00000722,0x00050041,0x0000000f,0x00000724, + 0x00000127,0x0000022f,0x0003003e,0x00000724,0x00000723,0x00050041,0x0000000f,0x00000726, + 0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000727,0x00000726,0x0003003e,0x00000725, + 0x00000727,0x00050039,0x0000000e,0x00000728,0x000000b1,0x00000725,0x0003003e,0x00000729, + 0x00000728,0x00050039,0x0000000e,0x0000072a,0x000000b7,0x00000729,0x0003003e,0x0000072b, + 0x0000072a,0x00050039,0x0000000e,0x0000072c,0x000000b4,0x0000072b,0x00050041,0x0000000f, + 0x0000072d,0x00000127,0x000001a2,0x0003003e,0x0000072d,0x0000072c,0x00050041,0x00000007, + 0x0000072f,0x00000127,0x0000019d,0x0004003d,0x00000006,0x00000730,0x0000072f,0x00050041, + 0x00000007,0x00000731,0x00000127,0x00000198,0x0004003d,0x00000006,0x00000732,0x00000731, + 0x00050088,0x00000006,0x00000733,0x00000730,0x00000732,0x0003003e,0x00000734,0x00000733, + 0x00050039,0x00000006,0x00000735,0x00000018,0x00000734,0x0003003e,0x0000072e,0x00000735, + 0x00050041,0x0000000f,0x00000737,0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000738, + 0x00000737,0x0003003e,0x00000736,0x00000738,0x00050041,0x0000000f,0x0000073a,0x00000127, + 0x0000022f,0x0004003d,0x0000000e,0x0000073b,0x0000073a,0x0003003e,0x00000739,0x0000073b, + 0x0004003d,0x00000006,0x0000073d,0x0000072e,0x0003003e,0x0000073c,0x0000073d,0x00070039, + 0x0000000e,0x0000073e,0x00000014,0x00000736,0x00000739,0x0000073c,0x00050041,0x0000000f, + 0x0000073f,0x00000127,0x000001a2,0x0003003e,0x0000073f,0x0000073e,0x00050041,0x0000000f, + 0x00000741,0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000742,0x00000741,0x0003003e, + 0x00000740,0x00000742,0x00050039,0x0000000e,0x00000743,0x000000b1,0x00000740,0x00050041, + 0x0000000f,0x00000744,0x00000127,0x000001a2,0x0003003e,0x00000744,0x00000743,0x00050041, + 0x0000000f,0x00000746,0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000747,0x00000746, + 0x0003003e,0x00000745,0x00000747,0x00050039,0x0000000e,0x00000748,0x000000ba,0x00000745, + 0x00050041,0x0000000f,0x00000749,0x00000127,0x000001a2,0x0003003e,0x00000749,0x00000748, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000012c,0x00000000,0x00000106,0x00030037, + 0x000000fb,0x0000012a,0x00030037,0x000000fd,0x0000012b,0x000200f8,0x0000012d,0x0004003b, + 0x00000007,0x0000074a,0x00000007,0x0004003b,0x00000007,0x0000074e,0x00000007,0x0004003b, + 0x00000007,0x00000750,0x00000007,0x0004003b,0x00000007,0x00000755,0x00000007,0x0004003b, + 0x00000007,0x00000757,0x00000007,0x0004003b,0x00000007,0x0000075a,0x00000007,0x0004003b, + 0x00000007,0x0000075b,0x00000007,0x0004003b,0x00000007,0x0000075d,0x00000007,0x0004003b, + 0x00000007,0x0000075f,0x00000007,0x0004003b,0x00000007,0x00000761,0x00000007,0x0004003b, + 0x00000007,0x00000762,0x00000007,0x0004003b,0x00000007,0x00000764,0x00000007,0x0004003b, + 0x00000007,0x00000767,0x00000007,0x0004003b,0x00000007,0x00000769,0x00000007,0x0004003b, + 0x00000007,0x0000076b,0x00000007,0x0004003b,0x00000007,0x0000076d,0x00000007,0x0004003b, + 0x00000007,0x0000076f,0x00000007,0x0004003b,0x00000007,0x00000771,0x00000007,0x0004003b, + 0x00000007,0x00000773,0x00000007,0x0004003b,0x00000007,0x00000775,0x00000007,0x0004003b, + 0x00000007,0x00000776,0x00000007,0x0004003b,0x00000007,0x00000777,0x00000007,0x0004003b, + 0x0000000f,0x0000077a,0x00000007,0x0004003b,0x0000000f,0x00000782,0x00000007,0x0004003b, + 0x0000000f,0x00000785,0x00000007,0x0004003b,0x0000000f,0x00000787,0x00000007,0x0004003b, + 0x0000000f,0x00000789,0x00000007,0x0004003b,0x0000000f,0x00000796,0x00000007,0x0004003b, + 0x0000000f,0x00000799,0x00000007,0x0004003b,0x00000007,0x000007a0,0x00000007,0x0004003b, + 0x00000007,0x000007a1,0x00000007,0x0004003b,0x00000007,0x000007a3,0x00000007,0x0004003b, + 0x00000007,0x000007ac,0x00000007,0x0004003b,0x0000000f,0x000007af,0x00000007,0x0004003b, + 0x0000000f,0x000007b1,0x00000007,0x0004003b,0x00000007,0x000007b4,0x00000007,0x00050051, + 0x00000006,0x0000074b,0x0000012a,0x00000006,0x00050088,0x00000006,0x0000074d,0x0000074b, + 0x0000074c,0x0003003e,0x0000074e,0x0000074d,0x00050039,0x00000006,0x0000074f,0x00000018, + 0x0000074e,0x0003003e,0x0000074a,0x0000074f,0x00050051,0x00000006,0x00000752,0x0000012a, + 0x0000000c,0x00050088,0x00000006,0x00000753,0x00000752,0x0000074c,0x00050083,0x00000006, + 0x00000754,0x00000751,0x00000753,0x0003003e,0x00000755,0x00000754,0x00050039,0x00000006, + 0x00000756,0x00000018,0x00000755,0x0003003e,0x00000750,0x00000756,0x00050051,0x00000006, + 0x00000758,0x0000012a,0x0000000a,0x00050083,0x00000006,0x00000759,0x00000150,0x00000758, + 0x0003003e,0x00000757,0x00000759,0x00050051,0x00000006,0x0000075c,0x0000012a,0x00000008, + 0x0003003e,0x0000075b,0x0000075c,0x0003003e,0x0000075d,0x000002a2,0x00060039,0x00000006, + 0x0000075e,0x00000053,0x0000075b,0x0000075d,0x0003003e,0x0000075a,0x0000075e,0x00050051, + 0x00000006,0x00000760,0x0000012a,0x00000009,0x0003003e,0x0000075f,0x00000760,0x0004003d, + 0x00000006,0x00000763,0x0000075a,0x0003003e,0x00000762,0x00000763,0x0004003d,0x00000006, + 0x00000765,0x0000075f,0x0003003e,0x00000764,0x00000765,0x00060039,0x00000006,0x00000766, + 0x0000003f,0x00000762,0x00000764,0x0004003d,0x00000006,0x00000768,0x00000757,0x0003003e, + 0x00000767,0x00000768,0x0003003e,0x00000769,0x00000766,0x00060039,0x00000006,0x0000076a, + 0x0000003f,0x00000767,0x00000769,0x0004003d,0x00000006,0x0000076c,0x00000750,0x0003003e, + 0x0000076b,0x0000076c,0x0003003e,0x0000076d,0x0000076a,0x00060039,0x00000006,0x0000076e, + 0x0000003f,0x0000076b,0x0000076d,0x0004003d,0x00000006,0x00000770,0x0000074a,0x0003003e, + 0x0000076f,0x00000770,0x0003003e,0x00000771,0x0000076e,0x00060039,0x00000006,0x00000772, + 0x0000003f,0x0000076f,0x00000771,0x0003003e,0x00000761,0x00000772,0x0003003e,0x00000775, + 0x00000774,0x0003003e,0x00000776,0x00000150,0x0004003d,0x00000006,0x00000778,0x00000761, + 0x0003003e,0x00000777,0x00000778,0x00070039,0x00000006,0x00000779,0x0000000c,0x00000775, + 0x00000776,0x00000777,0x0003003e,0x00000773,0x00000779,0x00060041,0x0000000f,0x0000077b, + 0x0000012b,0x00000192,0x0000022f,0x0004003d,0x0000000e,0x0000077c,0x0000077b,0x00050085, + 0x0000000e,0x0000077f,0x0000077c,0x0000077e,0x0004003d,0x00000006,0x00000780,0x00000773, + 0x0005008e,0x0000000e,0x00000781,0x0000077f,0x00000780,0x0003003e,0x0000077a,0x00000781, + 0x0004003d,0x0000000e,0x00000786,0x0000077a,0x0003003e,0x00000785,0x00000786,0x0003003e, + 0x00000787,0x00000784,0x00060039,0x0000000e,0x00000788,0x00000047,0x00000785,0x00000787, + 0x0003003e,0x00000782,0x00000788,0x00050041,0x0000000f,0x0000078a,0x0000012b,0x000001a2, + 0x0004003d,0x0000000e,0x0000078b,0x0000078a,0x00060041,0x0000000f,0x0000078c,0x0000012b, + 0x00000192,0x00000192,0x0004003d,0x0000000e,0x0000078d,0x0000078c,0x00050083,0x0000000e, + 0x0000078e,0x0000078b,0x0000078d,0x0004003d,0x0000000e,0x0000078f,0x00000782,0x00050088, + 0x0000000e,0x00000790,0x0000078e,0x0000078f,0x0003003e,0x00000789,0x00000790,0x0004003d, + 0x0000000e,0x00000791,0x00000789,0x0006000c,0x00000006,0x00000792,0x00000001,0x00000042, + 0x00000791,0x000500ba,0x000000a2,0x00000793,0x00000792,0x00000150,0x000300f7,0x00000795, + 0x00000000,0x000400fa,0x00000793,0x00000794,0x00000795,0x000200f8,0x00000794,0x0004003d, + 0x0000000e,0x00000797,0x00000789,0x0006000c,0x0000000e,0x00000798,0x00000001,0x00000045, + 0x00000797,0x0003003e,0x00000796,0x00000798,0x0004003d,0x0000000e,0x0000079a,0x00000796, + 0x0004003d,0x0000000e,0x0000079b,0x0000077a,0x00050085,0x0000000e,0x0000079c,0x0000079a, + 0x0000079b,0x00060041,0x0000000f,0x0000079d,0x0000012b,0x00000192,0x00000192,0x0004003d, + 0x0000000e,0x0000079e,0x0000079d,0x00050081,0x0000000e,0x0000079f,0x0000079c,0x0000079e, + 0x0003003e,0x00000799,0x0000079f,0x00050051,0x00000006,0x000007a2,0x0000012a,0x0000000b, + 0x0003003e,0x000007a1,0x000007a2,0x00050041,0x00000007,0x000007a4,0x0000012b,0x000003cd, + 0x0004003d,0x00000006,0x000007a5,0x000007a4,0x0003003e,0x000007a3,0x000007a5,0x00060039, + 0x00000006,0x000007a6,0x0000003f,0x000007a1,0x000007a3,0x00050051,0x00000006,0x000007a7, + 0x0000012a,0x0000000a,0x00050085,0x00000006,0x000007a8,0x000007a6,0x000007a7,0x00050051, + 0x00000006,0x000007a9,0x0000012a,0x00000007,0x00050083,0x00000006,0x000007aa,0x00000150, + 0x000007a9,0x00050085,0x00000006,0x000007ab,0x000007a8,0x000007aa,0x0003003e,0x000007a0, + 0x000007ab,0x0004003d,0x00000006,0x000007ad,0x000007a0,0x0003003e,0x000007ac,0x000007ad, + 0x00050039,0x00000006,0x000007ae,0x00000018,0x000007ac,0x0004003d,0x0000000e,0x000007b0, + 0x00000799,0x0003003e,0x000007af,0x000007b0,0x00050041,0x0000000f,0x000007b2,0x0000012b, + 0x000001a2,0x0004003d,0x0000000e,0x000007b3,0x000007b2,0x0003003e,0x000007b1,0x000007b3, + 0x0003003e,0x000007b4,0x000007ae,0x00070039,0x0000000e,0x000007b5,0x00000014,0x000007af, + 0x000007b1,0x000007b4,0x00050041,0x0000000f,0x000007b6,0x0000012b,0x000001a2,0x0003003e, + 0x000007b6,0x000007b5,0x000200f9,0x00000795,0x000200f8,0x00000795,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000131,0x00000000,0x0000012e,0x00030037,0x0000011d,0x0000012f, + 0x00030037,0x000000fd,0x00000130,0x000200f8,0x00000132,0x0004003b,0x00000007,0x000007c0, + 0x00000007,0x0004003b,0x00000007,0x000007c1,0x00000007,0x0004003b,0x00000007,0x000007c5, + 0x00000007,0x0004003b,0x00000007,0x000007c8,0x00000007,0x0004003b,0x00000007,0x000007cc, + 0x00000007,0x0004003b,0x00000007,0x000007cd,0x00000007,0x0004003b,0x00000007,0x000007d4, + 0x00000007,0x0004003b,0x00000007,0x000007d5,0x00000007,0x0004003b,0x00000007,0x000007db, + 0x00000007,0x0004003b,0x00000007,0x000007de,0x00000007,0x0004003b,0x00000007,0x000007e1, + 0x00000007,0x0004003b,0x0000006d,0x000007e2,0x00000007,0x0004003b,0x00000007,0x000007e9, + 0x00000007,0x0004003b,0x00000007,0x000007ea,0x00000007,0x0004003b,0x00000007,0x000007f4, + 0x00000007,0x0004003b,0x00000007,0x000007f5,0x00000007,0x0004003b,0x00000007,0x000007f7, + 0x00000007,0x0004003b,0x00000007,0x000007f8,0x00000007,0x0004003b,0x00000007,0x000007fb, + 0x00000007,0x0004003b,0x00000007,0x00000806,0x00000007,0x0004003b,0x00000007,0x00000807, + 0x00000007,0x0004003b,0x0000001b,0x0000080a,0x00000007,0x0004003b,0x0000001b,0x00000810, + 0x00000007,0x00050041,0x000000a3,0x000007b7,0x0000012f,0x000003f4,0x0004003d,0x000000a2, + 0x000007b8,0x000007b7,0x000500a4,0x000000a2,0x000007ba,0x000007b8,0x000007b9,0x000600a9, + 0x00000006,0x000007bb,0x000007ba,0x00000150,0x0000014f,0x00050041,0x00000007,0x000007bc, + 0x00000130,0x000003cc,0x0004003d,0x00000006,0x000007bd,0x000007bc,0x00050085,0x00000006, + 0x000007be,0x000007bd,0x000007bb,0x00050041,0x00000007,0x000007bf,0x00000130,0x000003cc, + 0x0003003e,0x000007bf,0x000007be,0x00050041,0x00000007,0x000007c2,0x0000012f,0x000003e0, + 0x0004003d,0x00000006,0x000007c3,0x000007c2,0x0003003e,0x000007c1,0x000007c3,0x00050039, + 0x00000006,0x000007c4,0x00000018,0x000007c1,0x00050041,0x00000007,0x000007c6,0x0000012f, + 0x000003df,0x0004003d,0x00000006,0x000007c7,0x000007c6,0x0003003e,0x000007c5,0x000007c7, + 0x00050041,0x00000007,0x000007c9,0x0000012f,0x000001a7,0x0004003d,0x00000006,0x000007ca, + 0x000007c9,0x0003003e,0x000007c8,0x000007ca,0x00060039,0x00000006,0x000007cb,0x0000003f, + 0x000007c5,0x000007c8,0x0003003e,0x000007cc,0x000007c4,0x0003003e,0x000007cd,0x000007cb, + 0x00060039,0x00000006,0x000007ce,0x0000003f,0x000007cc,0x000007cd,0x0003003e,0x000007c0, + 0x000007ce,0x00050041,0x00000007,0x000007cf,0x00000130,0x000003cc,0x0004003d,0x00000006, + 0x000007d0,0x000007cf,0x0004003d,0x00000006,0x000007d1,0x000007c0,0x00050085,0x00000006, + 0x000007d2,0x000007d1,0x00000361,0x00050083,0x00000006,0x000007d3,0x000007d0,0x000007d2, + 0x0003003e,0x000007d4,0x0000014f,0x0003003e,0x000007d5,0x000007d3,0x00060039,0x00000006, + 0x000007d6,0x0000003f,0x000007d4,0x000007d5,0x00050041,0x00000007,0x000007d7,0x00000130, + 0x000003cc,0x0003003e,0x000007d7,0x000007d6,0x00050041,0x00000007,0x000007d8,0x00000130, + 0x000003cc,0x0004003d,0x00000006,0x000007d9,0x000007d8,0x00050083,0x00000006,0x000007da, + 0x000007d9,0x00000150,0x0003003e,0x000007db,0x000007da,0x00050039,0x00000006,0x000007dc, + 0x00000018,0x000007db,0x00050085,0x00000006,0x000007dd,0x000007dc,0x00000150,0x0003003e, + 0x000007de,0x000007dd,0x00050039,0x00000006,0x000007df,0x00000018,0x000007de,0x00050041, + 0x00000007,0x000007e0,0x00000130,0x000003cd,0x0003003e,0x000007e0,0x000007df,0x00050041, + 0x0000006d,0x000007e3,0x0000012f,0x00000192,0x0004003d,0x00000055,0x000007e4,0x000007e3, + 0x0003003e,0x000007e2,0x000007e4,0x00050039,0x00000006,0x000007e5,0x00000086,0x000007e2, + 0x00050041,0x00000007,0x000007e6,0x0000012f,0x000003e0,0x0004003d,0x00000006,0x000007e7, + 0x000007e6,0x00050085,0x00000006,0x000007e8,0x000007e7,0x0000014f,0x0003003e,0x000007e9, + 0x000007e8,0x00050041,0x00000007,0x000007eb,0x0000012f,0x000003df,0x0004003d,0x00000006, + 0x000007ec,0x000007eb,0x0003003e,0x000007ea,0x000007ec,0x00060039,0x00000006,0x000007ed, + 0x0000003f,0x000007e9,0x000007ea,0x00050083,0x00000006,0x000007ee,0x00000150,0x000007ed, + 0x00050085,0x00000006,0x000007ef,0x000007e5,0x000007ee,0x0003003e,0x000007e1,0x000007ef, + 0x00050041,0x00000007,0x000007f0,0x00000130,0x000003cc,0x0004003d,0x00000006,0x000007f1, + 0x000007f0,0x0004003d,0x00000006,0x000007f2,0x000007e1,0x00050081,0x00000006,0x000007f3, + 0x000007f1,0x000007f2,0x0003003e,0x000007f4,0x000007f3,0x0003003e,0x000007f5,0x00000361, + 0x00060039,0x00000006,0x000007f6,0x00000023,0x000007f4,0x000007f5,0x0003003e,0x000007f7, + 0x0000014f,0x0003003e,0x000007f8,0x000007f6,0x00060039,0x00000006,0x000007f9,0x0000003f, + 0x000007f7,0x000007f8,0x00050041,0x00000007,0x000007fa,0x00000130,0x000003cc,0x0003003e, + 0x000007fa,0x000007f9,0x00040039,0x00000006,0x000007fd,0x00000065,0x00050088,0x00000006, + 0x000007fe,0x000007fc,0x000007fd,0x0004003d,0x00000006,0x000007ff,0x000007c0,0x00050083, + 0x00000006,0x00000800,0x00000150,0x000007ff,0x00050085,0x00000006,0x00000801,0x000007fe, + 0x00000800,0x0003003e,0x000007fb,0x00000801,0x00050041,0x00000007,0x00000802,0x00000130, + 0x000003cc,0x0004003d,0x00000006,0x00000803,0x00000802,0x0004003d,0x00000006,0x00000804, + 0x000007fb,0x00050083,0x00000006,0x00000805,0x00000803,0x00000804,0x0003003e,0x00000806, + 0x0000014f,0x0003003e,0x00000807,0x00000805,0x00060039,0x00000006,0x00000808,0x0000003f, + 0x00000806,0x00000807,0x00050041,0x00000007,0x00000809,0x00000130,0x000003cc,0x0003003e, + 0x00000809,0x00000808,0x00050041,0x0000001b,0x0000080b,0x0000012f,0x0000022f,0x0004003d, + 0x0000001a,0x0000080c,0x0000080b,0x00050041,0x0000001b,0x0000080d,0x0000012f,0x00000198, + 0x0004003d,0x0000001a,0x0000080e,0x0000080d,0x00050083,0x0000001a,0x0000080f,0x0000080c, + 0x0000080e,0x0003003e,0x0000080a,0x0000080f,0x0004003d,0x0000001a,0x00000811,0x0000080a, + 0x0003003e,0x00000810,0x00000811,0x00050039,0x000000a2,0x00000812,0x000000be,0x00000810, + 0x000500a4,0x000000a2,0x00000814,0x00000812,0x00000813,0x000600a9,0x00000006,0x00000815, + 0x00000814,0x00000150,0x0000014f,0x00050041,0x00000007,0x00000816,0x00000130,0x000003cc, + 0x0004003d,0x00000006,0x00000817,0x00000816,0x00050085,0x00000006,0x00000818,0x00000817, + 0x00000815,0x00050041,0x00000007,0x00000819,0x00000130,0x000003cc,0x0003003e,0x00000819, + 0x00000818,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000135,0x00000000,0x00000106, + 0x00030037,0x000000fb,0x00000133,0x00030037,0x000000fd,0x00000134,0x000200f8,0x00000136, + 0x0004003b,0x00000007,0x0000081a,0x00000007,0x0004003b,0x00000007,0x00000821,0x00000007, + 0x0004003b,0x00000007,0x00000822,0x00000007,0x0004003b,0x00000007,0x00000824,0x00000007, + 0x0004003b,0x00000007,0x00000826,0x00000007,0x0004003b,0x00000007,0x00000828,0x00000007, + 0x0004003b,0x00000007,0x00000829,0x00000007,0x0004003b,0x00000007,0x0000082b,0x00000007, + 0x0004003b,0x00000007,0x0000082d,0x00000007,0x00050051,0x00000006,0x0000081b,0x00000133, + 0x0000000a,0x0003003e,0x0000081a,0x0000081b,0x00050051,0x00000006,0x0000081d,0x00000133, + 0x00000006,0x00040039,0x00000006,0x0000081e,0x0000006b,0x00050085,0x00000006,0x0000081f, + 0x0000081d,0x0000081e,0x00050088,0x00000006,0x00000820,0x0000081f,0x000002a2,0x0003003e, + 0x00000821,0x0000014f,0x0003003e,0x00000822,0x00000820,0x00060039,0x00000006,0x00000823, + 0x0000003f,0x00000821,0x00000822,0x0003003e,0x00000824,0x00000823,0x00050039,0x00000006, + 0x00000825,0x00000018,0x00000824,0x0004003d,0x00000006,0x00000827,0x0000081a,0x0003003e, + 0x00000826,0x00000827,0x0003003e,0x00000828,0x0000081c,0x0003003e,0x00000829,0x00000825, + 0x00070039,0x00000006,0x0000082a,0x0000000c,0x00000826,0x00000828,0x00000829,0x0004003d, + 0x00000006,0x0000082c,0x0000081a,0x0003003e,0x0000082b,0x0000082c,0x0003003e,0x0000082d, + 0x0000082a,0x00060039,0x00000006,0x0000082e,0x00000023,0x0000082b,0x0000082d,0x0003003e, + 0x0000081a,0x0000082e,0x0004003d,0x00000006,0x0000082f,0x0000081a,0x00050041,0x00000007, + 0x00000830,0x00000134,0x00000198,0x0003003e,0x00000830,0x0000082f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000013b,0x00000000,0x00000137,0x00030037,0x0000006d,0x00000138, + 0x00030037,0x0000011d,0x00000139,0x00030037,0x000000fd,0x0000013a,0x000200f8,0x0000013c, + 0x0004003b,0x0000001b,0x00000833,0x00000007,0x0004003b,0x0000001b,0x00000846,0x00000007, + 0x0004003b,0x0000006d,0x00000849,0x00000007,0x0004003b,0x0000006d,0x0000084a,0x00000007, + 0x0004003b,0x0000006d,0x0000084d,0x00000007,0x0004003b,0x0000001b,0x0000084f,0x00000007, + 0x0004003b,0x0000001b,0x00000853,0x00000007,0x0004003b,0x0000011d,0x00000858,0x00000007, + 0x0004003b,0x0000001b,0x0000085c,0x00000007,0x0004003b,0x0000001b,0x0000085f,0x00000007, + 0x0004003b,0x0000006d,0x00000861,0x00000007,0x0004003b,0x0000006d,0x00000862,0x00000007, + 0x0004003b,0x0000001b,0x00000864,0x00000007,0x0004003b,0x0000001b,0x00000868,0x00000007, + 0x0004003b,0x0000001b,0x0000086d,0x00000007,0x0004003b,0x0000006d,0x00000870,0x00000007, + 0x0004003b,0x0000006d,0x00000871,0x00000007,0x0004003b,0x0000001b,0x00000873,0x00000007, + 0x0004003b,0x00000030,0x00000881,0x00000007,0x0004003b,0x0000001b,0x00000882,0x00000007, + 0x0004003b,0x00000007,0x00000886,0x00000007,0x0004003b,0x00000007,0x0000088b,0x00000007, + 0x0004003b,0x00000007,0x00000890,0x00000007,0x0004003b,0x00000007,0x00000895,0x00000007, + 0x0004003d,0x00000055,0x00000831,0x00000138,0x00050041,0x0000006d,0x00000832,0x00000139, + 0x00000192,0x0003003e,0x00000832,0x00000831,0x0004003d,0x00000055,0x00000834,0x00000138, + 0x0004006f,0x0000001a,0x00000835,0x00000834,0x00050050,0x0000001a,0x00000836,0x000002a2, + 0x000002a2,0x00050081,0x0000001a,0x00000837,0x00000835,0x00000836,0x00040039,0x00000055, + 0x00000838,0x0000005b,0x0004006f,0x0000001a,0x00000839,0x00000838,0x00050088,0x0000001a, + 0x0000083a,0x00000837,0x00000839,0x0003003e,0x00000833,0x0000083a,0x0004003d,0x0000001a, + 0x0000083b,0x00000833,0x00050041,0x0000001b,0x0000083c,0x00000139,0x0000022f,0x0003003e, + 0x0000083c,0x0000083b,0x0004003d,0x0000001a,0x0000083d,0x00000833,0x00040039,0x0000001a, + 0x0000083e,0x00000060,0x00040039,0x00000055,0x0000083f,0x00000057,0x0004006f,0x0000001a, + 0x00000840,0x0000083f,0x00050088,0x0000001a,0x00000841,0x0000083e,0x00000840,0x00050081, + 0x0000001a,0x00000842,0x0000083d,0x00000841,0x00050041,0x0000001b,0x00000843,0x00000139, + 0x0000019d,0x0003003e,0x00000843,0x00000842,0x00040039,0x00000055,0x00000844,0x00000057, + 0x00040039,0x00000055,0x00000845,0x00000059,0x00050041,0x0000001b,0x00000847,0x00000139, + 0x0000019d,0x0004003d,0x0000001a,0x00000848,0x00000847,0x0003003e,0x00000846,0x00000848, + 0x0003003e,0x00000849,0x00000844,0x0003003e,0x0000084a,0x00000845,0x00070039,0x0000001a, + 0x0000084b,0x000000ca,0x00000846,0x00000849,0x0000084a,0x00050041,0x0000001b,0x0000084c, + 0x00000139,0x000001a2,0x0003003e,0x0000084c,0x0000084b,0x0004003d,0x00000055,0x0000084e, + 0x00000138,0x0003003e,0x0000084d,0x0000084e,0x0004003d,0x0000001a,0x00000850,0x00000833, + 0x0003003e,0x0000084f,0x00000850,0x00060039,0x0000001a,0x00000851,0x0000011b,0x0000084d, + 0x0000084f,0x00050041,0x0000001b,0x00000852,0x00000139,0x00000198,0x0003003e,0x00000852, + 0x00000851,0x00050041,0x0000001b,0x00000854,0x00000139,0x00000198,0x0004003d,0x0000001a, + 0x00000855,0x00000854,0x0003003e,0x00000853,0x00000855,0x00050039,0x00000006,0x00000856, + 0x00000098,0x00000853,0x00050041,0x00000007,0x00000857,0x00000139,0x000003cd,0x0003003e, + 0x00000857,0x00000856,0x0004003d,0x000000fb,0x00000859,0x00000139,0x0003003e,0x00000858, + 0x00000859,0x00050039,0x00000002,0x0000085a,0x00000120,0x00000858,0x0004003d,0x000000fb, + 0x0000085b,0x00000858,0x0003003e,0x00000139,0x0000085b,0x00040039,0x00000055,0x0000085d, + 0x00000057,0x00040039,0x00000055,0x0000085e,0x00000059,0x0004003d,0x0000001a,0x00000860, + 0x00000833,0x0003003e,0x0000085f,0x00000860,0x0003003e,0x00000861,0x0000085d,0x0003003e, + 0x00000862,0x0000085e,0x00070039,0x0000001a,0x00000863,0x000000ca,0x0000085f,0x00000861, + 0x00000862,0x0003003e,0x0000085c,0x00000863,0x0004003d,0x0000001a,0x00000865,0x0000085c, + 0x0003003e,0x00000864,0x00000865,0x00050039,0x00000006,0x00000866,0x00000082,0x00000864, + 0x00050041,0x00000007,0x00000867,0x00000139,0x000003e1,0x0003003e,0x00000867,0x00000866, + 0x00040039,0x00000055,0x00000869,0x00000057,0x00050050,0x00000055,0x0000086a,0x0000019d, + 0x0000019d,0x00050087,0x00000055,0x0000086b,0x00000869,0x0000086a,0x00040039,0x00000055, + 0x0000086c,0x0000007b,0x00050041,0x0000001b,0x0000086e,0x00000139,0x0000019d,0x0004003d, + 0x0000001a,0x0000086f,0x0000086e,0x0003003e,0x0000086d,0x0000086f,0x0003003e,0x00000870, + 0x0000086b,0x0003003e,0x00000871,0x0000086c,0x00070039,0x0000001a,0x00000872,0x000000ca, + 0x0000086d,0x00000870,0x00000871,0x0003003e,0x00000868,0x00000872,0x0004003d,0x0000001a, + 0x00000874,0x00000868,0x0003003e,0x00000873,0x00000874,0x00050039,0x00000006,0x00000875, + 0x0000007f,0x00000873,0x00050041,0x00000007,0x00000876,0x00000139,0x000003f3,0x0003003e, + 0x00000876,0x00000875,0x00050041,0x000000a3,0x00000877,0x00000139,0x000001b2,0x0004003d, + 0x000000a2,0x00000878,0x00000877,0x000500a4,0x000000a2,0x00000879,0x00000878,0x000007b9, + 0x000400a8,0x000000a2,0x0000087a,0x00000879,0x000300f7,0x0000087c,0x00000000,0x000400fa, + 0x0000087a,0x0000087b,0x0000087c,0x000200f8,0x0000087b,0x00040039,0x00000006,0x0000087d, + 0x00000069,0x000500b4,0x000000a2,0x0000087e,0x0000014f,0x0000087d,0x000200f9,0x0000087c, + 0x000200f8,0x0000087c,0x000700f5,0x000000a2,0x0000087f,0x00000879,0x0000013c,0x0000087e, + 0x0000087b,0x00050041,0x000000a3,0x00000880,0x00000139,0x000003f4,0x0003003e,0x00000880, + 0x0000087f,0x00050041,0x0000001b,0x00000883,0x00000139,0x000001a2,0x0004003d,0x0000001a, + 0x00000884,0x00000883,0x0003003e,0x00000882,0x00000884,0x00050039,0x0000002f,0x00000885, + 0x00000095,0x00000882,0x0003003e,0x00000881,0x00000885,0x00050041,0x00000007,0x00000887, + 0x00000881,0x000001eb,0x0004003d,0x00000006,0x00000888,0x00000887,0x0003003e,0x00000886, + 0x00000888,0x00050039,0x00000006,0x00000889,0x00000018,0x00000886,0x00050041,0x00000007, + 0x0000088a,0x00000139,0x000003df,0x0003003e,0x0000088a,0x00000889,0x00050041,0x00000007, + 0x0000088c,0x00000881,0x00000284,0x0004003d,0x00000006,0x0000088d,0x0000088c,0x0003003e, + 0x0000088b,0x0000088d,0x00050039,0x00000006,0x0000088e,0x00000018,0x0000088b,0x00050041, + 0x00000007,0x0000088f,0x00000139,0x000001a7,0x0003003e,0x0000088f,0x0000088e,0x00050041, + 0x00000007,0x00000891,0x00000881,0x00000288,0x0004003d,0x00000006,0x00000892,0x00000891, + 0x0003003e,0x00000890,0x00000892,0x00050039,0x00000006,0x00000893,0x00000018,0x00000890, + 0x00050041,0x00000007,0x00000894,0x00000139,0x000003e0,0x0003003e,0x00000894,0x00000893, + 0x00050041,0x00000007,0x00000896,0x00000881,0x00000707,0x0004003d,0x00000006,0x00000897, + 0x00000896,0x0003003e,0x00000895,0x00000897,0x00050039,0x00000006,0x00000898,0x00000018, + 0x00000895,0x00050041,0x00000007,0x00000899,0x00000139,0x000001ad,0x0003003e,0x00000899, + 0x00000898,0x00050041,0x00000007,0x0000089a,0x00000139,0x000001ad,0x0004003d,0x00000006, + 0x0000089b,0x0000089a,0x00050085,0x00000006,0x0000089d,0x0000089b,0x0000089c,0x0006000c, + 0x00000006,0x0000089e,0x00000001,0x00000001,0x0000089d,0x000500ba,0x000000a2,0x0000089f, + 0x0000089e,0x00000150,0x000600a9,0x00000006,0x000008a0,0x0000089f,0x00000150,0x0000014f, + 0x00050041,0x00000007,0x000008a1,0x00000139,0x000001ad,0x0004003d,0x00000006,0x000008a2, + 0x000008a1,0x00050085,0x00000006,0x000008a3,0x000008a2,0x000008a0,0x00050041,0x00000007, + 0x000008a4,0x00000139,0x000001ad,0x0003003e,0x000008a4,0x000008a3,0x00050041,0x0000000f, + 0x000008a5,0x0000013a,0x0000022f,0x0003003e,0x000008a5,0x00000487,0x00050041,0x0000000f, + 0x000008a6,0x0000013a,0x000001a2,0x0003003e,0x000008a6,0x00000487,0x00050041,0x00000007, + 0x000008a7,0x0000013a,0x00000198,0x0003003e,0x000008a7,0x00000150,0x00050041,0x00000007, + 0x000008a8,0x0000013a,0x0000019d,0x0003003e,0x000008a8,0x0000014f,0x00050041,0x00000007, + 0x000008a9,0x0000013a,0x000003cc,0x0003003e,0x000008a9,0x0000014f,0x00050041,0x00000007, + 0x000008aa,0x0000013a,0x000003cd,0x0003003e,0x000008aa,0x0000014f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000013f,0x00000000,0x0000013d,0x00030037,0x0000006d,0x0000013e, + 0x000200f8,0x00000140,0x0004003b,0x0000011d,0x000008ab,0x00000007,0x0004003b,0x000000fd, + 0x000008ac,0x00000007,0x0004003b,0x0000006d,0x000008ad,0x00000007,0x0004003b,0x0000011d, + 0x000008af,0x00000007,0x0004003b,0x000000fd,0x000008b1,0x00000007,0x0004003b,0x000000fd, + 0x000008c1,0x00000007,0x0004003b,0x0000011d,0x000008c5,0x00000007,0x0004003b,0x000000fd, + 0x000008c7,0x00000007,0x0004003b,0x000000fd,0x000008cc,0x00000007,0x0004003b,0x000000fd, + 0x000008d1,0x00000007,0x0004003b,0x000000fd,0x000008d6,0x00000007,0x0004003b,0x000000fd, + 0x000008db,0x00000007,0x0004003b,0x0000000f,0x000008e5,0x00000007,0x0004003b,0x0000000f, + 0x000008e8,0x00000007,0x0004003b,0x0000006d,0x000008f3,0x00000007,0x0004003b,0x00000030, + 0x000008f5,0x00000007,0x0004003b,0x0000006d,0x000008f7,0x00000007,0x0004003b,0x00000007, + 0x000008f9,0x00000007,0x0004003d,0x00000055,0x000008ae,0x0000013e,0x0003003e,0x000008ad, + 0x000008ae,0x0004003d,0x000000fb,0x000008b0,0x000008ab,0x0003003e,0x000008af,0x000008b0, + 0x0004003d,0x000000fc,0x000008b2,0x000008ac,0x0003003e,0x000008b1,0x000008b2,0x00070039, + 0x00000002,0x000008b3,0x0000013b,0x000008ad,0x000008af,0x000008b1,0x0004003d,0x000000fb, + 0x000008b4,0x000008af,0x0003003e,0x000008ab,0x000008b4,0x0004003d,0x000000fc,0x000008b5, + 0x000008b1,0x0003003e,0x000008ac,0x000008b5,0x00050041,0x000000a3,0x000008b6,0x000008ab, + 0x000001b2,0x0004003d,0x000000a2,0x000008b7,0x000008b6,0x000300f7,0x000008b9,0x00000000, + 0x000400fa,0x000008b7,0x000008b8,0x000008b9,0x000200f8,0x000008b8,0x00050041,0x000000a3, + 0x000008ba,0x000008ab,0x000003f4,0x0004003d,0x000000a2,0x000008bb,0x000008ba,0x000400a8, + 0x000000a2,0x000008bc,0x000008bb,0x000200f9,0x000008b9,0x000200f8,0x000008b9,0x000700f5, + 0x000000a2,0x000008bd,0x000008b7,0x00000140,0x000008bc,0x000008b8,0x000300f7,0x000008bf, + 0x00000000,0x000400fa,0x000008bd,0x000008be,0x000008bf,0x000200f8,0x000008be,0x0004003d, + 0x000000fb,0x000008c0,0x000008ab,0x0004003d,0x000000fc,0x000008c2,0x000008ac,0x0003003e, + 0x000008c1,0x000008c2,0x00060039,0x00000002,0x000008c3,0x00000124,0x000008c0,0x000008c1, + 0x0004003d,0x000000fc,0x000008c4,0x000008c1,0x0003003e,0x000008ac,0x000008c4,0x000200f9, + 0x000008bf,0x000200f8,0x000008bf,0x0004003d,0x000000fb,0x000008c6,0x000008ab,0x0003003e, + 0x000008c5,0x000008c6,0x0004003d,0x000000fc,0x000008c8,0x000008ac,0x0003003e,0x000008c7, + 0x000008c8,0x00060039,0x00000002,0x000008c9,0x00000131,0x000008c5,0x000008c7,0x0004003d, + 0x000000fc,0x000008ca,0x000008c7,0x0003003e,0x000008ac,0x000008ca,0x0004003d,0x000000fb, + 0x000008cb,0x000008ab,0x0004003d,0x000000fc,0x000008cd,0x000008ac,0x0003003e,0x000008cc, + 0x000008cd,0x00060039,0x00000002,0x000008ce,0x00000135,0x000008cb,0x000008cc,0x0004003d, + 0x000000fc,0x000008cf,0x000008cc,0x0003003e,0x000008ac,0x000008cf,0x0004003d,0x000000fb, + 0x000008d0,0x000008ab,0x0004003d,0x000000fc,0x000008d2,0x000008ac,0x0003003e,0x000008d1, + 0x000008d2,0x00060039,0x00000002,0x000008d3,0x00000109,0x000008d0,0x000008d1,0x0004003d, + 0x000000fc,0x000008d4,0x000008d1,0x0003003e,0x000008ac,0x000008d4,0x0004003d,0x000000fb, + 0x000008d5,0x000008ab,0x0004003d,0x000000fc,0x000008d7,0x000008ac,0x0003003e,0x000008d6, + 0x000008d7,0x00060039,0x00000002,0x000008d8,0x0000012c,0x000008d5,0x000008d6,0x0004003d, + 0x000000fc,0x000008d9,0x000008d6,0x0003003e,0x000008ac,0x000008d9,0x0004003d,0x000000fb, + 0x000008da,0x000008ab,0x0004003d,0x000000fc,0x000008dc,0x000008ac,0x0003003e,0x000008db, + 0x000008dc,0x00060039,0x00000002,0x000008dd,0x00000128,0x000008da,0x000008db,0x0004003d, + 0x000000fc,0x000008de,0x000008db,0x0003003e,0x000008ac,0x000008de,0x00040039,0x00000006, + 0x000008df,0x00000091,0x00050041,0x0000000f,0x000008e0,0x000008ac,0x000001a2,0x0004003d, + 0x0000000e,0x000008e1,0x000008e0,0x00060050,0x0000000e,0x000008e2,0x000008df,0x000008df, + 0x000008df,0x00050088,0x0000000e,0x000008e3,0x000008e1,0x000008e2,0x00050041,0x0000000f, + 0x000008e4,0x000008ac,0x000001a2,0x0003003e,0x000008e4,0x000008e3,0x00050041,0x0000000f, + 0x000008e6,0x000008ac,0x000001a2,0x0004003d,0x0000000e,0x000008e7,0x000008e6,0x0003003e, + 0x000008e5,0x000008e7,0x0003003e,0x000008e8,0x00000487,0x00060039,0x0000000e,0x000008e9, + 0x00000047,0x000008e5,0x000008e8,0x00050041,0x0000000f,0x000008ea,0x000008ac,0x000001a2, + 0x0003003e,0x000008ea,0x000008e9,0x00050041,0x0000000f,0x000008eb,0x000008ac,0x000001a2, + 0x0004003d,0x0000000e,0x000008ec,0x000008eb,0x00050041,0x00000007,0x000008ed,0x000008ac, + 0x000003cc,0x0004003d,0x00000006,0x000008ee,0x000008ed,0x00050051,0x00000006,0x000008ef, + 0x000008ec,0x00000000,0x00050051,0x00000006,0x000008f0,0x000008ec,0x00000001,0x00050051, + 0x00000006,0x000008f1,0x000008ec,0x00000002,0x00070050,0x0000002f,0x000008f2,0x000008ef, + 0x000008f0,0x000008f1,0x000008ee,0x0004003d,0x00000055,0x000008f4,0x0000013e,0x0003003e, + 0x000008f3,0x000008f4,0x0003003e,0x000008f5,0x000008f2,0x00060039,0x00000002,0x000008f6, + 0x00000079,0x000008f3,0x000008f5,0x0004003d,0x00000055,0x000008f8,0x0000013e,0x0003003e, + 0x000008f7,0x000008f8,0x0003003e,0x000008f9,0x0000014f,0x00060039,0x00000002,0x000008fa, + 0x0000008b,0x000008f7,0x000008f9,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h b/gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h new file mode 100644 index 000000000..089fe9ad1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h @@ -0,0 +1,818 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_DISOCCLUSION_MASK_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000003d6,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000003c6, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666, + 0x6f6c4673,0x75287461,0x00003b31,0x00030005,0x0000000a,0x00000078,0x00070005,0x00000011, + 0x42786666,0x64616f72,0x74736163,0x31662832,0x0000003b,0x00040005,0x00000010,0x756c6176, + 0x00000065,0x00070005,0x00000017,0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b, + 0x00030005,0x00000014,0x00000078,0x00030005,0x00000015,0x00000079,0x00030005,0x00000016, + 0x00000074,0x00060005,0x0000001b,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x0000001a,0x00000078,0x00060005,0x00000020,0x46786666,0x74636172,0x32667628,0x0000003b, + 0x00030005,0x0000001f,0x00000078,0x00070005,0x00000024,0x55786666,0x6361706e,0x3233466b, + 0x3b317528,0x00000000,0x00030005,0x00000023,0x00000075,0x00060005,0x00000029,0x4d786666, + 0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000027,0x00000078,0x00030005,0x00000028, + 0x00000079,0x00050005,0x0000002e,0x646e6552,0x69537265,0x0028657a,0x000b0005,0x00000032, + 0x69766544,0x6f546563,0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72,0x726f7463, + 0x00002873,0x00080005,0x00000037,0x64616f4c,0x616c6944,0x44646574,0x68747065,0x32697628, + 0x0000003b,0x00040005,0x00000036,0x50785069,0x0000736f,0x000d0005,0x0000003a,0x64616f4c, + 0x6f636552,0x7274736e,0x65746375,0x70654464,0x72506874,0x6f697665,0x72467375,0x28656d61, + 0x3b326976,0x00000000,0x00050005,0x00000039,0x49785069,0x7475706e,0x00000000,0x000d0005, + 0x0000003d,0x64616f4c,0x69747345,0x6574616d,0x746e4964,0x6f707265,0x6974616c,0x72466e6f, + 0x44656d61,0x68747065,0x32697628,0x0000003b,0x00050005,0x0000003c,0x49785069,0x7475706e, + 0x00000000,0x00080005,0x00000042,0x64616f4c,0x656d6147,0x6c656946,0x28764d64,0x3b326976, + 0x00000000,0x00050005,0x00000041,0x53785069,0x6c706d61,0x00000065,0x000a0005,0x00000049, + 0x64616f4c,0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x31692864,0x3275763b,0x0000003b, + 0x00050005,0x00000047,0x4c70696d,0x6c657665,0x00000000,0x00050005,0x00000048,0x49785069, + 0x7475706e,0x00000000,0x00090005,0x0000004c,0x706d6153,0x6944656c,0x726f7473,0x6e6f6974, + 0x6c656946,0x66762864,0x00003b32,0x00030005,0x0000004b,0x00765566,0x000a0005,0x00000051, + 0x726f7453,0x73694465,0x6c63636f,0x6f697375,0x73614d6e,0x6976286b,0x66763b32,0x00003b32, + 0x00040005,0x0000004f,0x50785069,0x0000736f,0x00030005,0x00000050,0x006c6176,0x00080005, + 0x00000056,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006, + 0x00000056,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x00000056,0x00000001, + 0x69655766,0x73746867,0x00000000,0x00060006,0x00000056,0x00000002,0x73614269,0x736f5065, + 0x00000000,0x000b0005,0x0000005a,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69, + 0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x00000058,0x00765566,0x00040005, + 0x00000059,0x7a695369,0x00000065,0x000c0005,0x0000005d,0x766e6f43,0x46747265,0x446d6f72, + 0x63697665,0x70654465,0x6f546874,0x77656956,0x63617053,0x31662865,0x0000003b,0x00060005, + 0x0000005c,0x76654466,0x44656369,0x68747065,0x00000000,0x00070005,0x00000062,0x706d6f43, + 0x4e657475,0x76286364,0x763b3266,0x003b3269,0x00040005,0x00000060,0x50785066,0x0000736f, + 0x00040005,0x00000061,0x7a695369,0x00000065,0x000b0005,0x00000069,0x56746547,0x53776569, + 0x65636170,0x69736f50,0x6e6f6974,0x32697628,0x3269763b,0x3b31663b,0x00000000,0x00060005, + 0x00000066,0x65695669,0x726f7077,0x736f5074,0x00000000,0x00060005,0x00000067,0x65695669, + 0x726f7077,0x7a695374,0x00000065,0x00060005,0x00000068,0x76654466,0x44656369,0x68747065, + 0x00000000,0x00070005,0x0000006f,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x0000006d,0x00736f70,0x00040005,0x0000006e,0x657a6973,0x00000000,0x00060005, + 0x00000073,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000072,0x00765566, + 0x000b0005,0x00000077,0x6b636150,0x65566465,0x726f7463,0x6c656946,0x746e4564,0x73497972, + 0x6d697250,0x28797261,0x003b3175,0x00050005,0x00000076,0x6b636170,0x6e456465,0x00797274, + 0x00070005,0x00000079,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x00000000,0x00070006, + 0x00000079,0x00000000,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00080006,0x00000079, + 0x00000001,0x67694875,0x69725068,0x7469726f,0x63614679,0x00726f74,0x00080006,0x00000079, + 0x00000002,0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f,0x00050006,0x00000079, + 0x00000003,0x6c615662,0x00006469,0x00060006,0x00000079,0x00000004,0x69725062,0x7972616d, + 0x00000000,0x00060006,0x00000079,0x00000005,0x63655362,0x61646e6f,0x00007972,0x00060006, + 0x00000079,0x00000006,0x506e4962,0x746e6961,0x00006465,0x00060006,0x00000079,0x00000007, + 0x6c655666,0x7469636f,0x00000079,0x00060006,0x00000079,0x00000008,0x67654e62,0x7374754f, + 0x00656469,0x00060006,0x00000079,0x00000009,0x736f5062,0x7374754f,0x00656469,0x00180005, + 0x0000007e,0x61706e55,0x65566b63,0x726f7463,0x6c656946,0x746e4564,0x73656972,0x32757628, + 0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x3266762d,0x2d31662d, + 0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31,0x3131622d,0x0000003b,0x00040005, + 0x0000007c,0x6b636170,0x00006465,0x00050005,0x0000007d,0x6c456676,0x6e656d65,0x00000074, + 0x000c0005,0x00000084,0x706d6f43,0x4d657475,0x706e4976,0x746e6961,0x4c676e69,0x6c657665, + 0x32667628,0x3b31693b,0x3b326976,0x00000000,0x00030005,0x00000081,0x00765566,0x00050005, + 0x00000082,0x70694d69,0x6576654c,0x0000006c,0x00050005,0x00000083,0x78655469,0x657a6953, + 0x00000000,0x00180005,0x00000089,0x64616f4c,0x61706e49,0x65746e69,0x6d614764,0x65694665, + 0x764d646c,0x32667628,0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65,0x7972746e, + 0x3266762d,0x2d31662d,0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31,0x3131622d, + 0x0000003b,0x00030005,0x00000087,0x00765566,0x00050005,0x00000088,0x6c456676,0x6e656d65, + 0x00000074,0x00090005,0x0000008e,0x64616f4c,0x69747345,0x6574616d,0x70654464,0x75286874, + 0x69763b31,0x00003b32,0x00060005,0x0000008c,0x69747365,0x6574616d,0x646e4964,0x00007865, + 0x00050005,0x0000008d,0x6d615369,0x50656c70,0x0000736f,0x00090005,0x00000094,0x706d6f43, + 0x44657475,0x68747065,0x70696c43,0x3b317528,0x3b326676,0x003b3166,0x00060005,0x00000091, + 0x69747365,0x6574616d,0x646e4964,0x00007865,0x00050005,0x00000092,0x53765566,0x6c706d61, + 0x00000065,0x00070005,0x00000093,0x72754366,0x746e6572,0x74706544,0x6d615368,0x00656c70, + 0x000a0005,0x00000098,0x706d6f63,0x44657475,0x636f7369,0x73756c63,0x4d6e6f69,0x286b7361, + 0x3b326976,0x00000000,0x00040005,0x00000097,0x50785069,0x0000736f,0x00040005,0x000000bb, + 0x49466263,0x0000745f,0x00060006,0x000000bb,0x00000000,0x646e6572,0x69537265,0x0000657a, + 0x00060006,0x000000bb,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x000000bb, + 0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x000000bb,0x00000003, + 0x656d6163,0x654e6172,0x00007261,0x00060006,0x000000bb,0x00000004,0x656d6163,0x61466172, + 0x00000072,0x00080006,0x000000bb,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465, + 0x0000657a,0x00050006,0x000000bb,0x00000006,0x65646f4d,0x00000000,0x00050006,0x000000bb, + 0x00000007,0x65736572,0x00000074,0x00080006,0x000000bb,0x00000008,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00060006,0x000000bb,0x00000009,0x746c6564,0x6d695461, + 0x00000065,0x00090006,0x000000bb,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568, + 0x6f746361,0x00000072,0x00080006,0x000000bb,0x0000000b,0x74736964,0x6974726f,0x69466e6f, + 0x53646c65,0x00657a69,0x00080006,0x000000bb,0x0000000c,0x6974706f,0x466c6163,0x53776f6c, + 0x656c6163,0x00000000,0x00090006,0x000000bb,0x0000000d,0x6974706f,0x466c6163,0x42776f6c, + 0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x000000bb,0x0000000e,0x70736964,0x68637461, + 0x67616c46,0x00000073,0x00070006,0x000000bb,0x0000000f,0x5278616d,0x65646e65,0x7a695372, + 0x00000065,0x00090006,0x000000bb,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61, + 0x6f4d7365,0x00006564,0x00070006,0x000000bb,0x00000011,0x496d754e,0x6174736e,0x7365636e, + 0x00000000,0x00090006,0x000000bb,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x73614274,0x00000065,0x00090006,0x000000bb,0x00000013,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x7a695374,0x00000065,0x00070006,0x000000bb,0x00000014,0x75626564,0x72614267, + 0x6f6c6f43,0x00000072,0x000a0006,0x000000bb,0x00000015,0x6b636162,0x66667542,0x72547265, + 0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000000bb,0x00000016,0x4d6e696d, + 0x754c7861,0x616e696d,0x0065636e,0x00060006,0x000000bb,0x00000017,0x6e615466,0x666c6148, + 0x00564f46,0x00050006,0x000000bb,0x00000018,0x6461705f,0x00000031,0x00050006,0x000000bb, + 0x00000019,0x74694a66,0x00726574,0x00080006,0x000000bb,0x0000001a,0x746f4d66,0x566e6f69, + 0x6f746365,0x61635372,0x0000656c,0x00040005,0x000000bd,0x49466263,0x00000000,0x00060005, + 0x000000cc,0x69645f72,0x6574616c,0x65645f64,0x00687470,0x000c0005,0x000000d6,0x65725f72, + 0x736e6f63,0x63757274,0x5f646574,0x74706564,0x72705f68,0x6f697665,0x665f7375,0x656d6172, + 0x00000000,0x00040005,0x000000db,0x61726170,0x0000006d,0x000d0005,0x000000e0,0x65725f72, + 0x736e6f63,0x63757274,0x5f646574,0x74706564,0x6e695f68,0x70726574,0x74616c6f,0x665f6465, + 0x656d6172,0x00000000,0x00040005,0x000000e4,0x61726170,0x0000006d,0x00040005,0x000000e9, + 0x6b636170,0x00586465,0x000a0005,0x000000ea,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e, + 0x726f7463,0x6569665f,0x785f646c,0x00000000,0x00040005,0x000000ef,0x6b636170,0x00596465, + 0x000a0005,0x000000f0,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f, + 0x795f646c,0x00000000,0x00080005,0x000000fa,0x6e695f72,0x6e696170,0x676e6974,0x7279705f, + 0x64696d61,0x00000000,0x00090005,0x00000102,0x6e695f72,0x5f747570,0x74736964,0x6974726f, + 0x665f6e6f,0x646c6569,0x00000000,0x00060005,0x00000106,0x694c5f73,0x7261656e,0x6d616c43, + 0x00000070,0x00080005,0x00000111,0x645f7772,0x636f7369,0x73756c63,0x5f6e6f69,0x6b73616d, + 0x00000000,0x00050005,0x00000118,0x53785066,0x6c706d61,0x00000065,0x00040005,0x00000121, + 0x61746164,0x00000000,0x00040005,0x00000127,0x46785066,0x00636172,0x00040005,0x00000128, + 0x61726170,0x0000006d,0x00070005,0x00000156,0x69766564,0x6f546563,0x77656956,0x74706544, + 0x00000068,0x00070005,0x0000016e,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00030005,0x00000170,0x0000005a,0x00040005,0x00000171,0x61726170,0x0000006d,0x00040005, + 0x00000174,0x63644e66,0x00736f50,0x00040005,0x00000177,0x61726170,0x0000006d,0x00040005, + 0x00000178,0x61726170,0x0000006d,0x00030005,0x0000017b,0x00000058,0x00030005,0x00000184, + 0x00000059,0x00040005,0x000001ce,0x61726170,0x0000006d,0x00040005,0x000001ea,0x61726170, + 0x0000006d,0x00040005,0x000001f0,0x61726170,0x0000006d,0x00060005,0x000001f9,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000001fa,0x61726170,0x0000006d,0x00040005, + 0x000001fc,0x61726170,0x0000006d,0x00040005,0x000001fe,0x6d755366,0x00000000,0x00040005, + 0x000001ff,0x6c6f4366,0x0000726f,0x00060005,0x00000202,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x0000020a,0x66664f69,0x00746573,0x00050005,0x0000020e,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x00000213,0x61726170,0x0000006d,0x00040005,0x00000215, + 0x61726170,0x0000006d,0x00040005,0x00000219,0x6d615366,0x00656c70,0x00040005,0x0000021c, + 0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d,0x00060005,0x0000021f, + 0x69725066,0x7469726f,0x63614679,0x00726f74,0x00060005,0x00000222,0x6c615666,0x764d6469, + 0x74636146,0x0000726f,0x00060005,0x00000227,0x6d615366,0x57656c70,0x68676965,0x00000074, + 0x00050005,0x00000243,0x53785069,0x6c706d61,0x00000065,0x00070005,0x00000249,0x6b636170, + 0x61476465,0x6946656d,0x4d646c65,0x00000076,0x00040005,0x0000024a,0x61726170,0x0000006d, + 0x00040005,0x0000024d,0x61726170,0x0000006d,0x00040005,0x0000024f,0x61726170,0x0000006d, + 0x00050005,0x00000257,0x78655469,0x657a6953,0x00000000,0x00070005,0x00000259,0x506e4966, + 0x746e6961,0x65566465,0x726f7463,0x00000000,0x00050005,0x0000025a,0x70694d69,0x6576654c, + 0x0000006c,0x00040005,0x0000026e,0x61726170,0x0000006d,0x00040005,0x00000282,0x61726170, + 0x0000006d,0x00040005,0x0000028b,0x61726170,0x0000006d,0x00030005,0x00000294,0x00765566, + 0x00070005,0x0000029c,0x73694466,0x74726f74,0x466e6f69,0x646c6569,0x00007655,0x00040005, + 0x0000029d,0x61726170,0x0000006d,0x00080005,0x000002a0,0x73694469,0x74726f74,0x506e6f69, + 0x6c657869,0x7366664f,0x00007465,0x00040005,0x000002ad,0x61726170,0x0000006d,0x00040005, + 0x000002b8,0x61726170,0x0000006d,0x00080005,0x000002bd,0x72754366,0x746e6572,0x74706544, + 0x65695668,0x61705377,0x00006563,0x00040005,0x000002be,0x61726170,0x0000006d,0x00060005, + 0x000002c1,0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000002c3,0x61726170, + 0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00050005,0x000002c7,0x6c694466, + 0x64657461,0x006d7553,0x00040005,0x000002c8,0x70654466,0x00006874,0x00050005,0x000002c9, + 0x69655766,0x53746867,0x00006d75,0x00060005,0x000002ca,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x000002d2,0x66664f69,0x00746573,0x00050005,0x000002d6,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x000002dc,0x61726170,0x0000006d,0x00040005,0x000002de, + 0x61726170,0x0000006d,0x00040005,0x000002e2,0x69655766,0x00746867,0x00070005,0x000002eb, + 0x65725066,0x70654476,0x61536874,0x656c706d,0x00000000,0x00040005,0x000002ec,0x61726170, + 0x0000006d,0x00040005,0x000002ee,0x61726170,0x0000006d,0x00090005,0x000002f1,0x65725066, + 0x61654e76,0x74736572,0x74706544,0x65695668,0x61705377,0x00006563,0x00040005,0x000002f2, + 0x61726170,0x0000006d,0x00050005,0x000002f5,0x70654466,0x69446874,0x00006666,0x00050005, + 0x000002fd,0x616c5066,0x6544656e,0x00687470,0x00040005,0x000002fe,0x61726170,0x0000006d, + 0x00040005,0x00000300,0x61726170,0x0000006d,0x00040005,0x00000304,0x6e654366,0x00726574, + 0x00040005,0x0000030a,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170,0x0000006d, + 0x00040005,0x0000030c,0x61726170,0x0000006d,0x00040005,0x0000030f,0x726f4366,0x0072656e, + 0x00040005,0x00000311,0x61726170,0x0000006d,0x00040005,0x00000312,0x61726170,0x0000006d, + 0x00040005,0x00000313,0x61726170,0x0000006d,0x00070005,0x00000316,0x6c614866,0x65695666, + 0x726f7077,0x64695774,0x00006874,0x00060005,0x0000031a,0x70654466,0x68546874,0x68736572, + 0x00646c6f,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00040005,0x0000031d,0x61726170, + 0x0000006d,0x00040005,0x00000320,0x766f664b,0x00000000,0x00090005,0x00000326,0x71655266, + 0x65726975,0x70654464,0x65536874,0x61726170,0x6e6f6974,0x00000000,0x00070005,0x0000032e, + 0x73655266,0x74756c6f,0x466e6f69,0x6f746361,0x00000072,0x00040005,0x00000334,0x61726170, + 0x0000006d,0x00040005,0x00000336,0x776f5066,0x00007265,0x00040005,0x00000338,0x61726170, + 0x0000006d,0x00040005,0x00000339,0x61726170,0x0000006d,0x00040005,0x0000033a,0x61726170, + 0x0000006d,0x00040005,0x00000354,0x61726170,0x0000006d,0x00060005,0x0000035a,0x6c694466, + 0x64657461,0x74706544,0x00000068,0x00040005,0x0000035b,0x61726170,0x0000006d,0x00050005, + 0x0000035e,0x70654466,0x76556874,0x00000000,0x00080005,0x00000366,0x72754366,0x746e6572, + 0x74706544,0x65695668,0x61705377,0x00006563,0x00040005,0x00000367,0x61726170,0x0000006d, + 0x00040005,0x0000036a,0x656d6167,0x0000764d,0x00040005,0x0000036b,0x61726170,0x0000006d, + 0x00040005,0x0000036d,0x61726170,0x0000006d,0x000b0005,0x00000370,0x70654466,0x6c436874, + 0x6e497069,0x70726574,0x74616c6f,0x6f546465,0x76657250,0x73756f69,0x00000000,0x00040005, + 0x00000375,0x61726170,0x0000006d,0x00040005,0x00000376,0x61726170,0x0000006d,0x00040005, + 0x00000377,0x61726170,0x0000006d,0x000a0005,0x0000037b,0x70654466,0x6c436874,0x6e497069, + 0x70726574,0x74616c6f,0x6f546465,0x72727543,0x00746e65,0x00040005,0x00000380,0x61726170, + 0x0000006d,0x00040005,0x00000381,0x61726170,0x0000006d,0x00040005,0x00000382,0x61726170, + 0x0000006d,0x00070005,0x00000386,0x73694466,0x6c63636f,0x6f697375,0x73614d6e,0x0000006b, + 0x00040005,0x0000038b,0x61726170,0x0000006d,0x00070005,0x00000391,0x63725366,0x69746f4d, + 0x65566e6f,0x726f7463,0x00000000,0x00070005,0x00000395,0x6d615369,0x50656c70,0x7250736f, + 0x6f697665,0x00007375,0x00040005,0x000003a0,0x61726170,0x0000006d,0x00040005,0x000003a2, + 0x61726170,0x0000006d,0x00040005,0x000003a7,0x61726170,0x0000006d,0x00070005,0x000003aa, + 0x6d615369,0x50656c70,0x7543736f,0x6e657272,0x00000074,0x00040005,0x000003b5,0x61726170, + 0x0000006d,0x00040005,0x000003b7,0x61726170,0x0000006d,0x00040005,0x000003bc,0x61726170, + 0x0000006d,0x00040005,0x000003bf,0x61726170,0x0000006d,0x00040005,0x000003c1,0x61726170, + 0x0000006d,0x00080005,0x000003c6,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x00000044,0x00040005,0x000003ca,0x61726170,0x0000006d,0x00030047,0x000000bb,0x00000002, + 0x00050048,0x000000bb,0x00000000,0x00000023,0x00000000,0x00050048,0x000000bb,0x00000001, + 0x00000023,0x00000008,0x00050048,0x000000bb,0x00000002,0x00000023,0x00000010,0x00050048, + 0x000000bb,0x00000003,0x00000023,0x00000018,0x00050048,0x000000bb,0x00000004,0x00000023, + 0x0000001c,0x00050048,0x000000bb,0x00000005,0x00000023,0x00000020,0x00050048,0x000000bb, + 0x00000006,0x00000023,0x00000028,0x00050048,0x000000bb,0x00000007,0x00000023,0x0000002c, + 0x00050048,0x000000bb,0x00000008,0x00000023,0x00000030,0x00050048,0x000000bb,0x00000009, + 0x00000023,0x00000040,0x00050048,0x000000bb,0x0000000a,0x00000023,0x00000044,0x00050048, + 0x000000bb,0x0000000b,0x00000023,0x00000048,0x00050048,0x000000bb,0x0000000c,0x00000023, + 0x00000050,0x00050048,0x000000bb,0x0000000d,0x00000023,0x00000058,0x00050048,0x000000bb, + 0x0000000e,0x00000023,0x0000005c,0x00050048,0x000000bb,0x0000000f,0x00000023,0x00000060, + 0x00050048,0x000000bb,0x00000010,0x00000023,0x00000068,0x00050048,0x000000bb,0x00000011, + 0x00000023,0x0000006c,0x00050048,0x000000bb,0x00000012,0x00000023,0x00000070,0x00050048, + 0x000000bb,0x00000013,0x00000023,0x00000078,0x00050048,0x000000bb,0x00000014,0x00000023, + 0x00000080,0x00050048,0x000000bb,0x00000015,0x00000023,0x0000008c,0x00050048,0x000000bb, + 0x00000016,0x00000023,0x00000090,0x00050048,0x000000bb,0x00000017,0x00000023,0x00000098, + 0x00050048,0x000000bb,0x00000018,0x00000023,0x0000009c,0x00050048,0x000000bb,0x00000019, + 0x00000023,0x000000a0,0x00050048,0x000000bb,0x0000001a,0x00000023,0x000000a8,0x00040047, + 0x000000bd,0x00000021,0x00000008,0x00040047,0x000000bd,0x00000022,0x00000000,0x00040047, + 0x000000cc,0x00000021,0x00000003,0x00040047,0x000000cc,0x00000022,0x00000000,0x00040047, + 0x000000d6,0x00000021,0x00000002,0x00040047,0x000000d6,0x00000022,0x00000000,0x00040047, + 0x000000e0,0x00000021,0x00000004,0x00040047,0x000000e0,0x00000022,0x00000000,0x00040047, + 0x000000ea,0x00000021,0x00000000,0x00040047,0x000000ea,0x00000022,0x00000000,0x00040047, + 0x000000f0,0x00000021,0x00000001,0x00040047,0x000000f0,0x00000022,0x00000000,0x00040047, + 0x000000fa,0x00000021,0x00000005,0x00040047,0x000000fa,0x00000022,0x00000000,0x00040047, + 0x00000102,0x00000021,0x00000006,0x00040047,0x00000102,0x00000022,0x00000000,0x00040047, + 0x00000106,0x00000021,0x000003e8,0x00040047,0x00000106,0x00000022,0x00000000,0x00040047, + 0x00000111,0x00000021,0x00000007,0x00040047,0x00000111,0x00000022,0x00000000,0x00040047, + 0x000003c6,0x0000000b,0x0000001c,0x00040047,0x000003d5,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040020,0x0000000d,0x00000007,0x00000008,0x00040017, + 0x0000000e,0x00000008,0x00000002,0x00040021,0x0000000f,0x0000000e,0x0000000d,0x00060021, + 0x00000013,0x00000008,0x0000000d,0x0000000d,0x0000000d,0x00040021,0x00000019,0x00000008, + 0x0000000d,0x00040020,0x0000001d,0x00000007,0x0000000e,0x00040021,0x0000001e,0x0000000e, + 0x0000001d,0x00040021,0x00000022,0x0000000e,0x00000007,0x00050021,0x00000026,0x00000008, + 0x0000000d,0x0000000d,0x00040015,0x0000002b,0x00000020,0x00000001,0x00040017,0x0000002c, + 0x0000002b,0x00000002,0x00030021,0x0000002d,0x0000002c,0x00040017,0x00000030,0x00000008, + 0x00000004,0x00030021,0x00000031,0x00000030,0x00040020,0x00000034,0x00000007,0x0000002c, + 0x00040021,0x00000035,0x00000008,0x00000034,0x00040017,0x0000003f,0x00000006,0x00000002, + 0x00040021,0x00000040,0x0000003f,0x00000034,0x00040020,0x00000044,0x00000007,0x0000002b, + 0x00040020,0x00000045,0x00000007,0x0000003f,0x00050021,0x00000046,0x00000030,0x00000044, + 0x00000045,0x00050021,0x0000004e,0x00000002,0x00000034,0x0000001d,0x0004002b,0x00000006, + 0x00000053,0x00000004,0x0004001c,0x00000054,0x0000002c,0x00000053,0x0004001c,0x00000055, + 0x00000008,0x00000053,0x0005001e,0x00000056,0x00000054,0x00000055,0x0000002c,0x00050021, + 0x00000057,0x00000056,0x0000001d,0x00000034,0x00050021,0x0000005f,0x0000000e,0x0000001d, + 0x00000034,0x00040017,0x00000064,0x00000008,0x00000003,0x00060021,0x00000065,0x00000064, + 0x00000034,0x00000034,0x0000000d,0x00020014,0x0000006b,0x00050021,0x0000006c,0x0000006b, + 0x00000034,0x00000034,0x00040021,0x00000071,0x0000006b,0x0000001d,0x00040021,0x00000075, + 0x0000006b,0x00000007,0x000c001e,0x00000079,0x0000000e,0x00000008,0x00000008,0x0000006b, + 0x0000006b,0x0000006b,0x0000006b,0x00000008,0x0000006b,0x0000006b,0x00040020,0x0000007a, + 0x00000007,0x00000079,0x00050021,0x0000007b,0x00000002,0x00000045,0x0000007a,0x00060021, + 0x00000080,0x00000030,0x0000001d,0x0000002b,0x0000002c,0x00050021,0x00000086,0x00000002, + 0x0000001d,0x0000007a,0x00050021,0x0000008b,0x00000008,0x00000007,0x00000034,0x00060021, + 0x00000090,0x00000008,0x00000007,0x0000001d,0x0000000d,0x00040021,0x00000096,0x00000002, + 0x00000034,0x0004002b,0x00000008,0x000000a9,0x00000000,0x0004002b,0x00000008,0x000000aa, + 0x3f800000,0x001d001e,0x000000bb,0x0000002c,0x0000002c,0x0000000e,0x00000008,0x00000008, + 0x0000002c,0x0000002b,0x0000002b,0x00000030,0x00000008,0x0000002b,0x0000002c,0x0000000e, + 0x0000002b,0x00000006,0x0000002c,0x0000002b,0x0000002b,0x0000002c,0x0000002c,0x00000064, + 0x00000006,0x0000000e,0x00000008,0x0000002b,0x0000000e,0x0000000e,0x00040020,0x000000bc, + 0x00000002,0x000000bb,0x0004003b,0x000000bc,0x000000bd,0x00000002,0x0004002b,0x0000002b, + 0x000000be,0x00000000,0x00040020,0x000000bf,0x00000002,0x0000002c,0x0004002b,0x0000002b, + 0x000000c4,0x00000008,0x00040020,0x000000c5,0x00000002,0x00000030,0x00090019,0x000000ca, + 0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x000000cb,0x00000000,0x000000ca,0x0004003b,0x000000cb,0x000000cc,0x00000000,0x0004002b, + 0x00000006,0x000000d0,0x00000000,0x00090019,0x000000d4,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000d5,0x00000000,0x000000d4, + 0x0004003b,0x000000d5,0x000000d6,0x00000000,0x00040017,0x000000d9,0x00000006,0x00000004, + 0x0004003b,0x000000d5,0x000000e0,0x00000000,0x0004003b,0x000000d5,0x000000ea,0x00000000, + 0x0004003b,0x000000d5,0x000000f0,0x00000000,0x0004003b,0x000000cb,0x000000fa,0x00000000, + 0x0004003b,0x000000cb,0x00000102,0x00000000,0x0002001a,0x00000104,0x00040020,0x00000105, + 0x00000000,0x00000104,0x0004003b,0x00000105,0x00000106,0x00000000,0x0003001b,0x00000108, + 0x000000ca,0x00090019,0x0000010f,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000000d,0x00040020,0x00000110,0x00000000,0x0000010f,0x0004003b,0x00000110, + 0x00000111,0x00000000,0x0004002b,0x00000008,0x0000011d,0x3f000000,0x0005002c,0x0000000e, + 0x0000011e,0x0000011d,0x0000011d,0x00040020,0x00000120,0x00000007,0x00000056,0x0004002b, + 0x0000002b,0x00000122,0x00000002,0x0005002c,0x0000002c,0x0000012b,0x000000be,0x000000be, + 0x0004002b,0x0000002b,0x0000012d,0x00000001,0x0005002c,0x0000002c,0x0000012e,0x0000012d, + 0x000000be,0x0005002c,0x0000002c,0x00000130,0x000000be,0x0000012d,0x0004002b,0x0000002b, + 0x00000132,0x00000003,0x0005002c,0x0000002c,0x00000133,0x0000012d,0x0000012d,0x0004002b, + 0x00000006,0x00000138,0x00000001,0x00040020,0x00000155,0x00000007,0x00000030,0x0004002b, + 0x00000008,0x00000165,0x40000000,0x0004002b,0x00000008,0x00000166,0xc0000000,0x0005002c, + 0x0000000e,0x00000167,0x00000165,0x00000166,0x0004002b,0x00000008,0x00000169,0xbf800000, + 0x0005002c,0x0000000e,0x0000016a,0x00000169,0x000000aa,0x0004002b,0x00000006,0x0000017c, + 0x00000002,0x0004002b,0x00000006,0x00000185,0x00000003,0x00040017,0x00000197,0x0000006b, + 0x00000002,0x0004002b,0x00000006,0x000001b4,0x80000000,0x0004002b,0x00000006,0x000001bb, + 0x00000015,0x0004002b,0x00000006,0x000001bd,0x000003ff,0x0004002b,0x00000008,0x000001c0, + 0x447fc000,0x0004002b,0x00000006,0x000001c5,0x00000010,0x0004002b,0x00000006,0x000001c7, + 0x0000001f,0x0004002b,0x00000008,0x000001ca,0x41f80000,0x0004002b,0x0000002b,0x000001cd, + 0x00000004,0x00040020,0x000001d2,0x00000007,0x0000006b,0x0004002b,0x0000002b,0x000001d8, + 0x00000005,0x0004002b,0x0000002b,0x000001f6,0x00000006,0x0003002a,0x0000006b,0x000001f7, + 0x0007002c,0x00000030,0x00000200,0x000000a9,0x000000a9,0x000000a9,0x000000a9,0x0004002b, + 0x0000002b,0x00000261,0x0000000b,0x00030029,0x0000006b,0x0000027c,0x0004002b,0x0000002b, + 0x00000286,0x00000009,0x0004002b,0x0000002b,0x0000028f,0x00000007,0x0004002b,0x00000008, + 0x000002e7,0x3a83126f,0x00040020,0x00000303,0x00000007,0x00000064,0x0004002b,0x00000008, + 0x00000327,0x3765d90d,0x0004002b,0x00000008,0x00000332,0x4509ae84,0x0004002b,0x00000008, + 0x00000337,0x40400000,0x0005002c,0x0000000e,0x0000038e,0x000000a9,0x000000a9,0x0005002c, + 0x0000000e,0x0000038f,0x000000aa,0x000000aa,0x00040017,0x000003c4,0x00000006,0x00000003, + 0x00040020,0x000003c5,0x00000001,0x000003c4,0x0004003b,0x000003c5,0x000003c6,0x00000001, + 0x0004002b,0x00000008,0x000003cc,0x387fda40,0x0004002b,0x00000008,0x000003cd,0x477fe000, + 0x0004002b,0x00000008,0x000003ce,0x37801002,0x0004002b,0x00000008,0x000003cf,0x7f7fffff, + 0x0004002b,0x00000008,0x000003d0,0x00800000,0x0004002b,0x00000006,0x000003d1,0x00000020, + 0x0004002b,0x00000006,0x000003d2,0x00000005,0x0004002b,0x00000006,0x000003d3,0x0000000a, + 0x0004002b,0x00000006,0x000003d4,0x00000008,0x0006002c,0x000003c4,0x000003d5,0x000003d4, + 0x000003d4,0x00000138,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000034,0x000003ca,0x00000007,0x0004003d,0x000003c4,0x000003c7, + 0x000003c6,0x0007004f,0x0000003f,0x000003c8,0x000003c7,0x000003c7,0x00000000,0x00000001, + 0x0004007c,0x0000002c,0x000003c9,0x000003c8,0x0003003e,0x000003ca,0x000003c9,0x00050039, + 0x00000002,0x000003cb,0x00000098,0x000003ca,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003d,0x00000006,0x0000009a,0x0000000a,0x0004007c,0x00000008,0x0000009b,0x0000009a, + 0x000200fe,0x0000009b,0x00010038,0x00050036,0x0000000e,0x00000011,0x00000000,0x0000000f, + 0x00030037,0x0000000d,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000008,0x0000009e, + 0x00000010,0x00050050,0x0000000e,0x0000009f,0x0000009e,0x0000009e,0x000200fe,0x0000009f, + 0x00010038,0x00050036,0x00000008,0x00000017,0x00000000,0x00000013,0x00030037,0x0000000d, + 0x00000014,0x00030037,0x0000000d,0x00000015,0x00030037,0x0000000d,0x00000016,0x000200f8, + 0x00000018,0x0004003d,0x00000008,0x000000a2,0x00000014,0x0004003d,0x00000008,0x000000a3, + 0x00000015,0x0004003d,0x00000008,0x000000a4,0x00000016,0x0008000c,0x00000008,0x000000a5, + 0x00000001,0x0000002e,0x000000a2,0x000000a3,0x000000a4,0x000200fe,0x000000a5,0x00010038, + 0x00050036,0x00000008,0x0000001b,0x00000000,0x00000019,0x00030037,0x0000000d,0x0000001a, + 0x000200f8,0x0000001c,0x0004003d,0x00000008,0x000000a8,0x0000001a,0x0008000c,0x00000008, + 0x000000ab,0x00000001,0x0000002b,0x000000a8,0x000000a9,0x000000aa,0x000200fe,0x000000ab, + 0x00010038,0x00050036,0x0000000e,0x00000020,0x00000000,0x0000001e,0x00030037,0x0000001d, + 0x0000001f,0x000200f8,0x00000021,0x0004003d,0x0000000e,0x000000ae,0x0000001f,0x0006000c, + 0x0000000e,0x000000af,0x00000001,0x0000000a,0x000000ae,0x000200fe,0x000000af,0x00010038, + 0x00050036,0x0000000e,0x00000024,0x00000000,0x00000022,0x00030037,0x00000007,0x00000023, + 0x000200f8,0x00000025,0x0004003d,0x00000006,0x000000b2,0x00000023,0x0006000c,0x0000000e, + 0x000000b3,0x00000001,0x0000003e,0x000000b2,0x000200fe,0x000000b3,0x00010038,0x00050036, + 0x00000008,0x00000029,0x00000000,0x00000026,0x00030037,0x0000000d,0x00000027,0x00030037, + 0x0000000d,0x00000028,0x000200f8,0x0000002a,0x0004003d,0x00000008,0x000000b6,0x00000027, + 0x0004003d,0x00000008,0x000000b7,0x00000028,0x0007000c,0x00000008,0x000000b8,0x00000001, + 0x00000025,0x000000b6,0x000000b7,0x000200fe,0x000000b8,0x00010038,0x00050036,0x0000002c, + 0x0000002e,0x00000000,0x0000002d,0x000200f8,0x0000002f,0x00050041,0x000000bf,0x000000c0, + 0x000000bd,0x000000be,0x0004003d,0x0000002c,0x000000c1,0x000000c0,0x000200fe,0x000000c1, + 0x00010038,0x00050036,0x00000030,0x00000032,0x00000000,0x00000031,0x000200f8,0x00000033, + 0x00050041,0x000000c5,0x000000c6,0x000000bd,0x000000c4,0x0004003d,0x00000030,0x000000c7, + 0x000000c6,0x000200fe,0x000000c7,0x00010038,0x00050036,0x00000008,0x00000037,0x00000000, + 0x00000035,0x00030037,0x00000034,0x00000036,0x000200f8,0x00000038,0x0004003d,0x000000ca, + 0x000000cd,0x000000cc,0x0004003d,0x0000002c,0x000000ce,0x00000036,0x0007005f,0x00000030, + 0x000000cf,0x000000cd,0x000000ce,0x00000002,0x000000be,0x00050051,0x00000008,0x000000d1, + 0x000000cf,0x00000000,0x000200fe,0x000000d1,0x00010038,0x00050036,0x00000008,0x0000003a, + 0x00000000,0x00000035,0x00030037,0x00000034,0x00000039,0x000200f8,0x0000003b,0x0004003b, + 0x00000007,0x000000db,0x00000007,0x0004003d,0x000000d4,0x000000d7,0x000000d6,0x0004003d, + 0x0000002c,0x000000d8,0x00000039,0x0007005f,0x000000d9,0x000000da,0x000000d7,0x000000d8, + 0x00000002,0x000000be,0x00050051,0x00000006,0x000000dc,0x000000da,0x00000000,0x0003003e, + 0x000000db,0x000000dc,0x00050039,0x00000008,0x000000dd,0x0000000b,0x000000db,0x000200fe, + 0x000000dd,0x00010038,0x00050036,0x00000008,0x0000003d,0x00000000,0x00000035,0x00030037, + 0x00000034,0x0000003c,0x000200f8,0x0000003e,0x0004003b,0x00000007,0x000000e4,0x00000007, + 0x0004003d,0x000000d4,0x000000e1,0x000000e0,0x0004003d,0x0000002c,0x000000e2,0x0000003c, + 0x0007005f,0x000000d9,0x000000e3,0x000000e1,0x000000e2,0x00000002,0x000000be,0x00050051, + 0x00000006,0x000000e5,0x000000e3,0x00000000,0x0003003e,0x000000e4,0x000000e5,0x00050039, + 0x00000008,0x000000e6,0x0000000b,0x000000e4,0x000200fe,0x000000e6,0x00010038,0x00050036, + 0x0000003f,0x00000042,0x00000000,0x00000040,0x00030037,0x00000034,0x00000041,0x000200f8, + 0x00000043,0x0004003b,0x00000007,0x000000e9,0x00000007,0x0004003b,0x00000007,0x000000ef, + 0x00000007,0x0004003d,0x000000d4,0x000000eb,0x000000ea,0x0004003d,0x0000002c,0x000000ec, + 0x00000041,0x0007005f,0x000000d9,0x000000ed,0x000000eb,0x000000ec,0x00000002,0x000000be, + 0x00050051,0x00000006,0x000000ee,0x000000ed,0x00000000,0x0003003e,0x000000e9,0x000000ee, + 0x0004003d,0x000000d4,0x000000f1,0x000000f0,0x0004003d,0x0000002c,0x000000f2,0x00000041, + 0x0007005f,0x000000d9,0x000000f3,0x000000f1,0x000000f2,0x00000002,0x000000be,0x00050051, + 0x00000006,0x000000f4,0x000000f3,0x00000000,0x0003003e,0x000000ef,0x000000f4,0x0004003d, + 0x00000006,0x000000f5,0x000000e9,0x0004003d,0x00000006,0x000000f6,0x000000ef,0x00050050, + 0x0000003f,0x000000f7,0x000000f5,0x000000f6,0x000200fe,0x000000f7,0x00010038,0x00050036, + 0x00000030,0x00000049,0x00000000,0x00000046,0x00030037,0x00000044,0x00000047,0x00030037, + 0x00000045,0x00000048,0x000200f8,0x0000004a,0x0004003d,0x000000ca,0x000000fb,0x000000fa, + 0x0004003d,0x0000003f,0x000000fc,0x00000048,0x0004007c,0x0000002c,0x000000fd,0x000000fc, + 0x0004003d,0x0000002b,0x000000fe,0x00000047,0x0007005f,0x00000030,0x000000ff,0x000000fb, + 0x000000fd,0x00000002,0x000000fe,0x000200fe,0x000000ff,0x00010038,0x00050036,0x0000000e, + 0x0000004c,0x00000000,0x0000001e,0x00030037,0x0000001d,0x0000004b,0x000200f8,0x0000004d, + 0x0004003d,0x000000ca,0x00000103,0x00000102,0x0004003d,0x00000104,0x00000107,0x00000106, + 0x00050056,0x00000108,0x00000109,0x00000103,0x00000107,0x0004003d,0x0000000e,0x0000010a, + 0x0000004b,0x00070058,0x00000030,0x0000010b,0x00000109,0x0000010a,0x00000002,0x000000a9, + 0x0007004f,0x0000000e,0x0000010c,0x0000010b,0x0000010b,0x00000000,0x00000001,0x000200fe, + 0x0000010c,0x00010038,0x00050036,0x00000002,0x00000051,0x00000000,0x0000004e,0x00030037, + 0x00000034,0x0000004f,0x00030037,0x0000001d,0x00000050,0x000200f8,0x00000052,0x0004003d, + 0x0000010f,0x00000112,0x00000111,0x0004003d,0x0000002c,0x00000113,0x0000004f,0x0004003d, + 0x0000000e,0x00000114,0x00000050,0x00050051,0x00000008,0x00000115,0x00000114,0x00000000, + 0x00050051,0x00000008,0x00000116,0x00000114,0x00000001,0x00070050,0x00000030,0x00000117, + 0x00000115,0x00000116,0x000000a9,0x000000a9,0x00040063,0x00000112,0x00000113,0x00000117, + 0x000100fd,0x00010038,0x00050036,0x00000056,0x0000005a,0x00000000,0x00000057,0x00030037, + 0x0000001d,0x00000058,0x00030037,0x00000034,0x00000059,0x000200f8,0x0000005b,0x0004003b, + 0x0000001d,0x00000118,0x00000007,0x0004003b,0x00000120,0x00000121,0x00000007,0x0004003b, + 0x0000001d,0x00000127,0x00000007,0x0004003b,0x0000001d,0x00000128,0x00000007,0x0004003d, + 0x0000000e,0x00000119,0x00000058,0x0004003d,0x0000002c,0x0000011a,0x00000059,0x0004006f, + 0x0000000e,0x0000011b,0x0000011a,0x00050085,0x0000000e,0x0000011c,0x00000119,0x0000011b, + 0x00050083,0x0000000e,0x0000011f,0x0000011c,0x0000011e,0x0003003e,0x00000118,0x0000011f, + 0x0004003d,0x0000000e,0x00000123,0x00000118,0x0006000c,0x0000000e,0x00000124,0x00000001, + 0x00000008,0x00000123,0x0004006e,0x0000002c,0x00000125,0x00000124,0x00050041,0x00000034, + 0x00000126,0x00000121,0x00000122,0x0003003e,0x00000126,0x00000125,0x0004003d,0x0000000e, + 0x00000129,0x00000118,0x0003003e,0x00000128,0x00000129,0x00050039,0x0000000e,0x0000012a, + 0x00000020,0x00000128,0x0003003e,0x00000127,0x0000012a,0x00060041,0x00000034,0x0000012c, + 0x00000121,0x000000be,0x000000be,0x0003003e,0x0000012c,0x0000012b,0x00060041,0x00000034, + 0x0000012f,0x00000121,0x000000be,0x0000012d,0x0003003e,0x0000012f,0x0000012e,0x00060041, + 0x00000034,0x00000131,0x00000121,0x000000be,0x00000122,0x0003003e,0x00000131,0x00000130, + 0x00060041,0x00000034,0x00000134,0x00000121,0x000000be,0x00000132,0x0003003e,0x00000134, + 0x00000133,0x00050041,0x0000000d,0x00000135,0x00000127,0x000000d0,0x0004003d,0x00000008, + 0x00000136,0x00000135,0x00050083,0x00000008,0x00000137,0x000000aa,0x00000136,0x00050041, + 0x0000000d,0x00000139,0x00000127,0x00000138,0x0004003d,0x00000008,0x0000013a,0x00000139, + 0x00050083,0x00000008,0x0000013b,0x000000aa,0x0000013a,0x00050085,0x00000008,0x0000013c, + 0x00000137,0x0000013b,0x00060041,0x0000000d,0x0000013d,0x00000121,0x0000012d,0x000000be, + 0x0003003e,0x0000013d,0x0000013c,0x00050041,0x0000000d,0x0000013e,0x00000127,0x000000d0, + 0x0004003d,0x00000008,0x0000013f,0x0000013e,0x00050041,0x0000000d,0x00000140,0x00000127, + 0x00000138,0x0004003d,0x00000008,0x00000141,0x00000140,0x00050083,0x00000008,0x00000142, + 0x000000aa,0x00000141,0x00050085,0x00000008,0x00000143,0x0000013f,0x00000142,0x00060041, + 0x0000000d,0x00000144,0x00000121,0x0000012d,0x0000012d,0x0003003e,0x00000144,0x00000143, + 0x00050041,0x0000000d,0x00000145,0x00000127,0x000000d0,0x0004003d,0x00000008,0x00000146, + 0x00000145,0x00050083,0x00000008,0x00000147,0x000000aa,0x00000146,0x00050041,0x0000000d, + 0x00000148,0x00000127,0x00000138,0x0004003d,0x00000008,0x00000149,0x00000148,0x00050085, + 0x00000008,0x0000014a,0x00000147,0x00000149,0x00060041,0x0000000d,0x0000014b,0x00000121, + 0x0000012d,0x00000122,0x0003003e,0x0000014b,0x0000014a,0x00050041,0x0000000d,0x0000014c, + 0x00000127,0x000000d0,0x0004003d,0x00000008,0x0000014d,0x0000014c,0x00050041,0x0000000d, + 0x0000014e,0x00000127,0x00000138,0x0004003d,0x00000008,0x0000014f,0x0000014e,0x00050085, + 0x00000008,0x00000150,0x0000014d,0x0000014f,0x00060041,0x0000000d,0x00000151,0x00000121, + 0x0000012d,0x00000132,0x0003003e,0x00000151,0x00000150,0x0004003d,0x00000056,0x00000152, + 0x00000121,0x000200fe,0x00000152,0x00010038,0x00050036,0x00000008,0x0000005d,0x00000000, + 0x00000019,0x00030037,0x0000000d,0x0000005c,0x000200f8,0x0000005e,0x0004003b,0x00000155, + 0x00000156,0x00000007,0x00040039,0x00000030,0x00000157,0x00000032,0x0003003e,0x00000156, + 0x00000157,0x00050041,0x0000000d,0x00000158,0x00000156,0x00000138,0x0004003d,0x00000008, + 0x00000159,0x00000158,0x0004003d,0x00000008,0x0000015a,0x0000005c,0x00050041,0x0000000d, + 0x0000015b,0x00000156,0x000000d0,0x0004003d,0x00000008,0x0000015c,0x0000015b,0x00050083, + 0x00000008,0x0000015d,0x0000015a,0x0000015c,0x00050088,0x00000008,0x0000015e,0x00000159, + 0x0000015d,0x000200fe,0x0000015e,0x00010038,0x00050036,0x0000000e,0x00000062,0x00000000, + 0x0000005f,0x00030037,0x0000001d,0x00000060,0x00030037,0x00000034,0x00000061,0x000200f8, + 0x00000063,0x0004003d,0x0000000e,0x00000161,0x00000060,0x0004003d,0x0000002c,0x00000162, + 0x00000061,0x0004006f,0x0000000e,0x00000163,0x00000162,0x00050088,0x0000000e,0x00000164, + 0x00000161,0x00000163,0x00050085,0x0000000e,0x00000168,0x00000164,0x00000167,0x00050081, + 0x0000000e,0x0000016b,0x00000168,0x0000016a,0x000200fe,0x0000016b,0x00010038,0x00050036, + 0x00000064,0x00000069,0x00000000,0x00000065,0x00030037,0x00000034,0x00000066,0x00030037, + 0x00000034,0x00000067,0x00030037,0x0000000d,0x00000068,0x000200f8,0x0000006a,0x0004003b, + 0x00000155,0x0000016e,0x00000007,0x0004003b,0x0000000d,0x00000170,0x00000007,0x0004003b, + 0x0000000d,0x00000171,0x00000007,0x0004003b,0x0000001d,0x00000174,0x00000007,0x0004003b, + 0x0000001d,0x00000177,0x00000007,0x0004003b,0x00000034,0x00000178,0x00000007,0x0004003b, + 0x0000000d,0x0000017b,0x00000007,0x0004003b,0x0000000d,0x00000184,0x00000007,0x00040039, + 0x00000030,0x0000016f,0x00000032,0x0003003e,0x0000016e,0x0000016f,0x0004003d,0x00000008, + 0x00000172,0x00000068,0x0003003e,0x00000171,0x00000172,0x00050039,0x00000008,0x00000173, + 0x0000005d,0x00000171,0x0003003e,0x00000170,0x00000173,0x0004003d,0x0000002c,0x00000175, + 0x00000066,0x0004006f,0x0000000e,0x00000176,0x00000175,0x0003003e,0x00000177,0x00000176, + 0x0004003d,0x0000002c,0x00000179,0x00000067,0x0003003e,0x00000178,0x00000179,0x00060039, + 0x0000000e,0x0000017a,0x00000062,0x00000177,0x00000178,0x0003003e,0x00000174,0x0000017a, + 0x00050041,0x0000000d,0x0000017d,0x0000016e,0x0000017c,0x0004003d,0x00000008,0x0000017e, + 0x0000017d,0x00050041,0x0000000d,0x0000017f,0x00000174,0x000000d0,0x0004003d,0x00000008, + 0x00000180,0x0000017f,0x00050085,0x00000008,0x00000181,0x0000017e,0x00000180,0x0004003d, + 0x00000008,0x00000182,0x00000170,0x00050085,0x00000008,0x00000183,0x00000181,0x00000182, + 0x0003003e,0x0000017b,0x00000183,0x00050041,0x0000000d,0x00000186,0x0000016e,0x00000185, + 0x0004003d,0x00000008,0x00000187,0x00000186,0x00050041,0x0000000d,0x00000188,0x00000174, + 0x00000138,0x0004003d,0x00000008,0x00000189,0x00000188,0x00050085,0x00000008,0x0000018a, + 0x00000187,0x00000189,0x0004003d,0x00000008,0x0000018b,0x00000170,0x00050085,0x00000008, + 0x0000018c,0x0000018a,0x0000018b,0x0003003e,0x00000184,0x0000018c,0x0004003d,0x00000008, + 0x0000018d,0x0000017b,0x0004003d,0x00000008,0x0000018e,0x00000184,0x0004003d,0x00000008, + 0x0000018f,0x00000170,0x00060050,0x00000064,0x00000190,0x0000018d,0x0000018e,0x0000018f, + 0x000200fe,0x00000190,0x00010038,0x00050036,0x0000006b,0x0000006f,0x00000000,0x0000006c, + 0x00030037,0x00000034,0x0000006d,0x00030037,0x00000034,0x0000006e,0x000200f8,0x00000070, + 0x0004003d,0x0000002c,0x00000193,0x0000006d,0x0004007c,0x0000003f,0x00000194,0x00000193, + 0x0004003d,0x0000002c,0x00000195,0x0000006e,0x0004007c,0x0000003f,0x00000196,0x00000195, + 0x000500b0,0x00000197,0x00000198,0x00000194,0x00000196,0x0004009b,0x0000006b,0x00000199, + 0x00000198,0x000200fe,0x00000199,0x00010038,0x00050036,0x0000006b,0x00000073,0x00000000, + 0x00000071,0x00030037,0x0000001d,0x00000072,0x000200f8,0x00000074,0x00050041,0x0000000d, + 0x0000019c,0x00000072,0x000000d0,0x0004003d,0x00000008,0x0000019d,0x0000019c,0x000500ba, + 0x0000006b,0x0000019e,0x0000019d,0x000000a9,0x000300f7,0x000001a0,0x00000000,0x000400fa, + 0x0000019e,0x0000019f,0x000001a0,0x000200f8,0x0000019f,0x00050041,0x0000000d,0x000001a1, + 0x00000072,0x000000d0,0x0004003d,0x00000008,0x000001a2,0x000001a1,0x000500b8,0x0000006b, + 0x000001a3,0x000001a2,0x000000aa,0x000200f9,0x000001a0,0x000200f8,0x000001a0,0x000700f5, + 0x0000006b,0x000001a4,0x0000019e,0x00000074,0x000001a3,0x0000019f,0x000300f7,0x000001a6, + 0x00000000,0x000400fa,0x000001a4,0x000001a5,0x000001a6,0x000200f8,0x000001a5,0x00050041, + 0x0000000d,0x000001a7,0x00000072,0x00000138,0x0004003d,0x00000008,0x000001a8,0x000001a7, + 0x000500ba,0x0000006b,0x000001a9,0x000001a8,0x000000a9,0x000300f7,0x000001ab,0x00000000, + 0x000400fa,0x000001a9,0x000001aa,0x000001ab,0x000200f8,0x000001aa,0x00050041,0x0000000d, + 0x000001ac,0x00000072,0x00000138,0x0004003d,0x00000008,0x000001ad,0x000001ac,0x000500b8, + 0x0000006b,0x000001ae,0x000001ad,0x000000aa,0x000200f9,0x000001ab,0x000200f8,0x000001ab, + 0x000700f5,0x0000006b,0x000001af,0x000001a9,0x000001a5,0x000001ae,0x000001aa,0x000200f9, + 0x000001a6,0x000200f8,0x000001a6,0x000700f5,0x0000006b,0x000001b0,0x000001a4,0x000001a0, + 0x000001af,0x000001ab,0x000200fe,0x000001b0,0x00010038,0x00050036,0x0000006b,0x00000077, + 0x00000000,0x00000075,0x00030037,0x00000007,0x00000076,0x000200f8,0x00000078,0x0004003d, + 0x00000006,0x000001b3,0x00000076,0x000500c7,0x00000006,0x000001b5,0x000001b3,0x000001b4, + 0x000500ab,0x0000006b,0x000001b6,0x000001b5,0x000000d0,0x000200fe,0x000001b6,0x00010038, + 0x00050036,0x00000002,0x0000007e,0x00000000,0x0000007b,0x00030037,0x00000045,0x0000007c, + 0x00030037,0x0000007a,0x0000007d,0x000200f8,0x0000007f,0x0004003b,0x00000007,0x000001ce, + 0x00000007,0x0004003b,0x00000007,0x000001ea,0x00000007,0x0004003b,0x00000007,0x000001f0, + 0x00000007,0x00050041,0x00000007,0x000001b9,0x0000007c,0x000000d0,0x0004003d,0x00000006, + 0x000001ba,0x000001b9,0x000500c2,0x00000006,0x000001bc,0x000001ba,0x000001bb,0x000500c7, + 0x00000006,0x000001be,0x000001bc,0x000001bd,0x00040070,0x00000008,0x000001bf,0x000001be, + 0x00050088,0x00000008,0x000001c1,0x000001bf,0x000001c0,0x00050041,0x0000000d,0x000001c2, + 0x0000007d,0x0000012d,0x0003003e,0x000001c2,0x000001c1,0x00050041,0x00000007,0x000001c3, + 0x0000007c,0x000000d0,0x0004003d,0x00000006,0x000001c4,0x000001c3,0x000500c2,0x00000006, + 0x000001c6,0x000001c4,0x000001c5,0x000500c7,0x00000006,0x000001c8,0x000001c6,0x000001c7, + 0x00040070,0x00000008,0x000001c9,0x000001c8,0x00050088,0x00000008,0x000001cb,0x000001c9, + 0x000001ca,0x00050041,0x0000000d,0x000001cc,0x0000007d,0x00000122,0x0003003e,0x000001cc, + 0x000001cb,0x00050041,0x00000007,0x000001cf,0x0000007c,0x000000d0,0x0004003d,0x00000006, + 0x000001d0,0x000001cf,0x0003003e,0x000001ce,0x000001d0,0x00050039,0x0000006b,0x000001d1, + 0x00000077,0x000001ce,0x00050041,0x000001d2,0x000001d3,0x0000007d,0x000001cd,0x0003003e, + 0x000001d3,0x000001d1,0x00050041,0x0000000d,0x000001d4,0x0000007d,0x0000012d,0x0004003d, + 0x00000008,0x000001d5,0x000001d4,0x000500ba,0x0000006b,0x000001d6,0x000001d5,0x000000a9, + 0x00050041,0x000001d2,0x000001d7,0x0000007d,0x00000132,0x0003003e,0x000001d7,0x000001d6, + 0x00050041,0x000001d2,0x000001d9,0x0000007d,0x00000132,0x0004003d,0x0000006b,0x000001da, + 0x000001d9,0x000300f7,0x000001dc,0x00000000,0x000400fa,0x000001da,0x000001db,0x000001dc, + 0x000200f8,0x000001db,0x00050041,0x000001d2,0x000001dd,0x0000007d,0x000001cd,0x0004003d, + 0x0000006b,0x000001de,0x000001dd,0x000400a8,0x0000006b,0x000001df,0x000001de,0x000200f9, + 0x000001dc,0x000200f8,0x000001dc,0x000700f5,0x0000006b,0x000001e0,0x000001da,0x0000007f, + 0x000001df,0x000001db,0x00050041,0x000001d2,0x000001e1,0x0000007d,0x000001d8,0x0003003e, + 0x000001e1,0x000001e0,0x00050041,0x000001d2,0x000001e2,0x0000007d,0x000001d8,0x0004003d, + 0x0000006b,0x000001e3,0x000001e2,0x000300f7,0x000001e5,0x00000000,0x000400fa,0x000001e3, + 0x000001e4,0x000001e5,0x000200f8,0x000001e4,0x00050041,0x0000000d,0x000001e6,0x0000007d, + 0x0000012d,0x0004003d,0x00000008,0x000001e7,0x000001e6,0x00050083,0x00000008,0x000001e8, + 0x000000aa,0x000001e7,0x00050041,0x0000000d,0x000001e9,0x0000007d,0x0000012d,0x0003003e, + 0x000001e9,0x000001e8,0x000200f9,0x000001e5,0x000200f8,0x000001e5,0x00050041,0x00000007, + 0x000001eb,0x0000007c,0x000000d0,0x0004003d,0x00000006,0x000001ec,0x000001eb,0x0003003e, + 0x000001ea,0x000001ec,0x00050039,0x0000000e,0x000001ed,0x00000024,0x000001ea,0x00050051, + 0x00000008,0x000001ee,0x000001ed,0x00000000,0x00060041,0x0000000d,0x000001ef,0x0000007d, + 0x000000be,0x000000d0,0x0003003e,0x000001ef,0x000001ee,0x00050041,0x00000007,0x000001f1, + 0x0000007c,0x00000138,0x0004003d,0x00000006,0x000001f2,0x000001f1,0x0003003e,0x000001f0, + 0x000001f2,0x00050039,0x0000000e,0x000001f3,0x00000024,0x000001f0,0x00050051,0x00000008, + 0x000001f4,0x000001f3,0x00000000,0x00060041,0x0000000d,0x000001f5,0x0000007d,0x000000be, + 0x00000138,0x0003003e,0x000001f5,0x000001f4,0x00050041,0x000001d2,0x000001f8,0x0000007d, + 0x000001f6,0x0003003e,0x000001f8,0x000001f7,0x000100fd,0x00010038,0x00050036,0x00000030, + 0x00000084,0x00000000,0x00000080,0x00030037,0x0000001d,0x00000081,0x00030037,0x0000002b, + 0x00000082,0x00030037,0x0000002c,0x00000083,0x000200f8,0x00000085,0x0004003b,0x00000120, + 0x000001f9,0x00000007,0x0004003b,0x0000001d,0x000001fa,0x00000007,0x0004003b,0x00000034, + 0x000001fc,0x00000007,0x0004003b,0x0000000d,0x000001fe,0x00000007,0x0004003b,0x00000155, + 0x000001ff,0x00000007,0x0004003b,0x00000044,0x00000202,0x00000007,0x0004003b,0x00000034, + 0x0000020a,0x00000007,0x0004003b,0x00000034,0x0000020e,0x00000007,0x0004003b,0x00000034, + 0x00000213,0x00000007,0x0004003b,0x00000034,0x00000215,0x00000007,0x0004003b,0x00000155, + 0x00000219,0x00000007,0x0004003b,0x00000044,0x0000021c,0x00000007,0x0004003b,0x00000045, + 0x0000021d,0x00000007,0x0004003b,0x0000000d,0x0000021f,0x00000007,0x0004003b,0x0000000d, + 0x00000222,0x00000007,0x0004003b,0x0000000d,0x00000227,0x00000007,0x0004003d,0x0000000e, + 0x000001fb,0x00000081,0x0003003e,0x000001fa,0x000001fb,0x0003003e,0x000001fc,0x00000083, + 0x00060039,0x00000056,0x000001fd,0x0000005a,0x000001fa,0x000001fc,0x0003003e,0x000001f9, + 0x000001fd,0x0003003e,0x000001fe,0x000000a9,0x0003003e,0x000001ff,0x00000200,0x00050041, + 0x0000000d,0x00000201,0x000001ff,0x0000017c,0x0003003e,0x00000201,0x000000a9,0x0003003e, + 0x00000202,0x000000be,0x000200f9,0x00000203,0x000200f8,0x00000203,0x000400f6,0x00000205, + 0x00000206,0x00000000,0x000200f9,0x00000207,0x000200f8,0x00000207,0x0004003d,0x0000002b, + 0x00000208,0x00000202,0x000500b1,0x0000006b,0x00000209,0x00000208,0x000001cd,0x000400fa, + 0x00000209,0x00000204,0x00000205,0x000200f8,0x00000204,0x0004003d,0x0000002b,0x0000020b, + 0x00000202,0x00060041,0x00000034,0x0000020c,0x000001f9,0x000000be,0x0000020b,0x0004003d, + 0x0000002c,0x0000020d,0x0000020c,0x0003003e,0x0000020a,0x0000020d,0x00050041,0x00000034, + 0x0000020f,0x000001f9,0x00000122,0x0004003d,0x0000002c,0x00000210,0x0000020f,0x0004003d, + 0x0000002c,0x00000211,0x0000020a,0x00050080,0x0000002c,0x00000212,0x00000210,0x00000211, + 0x0003003e,0x0000020e,0x00000212,0x0004003d,0x0000002c,0x00000214,0x0000020e,0x0003003e, + 0x00000213,0x00000214,0x0003003e,0x00000215,0x00000083,0x00060039,0x0000006b,0x00000216, + 0x0000006f,0x00000213,0x00000215,0x000300f7,0x00000218,0x00000000,0x000400fa,0x00000216, + 0x00000217,0x00000218,0x000200f8,0x00000217,0x0004003d,0x0000002c,0x0000021a,0x0000020e, + 0x0004007c,0x0000003f,0x0000021b,0x0000021a,0x0003003e,0x0000021c,0x00000082,0x0003003e, + 0x0000021d,0x0000021b,0x00060039,0x00000030,0x0000021e,0x00000049,0x0000021c,0x0000021d, + 0x0003003e,0x00000219,0x0000021e,0x00050041,0x0000000d,0x00000220,0x00000219,0x0000017c, + 0x0004003d,0x00000008,0x00000221,0x00000220,0x0003003e,0x0000021f,0x00000221,0x00050041, + 0x0000000d,0x00000223,0x00000219,0x0000017c,0x0004003d,0x00000008,0x00000224,0x00000223, + 0x000500ba,0x0000006b,0x00000225,0x00000224,0x000000a9,0x000600a9,0x00000008,0x00000226, + 0x00000225,0x000000aa,0x000000a9,0x0003003e,0x00000222,0x00000226,0x0004003d,0x0000002b, + 0x00000228,0x00000202,0x00060041,0x0000000d,0x00000229,0x000001f9,0x0000012d,0x00000228, + 0x0004003d,0x00000008,0x0000022a,0x00000229,0x0004003d,0x00000008,0x0000022b,0x00000222, + 0x00050085,0x00000008,0x0000022c,0x0000022a,0x0000022b,0x0004003d,0x00000008,0x0000022d, + 0x0000021f,0x00050085,0x00000008,0x0000022e,0x0000022c,0x0000022d,0x0003003e,0x00000227, + 0x0000022e,0x0004003d,0x00000008,0x0000022f,0x00000227,0x0004003d,0x00000008,0x00000230, + 0x000001fe,0x00050081,0x00000008,0x00000231,0x00000230,0x0000022f,0x0003003e,0x000001fe, + 0x00000231,0x0004003d,0x00000030,0x00000232,0x00000219,0x0004003d,0x00000008,0x00000233, + 0x00000227,0x0005008e,0x00000030,0x00000234,0x00000232,0x00000233,0x0004003d,0x00000030, + 0x00000235,0x000001ff,0x00050081,0x00000030,0x00000236,0x00000235,0x00000234,0x0003003e, + 0x000001ff,0x00000236,0x000200f9,0x00000218,0x000200f8,0x00000218,0x000200f9,0x00000206, + 0x000200f8,0x00000206,0x0004003d,0x0000002b,0x00000237,0x00000202,0x00050080,0x0000002b, + 0x00000238,0x00000237,0x0000012d,0x0003003e,0x00000202,0x00000238,0x000200f9,0x00000203, + 0x000200f8,0x00000205,0x0004003d,0x00000008,0x00000239,0x000001fe,0x000500ba,0x0000006b, + 0x0000023a,0x00000239,0x000000a9,0x0004003d,0x00000008,0x0000023b,0x000001fe,0x000600a9, + 0x00000008,0x0000023c,0x0000023a,0x0000023b,0x000000aa,0x0004003d,0x00000030,0x0000023d, + 0x000001ff,0x00070050,0x00000030,0x0000023e,0x0000023c,0x0000023c,0x0000023c,0x0000023c, + 0x00050088,0x00000030,0x0000023f,0x0000023d,0x0000023e,0x0003003e,0x000001ff,0x0000023f, + 0x0004003d,0x00000030,0x00000240,0x000001ff,0x000200fe,0x00000240,0x00010038,0x00050036, + 0x00000002,0x00000089,0x00000000,0x00000086,0x00030037,0x0000001d,0x00000087,0x00030037, + 0x0000007a,0x00000088,0x000200f8,0x0000008a,0x0004003b,0x00000034,0x00000243,0x00000007, + 0x0004003b,0x00000045,0x00000249,0x00000007,0x0004003b,0x00000034,0x0000024a,0x00000007, + 0x0004003b,0x00000045,0x0000024d,0x00000007,0x0004003b,0x0000007a,0x0000024f,0x00000007, + 0x0004003b,0x00000034,0x00000257,0x00000007,0x0004003b,0x00000155,0x00000259,0x00000007, + 0x0004003b,0x00000044,0x0000025a,0x00000007,0x0004003b,0x0000001d,0x0000026e,0x00000007, + 0x0004003b,0x0000001d,0x00000282,0x00000007,0x0004003b,0x0000001d,0x0000028b,0x00000007, + 0x0004003d,0x0000000e,0x00000244,0x00000087,0x00040039,0x0000002c,0x00000245,0x0000002e, + 0x0004006f,0x0000000e,0x00000246,0x00000245,0x00050085,0x0000000e,0x00000247,0x00000244, + 0x00000246,0x0004006e,0x0000002c,0x00000248,0x00000247,0x0003003e,0x00000243,0x00000248, + 0x0004003d,0x0000002c,0x0000024b,0x00000243,0x0003003e,0x0000024a,0x0000024b,0x00050039, + 0x0000003f,0x0000024c,0x00000042,0x0000024a,0x0003003e,0x00000249,0x0000024c,0x0004003d, + 0x0000003f,0x0000024e,0x00000249,0x0003003e,0x0000024d,0x0000024e,0x00060039,0x00000002, + 0x00000250,0x0000007e,0x0000024d,0x0000024f,0x0004003d,0x00000079,0x00000251,0x0000024f, + 0x0003003e,0x00000088,0x00000251,0x00050041,0x000001d2,0x00000252,0x00000088,0x00000132, + 0x0004003d,0x0000006b,0x00000253,0x00000252,0x000400a8,0x0000006b,0x00000254,0x00000253, + 0x000300f7,0x00000256,0x00000000,0x000400fa,0x00000254,0x00000255,0x00000256,0x000200f8, + 0x00000255,0x00040039,0x0000002c,0x00000258,0x0000002e,0x0003003e,0x00000257,0x00000258, + 0x0003003e,0x00000259,0x00000200,0x0003003e,0x0000025a,0x000000be,0x000200f9,0x0000025b, + 0x000200f8,0x0000025b,0x000400f6,0x0000025d,0x0000025e,0x00000000,0x000200f9,0x0000025f, + 0x000200f8,0x0000025f,0x0004003d,0x0000002b,0x00000260,0x0000025a,0x000500b1,0x0000006b, + 0x00000262,0x00000260,0x00000261,0x000300f7,0x00000264,0x00000000,0x000400fa,0x00000262, + 0x00000263,0x00000264,0x000200f8,0x00000263,0x00050041,0x0000000d,0x00000265,0x00000259, + 0x00000185,0x0004003d,0x00000008,0x00000266,0x00000265,0x000500b4,0x0000006b,0x00000267, + 0x00000266,0x000000a9,0x000200f9,0x00000264,0x000200f8,0x00000264,0x000700f5,0x0000006b, + 0x00000268,0x00000262,0x0000025f,0x00000267,0x00000263,0x000400fa,0x00000268,0x0000025c, + 0x0000025d,0x000200f8,0x0000025c,0x0004003d,0x0000002c,0x00000269,0x00000257,0x00050050, + 0x0000002c,0x0000026a,0x00000122,0x00000122,0x00050087,0x0000002c,0x0000026b,0x00000269, + 0x0000026a,0x0003003e,0x00000257,0x0000026b,0x0004003d,0x0000002b,0x0000026c,0x0000025a, + 0x0004003d,0x0000002c,0x0000026d,0x00000257,0x0004003d,0x0000000e,0x0000026f,0x00000087, + 0x0003003e,0x0000026e,0x0000026f,0x00070039,0x00000030,0x00000270,0x00000084,0x0000026e, + 0x0000026c,0x0000026d,0x0003003e,0x00000259,0x00000270,0x000200f9,0x0000025e,0x000200f8, + 0x0000025e,0x0004003d,0x0000002b,0x00000271,0x0000025a,0x00050080,0x0000002b,0x00000272, + 0x00000271,0x0000012d,0x0003003e,0x0000025a,0x00000272,0x000200f9,0x0000025b,0x000200f8, + 0x0000025d,0x0004003d,0x00000030,0x00000273,0x00000259,0x0007004f,0x0000000e,0x00000274, + 0x00000273,0x00000273,0x00000000,0x00000001,0x00050041,0x0000001d,0x00000275,0x00000088, + 0x000000be,0x0003003e,0x00000275,0x00000274,0x00050041,0x0000000d,0x00000276,0x00000259, + 0x0000017c,0x0004003d,0x00000008,0x00000277,0x00000276,0x00050041,0x0000000d,0x00000278, + 0x00000088,0x0000012d,0x0003003e,0x00000278,0x00000277,0x00050041,0x0000000d,0x00000279, + 0x00000259,0x00000185,0x0004003d,0x00000008,0x0000027a,0x00000279,0x00050041,0x0000000d, + 0x0000027b,0x00000088,0x00000122,0x0003003e,0x0000027b,0x0000027a,0x00050041,0x000001d2, + 0x0000027d,0x00000088,0x000001f6,0x0003003e,0x0000027d,0x0000027c,0x000200f9,0x00000256, + 0x000200f8,0x00000256,0x0004003d,0x0000000e,0x0000027e,0x00000087,0x00050041,0x0000001d, + 0x0000027f,0x00000088,0x000000be,0x0004003d,0x0000000e,0x00000280,0x0000027f,0x00050083, + 0x0000000e,0x00000281,0x0000027e,0x00000280,0x0003003e,0x00000282,0x00000281,0x00050039, + 0x0000006b,0x00000283,0x00000073,0x00000282,0x000400a8,0x0000006b,0x00000284,0x00000283, + 0x00050041,0x000001d2,0x00000285,0x00000088,0x000000c4,0x0003003e,0x00000285,0x00000284, + 0x0004003d,0x0000000e,0x00000287,0x00000087,0x00050041,0x0000001d,0x00000288,0x00000088, + 0x000000be,0x0004003d,0x0000000e,0x00000289,0x00000288,0x00050081,0x0000000e,0x0000028a, + 0x00000287,0x00000289,0x0003003e,0x0000028b,0x0000028a,0x00050039,0x0000006b,0x0000028c, + 0x00000073,0x0000028b,0x000400a8,0x0000006b,0x0000028d,0x0000028c,0x00050041,0x000001d2, + 0x0000028e,0x00000088,0x00000286,0x0003003e,0x0000028e,0x0000028d,0x00050041,0x0000001d, + 0x00000290,0x00000088,0x000000be,0x0004003d,0x0000000e,0x00000291,0x00000290,0x0006000c, + 0x00000008,0x00000292,0x00000001,0x00000042,0x00000291,0x00050041,0x0000000d,0x00000293, + 0x00000088,0x0000028f,0x0003003e,0x00000293,0x00000292,0x000100fd,0x00010038,0x00050036, + 0x00000008,0x0000008e,0x00000000,0x0000008b,0x00030037,0x00000007,0x0000008c,0x00030037, + 0x00000034,0x0000008d,0x000200f8,0x0000008f,0x0004003b,0x0000001d,0x00000294,0x00000007, + 0x0004003b,0x0000001d,0x0000029c,0x00000007,0x0004003b,0x0000001d,0x0000029d,0x00000007, + 0x0004003b,0x00000034,0x000002a0,0x00000007,0x0004003b,0x00000034,0x000002ad,0x00000007, + 0x0004003b,0x00000034,0x000002b8,0x00000007,0x0004003d,0x0000002c,0x00000295,0x0000008d, + 0x0004006f,0x0000000e,0x00000296,0x00000295,0x00050050,0x0000000e,0x00000297,0x0000011d, + 0x0000011d,0x00050081,0x0000000e,0x00000298,0x00000296,0x00000297,0x00040039,0x0000002c, + 0x00000299,0x0000002e,0x0004006f,0x0000000e,0x0000029a,0x00000299,0x00050088,0x0000000e, + 0x0000029b,0x00000298,0x0000029a,0x0003003e,0x00000294,0x0000029b,0x0004003d,0x0000000e, + 0x0000029e,0x00000294,0x0003003e,0x0000029d,0x0000029e,0x00050039,0x0000000e,0x0000029f, + 0x0000004c,0x0000029d,0x0003003e,0x0000029c,0x0000029f,0x0004003d,0x0000000e,0x000002a1, + 0x0000029c,0x00040039,0x0000002c,0x000002a2,0x0000002e,0x0004006f,0x0000000e,0x000002a3, + 0x000002a2,0x00050085,0x0000000e,0x000002a4,0x000002a1,0x000002a3,0x0004006e,0x0000002c, + 0x000002a5,0x000002a4,0x0003003e,0x000002a0,0x000002a5,0x0004003d,0x00000006,0x000002a6, + 0x0000008c,0x000500aa,0x0000006b,0x000002a7,0x000002a6,0x000000d0,0x000300f7,0x000002a9, + 0x00000000,0x000400fa,0x000002a7,0x000002a8,0x000002b0,0x000200f8,0x000002a8,0x0004003d, + 0x0000002c,0x000002aa,0x0000008d,0x0004003d,0x0000002c,0x000002ab,0x000002a0,0x00050080, + 0x0000002c,0x000002ac,0x000002aa,0x000002ab,0x0003003e,0x000002ad,0x000002ac,0x00050039, + 0x00000008,0x000002ae,0x0000003a,0x000002ad,0x000200fe,0x000002ae,0x000200f8,0x000002b0, + 0x0004003d,0x00000006,0x000002b1,0x0000008c,0x000500aa,0x0000006b,0x000002b2,0x000002b1, + 0x00000138,0x000300f7,0x000002b4,0x00000000,0x000400fa,0x000002b2,0x000002b3,0x000002b4, + 0x000200f8,0x000002b3,0x0004003d,0x0000002c,0x000002b5,0x0000008d,0x0004003d,0x0000002c, + 0x000002b6,0x000002a0,0x00050080,0x0000002c,0x000002b7,0x000002b5,0x000002b6,0x0003003e, + 0x000002b8,0x000002b7,0x00050039,0x00000008,0x000002b9,0x00000037,0x000002b8,0x000200fe, + 0x000002b9,0x000200f8,0x000002b4,0x000200f9,0x000002a9,0x000200f8,0x000002a9,0x000200fe, + 0x000000a9,0x00010038,0x00050036,0x00000008,0x00000094,0x00000000,0x00000090,0x00030037, + 0x00000007,0x00000091,0x00030037,0x0000001d,0x00000092,0x00030037,0x0000000d,0x00000093, + 0x000200f8,0x00000095,0x0004003b,0x0000000d,0x000002bd,0x00000007,0x0004003b,0x0000000d, + 0x000002be,0x00000007,0x0004003b,0x00000120,0x000002c1,0x00000007,0x0004003b,0x0000001d, + 0x000002c3,0x00000007,0x0004003b,0x00000034,0x000002c5,0x00000007,0x0004003b,0x0000000d, + 0x000002c7,0x00000007,0x0004003b,0x0000000d,0x000002c8,0x00000007,0x0004003b,0x0000000d, + 0x000002c9,0x00000007,0x0004003b,0x00000044,0x000002ca,0x00000007,0x0004003b,0x00000034, + 0x000002d2,0x00000007,0x0004003b,0x00000034,0x000002d6,0x00000007,0x0004003b,0x00000034, + 0x000002dc,0x00000007,0x0004003b,0x00000034,0x000002de,0x00000007,0x0004003b,0x0000000d, + 0x000002e2,0x00000007,0x0004003b,0x0000000d,0x000002eb,0x00000007,0x0004003b,0x00000007, + 0x000002ec,0x00000007,0x0004003b,0x00000034,0x000002ee,0x00000007,0x0004003b,0x0000000d, + 0x000002f1,0x00000007,0x0004003b,0x0000000d,0x000002f2,0x00000007,0x0004003b,0x0000000d, + 0x000002f5,0x00000007,0x0004003b,0x0000000d,0x000002fd,0x00000007,0x0004003b,0x0000000d, + 0x000002fe,0x00000007,0x0004003b,0x0000000d,0x00000300,0x00000007,0x0004003b,0x00000303, + 0x00000304,0x00000007,0x0004003b,0x00000034,0x0000030a,0x00000007,0x0004003b,0x00000034, + 0x0000030b,0x00000007,0x0004003b,0x0000000d,0x0000030c,0x00000007,0x0004003b,0x00000303, + 0x0000030f,0x00000007,0x0004003b,0x00000034,0x00000311,0x00000007,0x0004003b,0x00000034, + 0x00000312,0x00000007,0x0004003b,0x0000000d,0x00000313,0x00000007,0x0004003b,0x0000000d, + 0x00000316,0x00000007,0x0004003b,0x0000000d,0x0000031a,0x00000007,0x0004003b,0x0000000d, + 0x0000031b,0x00000007,0x0004003b,0x0000000d,0x0000031d,0x00000007,0x0004003b,0x0000000d, + 0x00000320,0x00000007,0x0004003b,0x0000000d,0x00000326,0x00000007,0x0004003b,0x0000000d, + 0x0000032e,0x00000007,0x0004003b,0x0000000d,0x00000334,0x00000007,0x0004003b,0x0000000d, + 0x00000336,0x00000007,0x0004003b,0x0000000d,0x00000338,0x00000007,0x0004003b,0x0000000d, + 0x00000339,0x00000007,0x0004003b,0x0000000d,0x0000033a,0x00000007,0x0004003b,0x0000000d, + 0x0000034d,0x00000007,0x0004003b,0x0000000d,0x00000354,0x00000007,0x0004003d,0x00000008, + 0x000002bf,0x00000093,0x0003003e,0x000002be,0x000002bf,0x00050039,0x00000008,0x000002c0, + 0x0000005d,0x000002be,0x0003003e,0x000002bd,0x000002c0,0x00040039,0x0000002c,0x000002c2, + 0x0000002e,0x0004003d,0x0000000e,0x000002c4,0x00000092,0x0003003e,0x000002c3,0x000002c4, + 0x0003003e,0x000002c5,0x000002c2,0x00060039,0x00000056,0x000002c6,0x0000005a,0x000002c3, + 0x000002c5,0x0003003e,0x000002c1,0x000002c6,0x0003003e,0x000002c7,0x000000a9,0x0003003e, + 0x000002c8,0x000000a9,0x0003003e,0x000002c9,0x000000a9,0x0003003e,0x000002ca,0x000000be, + 0x000200f9,0x000002cb,0x000200f8,0x000002cb,0x000400f6,0x000002cd,0x000002ce,0x00000000, + 0x000200f9,0x000002cf,0x000200f8,0x000002cf,0x0004003d,0x0000002b,0x000002d0,0x000002ca, + 0x000500b1,0x0000006b,0x000002d1,0x000002d0,0x000001cd,0x000400fa,0x000002d1,0x000002cc, + 0x000002cd,0x000200f8,0x000002cc,0x0004003d,0x0000002b,0x000002d3,0x000002ca,0x00060041, + 0x00000034,0x000002d4,0x000002c1,0x000000be,0x000002d3,0x0004003d,0x0000002c,0x000002d5, + 0x000002d4,0x0003003e,0x000002d2,0x000002d5,0x00050041,0x00000034,0x000002d7,0x000002c1, + 0x00000122,0x0004003d,0x0000002c,0x000002d8,0x000002d7,0x0004003d,0x0000002c,0x000002d9, + 0x000002d2,0x00050080,0x0000002c,0x000002da,0x000002d8,0x000002d9,0x0003003e,0x000002d6, + 0x000002da,0x00040039,0x0000002c,0x000002db,0x0000002e,0x0004003d,0x0000002c,0x000002dd, + 0x000002d6,0x0003003e,0x000002dc,0x000002dd,0x0003003e,0x000002de,0x000002db,0x00060039, + 0x0000006b,0x000002df,0x0000006f,0x000002dc,0x000002de,0x000300f7,0x000002e1,0x00000000, + 0x000400fa,0x000002df,0x000002e0,0x000002e1,0x000200f8,0x000002e0,0x0004003d,0x0000002b, + 0x000002e3,0x000002ca,0x00060041,0x0000000d,0x000002e4,0x000002c1,0x0000012d,0x000002e3, + 0x0004003d,0x00000008,0x000002e5,0x000002e4,0x0003003e,0x000002e2,0x000002e5,0x0004003d, + 0x00000008,0x000002e6,0x000002e2,0x000500ba,0x0000006b,0x000002e8,0x000002e6,0x000002e7, + 0x000300f7,0x000002ea,0x00000000,0x000400fa,0x000002e8,0x000002e9,0x000002ea,0x000200f8, + 0x000002e9,0x0004003d,0x00000006,0x000002ed,0x00000091,0x0003003e,0x000002ec,0x000002ed, + 0x0004003d,0x0000002c,0x000002ef,0x000002d6,0x0003003e,0x000002ee,0x000002ef,0x00060039, + 0x00000008,0x000002f0,0x0000008e,0x000002ec,0x000002ee,0x0003003e,0x000002eb,0x000002f0, + 0x0004003d,0x00000008,0x000002f3,0x000002eb,0x0003003e,0x000002f2,0x000002f3,0x00050039, + 0x00000008,0x000002f4,0x0000005d,0x000002f2,0x0003003e,0x000002f1,0x000002f4,0x0004003d, + 0x00000008,0x000002f6,0x000002bd,0x0004003d,0x00000008,0x000002f7,0x000002f1,0x00050083, + 0x00000008,0x000002f8,0x000002f6,0x000002f7,0x0003003e,0x000002f5,0x000002f8,0x0004003d, + 0x00000008,0x000002f9,0x000002f5,0x000500ba,0x0000006b,0x000002fa,0x000002f9,0x000000a9, + 0x000300f7,0x000002fc,0x00000000,0x000400fa,0x000002fa,0x000002fb,0x000002fc,0x000200f8, + 0x000002fb,0x0004003d,0x00000008,0x000002ff,0x000002eb,0x0003003e,0x000002fe,0x000002ff, + 0x0004003d,0x00000008,0x00000301,0x00000093,0x0003003e,0x00000300,0x00000301,0x00060039, + 0x00000008,0x00000302,0x00000029,0x000002fe,0x00000300,0x0003003e,0x000002fd,0x00000302, + 0x00040039,0x0000002c,0x00000305,0x0000002e,0x0004006f,0x0000000e,0x00000306,0x00000305, + 0x0005008e,0x0000000e,0x00000307,0x00000306,0x0000011d,0x0004006e,0x0000002c,0x00000308, + 0x00000307,0x00040039,0x0000002c,0x00000309,0x0000002e,0x0003003e,0x0000030a,0x00000308, + 0x0003003e,0x0000030b,0x00000309,0x0004003d,0x00000008,0x0000030d,0x000002fd,0x0003003e, + 0x0000030c,0x0000030d,0x00070039,0x00000064,0x0000030e,0x00000069,0x0000030a,0x0000030b, + 0x0000030c,0x0003003e,0x00000304,0x0000030e,0x00040039,0x0000002c,0x00000310,0x0000002e, + 0x0003003e,0x00000311,0x0000012b,0x0003003e,0x00000312,0x00000310,0x0004003d,0x00000008, + 0x00000314,0x000002fd,0x0003003e,0x00000313,0x00000314,0x00070039,0x00000064,0x00000315, + 0x00000069,0x00000311,0x00000312,0x00000313,0x0003003e,0x0000030f,0x00000315,0x00040039, + 0x0000002c,0x00000317,0x0000002e,0x0004006f,0x0000000e,0x00000318,0x00000317,0x0006000c, + 0x00000008,0x00000319,0x00000001,0x00000042,0x00000318,0x0003003e,0x00000316,0x00000319, + 0x0004003d,0x00000008,0x0000031c,0x000002bd,0x0003003e,0x0000031b,0x0000031c,0x0004003d, + 0x00000008,0x0000031e,0x000002f1,0x0003003e,0x0000031d,0x0000031e,0x00060039,0x00000008, + 0x0000031f,0x00000029,0x0000031b,0x0000031d,0x0003003e,0x0000031a,0x0000031f,0x0004003d, + 0x00000064,0x00000321,0x0000030f,0x0006000c,0x00000008,0x00000322,0x00000001,0x00000042, + 0x00000321,0x0004003d,0x00000064,0x00000323,0x00000304,0x0006000c,0x00000008,0x00000324, + 0x00000001,0x00000042,0x00000323,0x00050088,0x00000008,0x00000325,0x00000322,0x00000324, + 0x0003003e,0x00000320,0x00000325,0x0004003d,0x00000008,0x00000328,0x00000320,0x00050085, + 0x00000008,0x00000329,0x00000327,0x00000328,0x0004003d,0x00000008,0x0000032a,0x00000316, + 0x00050085,0x00000008,0x0000032b,0x00000329,0x0000032a,0x0004003d,0x00000008,0x0000032c, + 0x0000031a,0x00050085,0x00000008,0x0000032d,0x0000032b,0x0000032c,0x0003003e,0x00000326, + 0x0000032d,0x00040039,0x0000002c,0x0000032f,0x0000002e,0x0004006f,0x0000000e,0x00000330, + 0x0000032f,0x0006000c,0x00000008,0x00000331,0x00000001,0x00000042,0x00000330,0x00050088, + 0x00000008,0x00000333,0x00000331,0x00000332,0x0003003e,0x00000334,0x00000333,0x00050039, + 0x00000008,0x00000335,0x0000001b,0x00000334,0x0003003e,0x0000032e,0x00000335,0x0003003e, + 0x00000338,0x000000aa,0x0003003e,0x00000339,0x00000337,0x0004003d,0x00000008,0x0000033b, + 0x0000032e,0x0003003e,0x0000033a,0x0000033b,0x00070039,0x00000008,0x0000033c,0x00000017, + 0x00000338,0x00000339,0x0000033a,0x0003003e,0x00000336,0x0000033c,0x0004003d,0x00000008, + 0x0000033d,0x00000326,0x0004003d,0x00000008,0x0000033e,0x000002f5,0x00050088,0x00000008, + 0x0000033f,0x0000033d,0x0000033e,0x000500be,0x0000006b,0x00000340,0x0000033f,0x000000aa, + 0x000600a9,0x00000008,0x00000341,0x00000340,0x000000aa,0x000000a9,0x0004003d,0x00000008, + 0x00000342,0x000002e2,0x00050085,0x00000008,0x00000343,0x00000341,0x00000342,0x0004003d, + 0x00000008,0x00000344,0x000002c8,0x00050081,0x00000008,0x00000345,0x00000344,0x00000343, + 0x0003003e,0x000002c8,0x00000345,0x0004003d,0x00000008,0x00000346,0x000002e2,0x0004003d, + 0x00000008,0x00000347,0x000002c9,0x00050081,0x00000008,0x00000348,0x00000347,0x00000346, + 0x0003003e,0x000002c9,0x00000348,0x000200f9,0x000002fc,0x000200f8,0x000002fc,0x000200f9, + 0x000002ea,0x000200f8,0x000002ea,0x000200f9,0x000002e1,0x000200f8,0x000002e1,0x000200f9, + 0x000002ce,0x000200f8,0x000002ce,0x0004003d,0x0000002b,0x00000349,0x000002ca,0x00050080, + 0x0000002b,0x0000034a,0x00000349,0x0000012d,0x0003003e,0x000002ca,0x0000034a,0x000200f9, + 0x000002cb,0x000200f8,0x000002cd,0x0004003d,0x00000008,0x0000034b,0x000002c9,0x000500ba, + 0x0000006b,0x0000034c,0x0000034b,0x000000a9,0x000300f7,0x0000034f,0x00000000,0x000400fa, + 0x0000034c,0x0000034e,0x00000356,0x000200f8,0x0000034e,0x0004003d,0x00000008,0x00000350, + 0x000002c8,0x0004003d,0x00000008,0x00000351,0x000002c9,0x00050088,0x00000008,0x00000352, + 0x00000350,0x00000351,0x00050083,0x00000008,0x00000353,0x000000aa,0x00000352,0x0003003e, + 0x00000354,0x00000353,0x00050039,0x00000008,0x00000355,0x0000001b,0x00000354,0x0003003e, + 0x0000034d,0x00000355,0x000200f9,0x0000034f,0x000200f8,0x00000356,0x0003003e,0x0000034d, + 0x000000a9,0x000200f9,0x0000034f,0x000200f8,0x0000034f,0x0004003d,0x00000008,0x00000357, + 0x0000034d,0x000200fe,0x00000357,0x00010038,0x00050036,0x00000002,0x00000098,0x00000000, + 0x00000096,0x00030037,0x00000034,0x00000097,0x000200f8,0x00000099,0x0004003b,0x0000000d, + 0x0000035a,0x00000007,0x0004003b,0x00000034,0x0000035b,0x00000007,0x0004003b,0x0000001d, + 0x0000035e,0x00000007,0x0004003b,0x0000000d,0x00000366,0x00000007,0x0004003b,0x0000000d, + 0x00000367,0x00000007,0x0004003b,0x0000007a,0x0000036a,0x00000007,0x0004003b,0x0000001d, + 0x0000036b,0x00000007,0x0004003b,0x0000007a,0x0000036d,0x00000007,0x0004003b,0x0000000d, + 0x00000370,0x00000007,0x0004003b,0x00000007,0x00000375,0x00000007,0x0004003b,0x0000001d, + 0x00000376,0x00000007,0x0004003b,0x0000000d,0x00000377,0x00000007,0x0004003b,0x0000000d, + 0x0000037b,0x00000007,0x0004003b,0x00000007,0x00000380,0x00000007,0x0004003b,0x0000001d, + 0x00000381,0x00000007,0x0004003b,0x0000000d,0x00000382,0x00000007,0x0004003b,0x0000001d, + 0x00000386,0x00000007,0x0004003b,0x0000000d,0x0000038b,0x00000007,0x0004003b,0x0000001d, + 0x00000391,0x00000007,0x0004003b,0x00000034,0x00000395,0x00000007,0x0004003b,0x00000034, + 0x000003a0,0x00000007,0x0004003b,0x00000034,0x000003a2,0x00000007,0x0004003b,0x0000000d, + 0x000003a7,0x00000007,0x0004003b,0x00000034,0x000003aa,0x00000007,0x0004003b,0x00000034, + 0x000003b5,0x00000007,0x0004003b,0x00000034,0x000003b7,0x00000007,0x0004003b,0x0000000d, + 0x000003bc,0x00000007,0x0004003b,0x00000034,0x000003bf,0x00000007,0x0004003b,0x0000001d, + 0x000003c1,0x00000007,0x0004003d,0x0000002c,0x0000035c,0x00000097,0x0003003e,0x0000035b, + 0x0000035c,0x00050039,0x00000008,0x0000035d,0x0000003d,0x0000035b,0x0003003e,0x0000035a, + 0x0000035d,0x0004003d,0x0000002c,0x0000035f,0x00000097,0x0004006f,0x0000000e,0x00000360, + 0x0000035f,0x00050050,0x0000000e,0x00000361,0x0000011d,0x0000011d,0x00050081,0x0000000e, + 0x00000362,0x00000360,0x00000361,0x00040039,0x0000002c,0x00000363,0x0000002e,0x0004006f, + 0x0000000e,0x00000364,0x00000363,0x00050088,0x0000000e,0x00000365,0x00000362,0x00000364, + 0x0003003e,0x0000035e,0x00000365,0x0004003d,0x00000008,0x00000368,0x0000035a,0x0003003e, + 0x00000367,0x00000368,0x00050039,0x00000008,0x00000369,0x0000005d,0x00000367,0x0003003e, + 0x00000366,0x00000369,0x0004003d,0x0000000e,0x0000036c,0x0000035e,0x0003003e,0x0000036b, + 0x0000036c,0x00060039,0x00000002,0x0000036e,0x00000089,0x0000036b,0x0000036d,0x0004003d, + 0x00000079,0x0000036f,0x0000036d,0x0003003e,0x0000036a,0x0000036f,0x0004003d,0x0000000e, + 0x00000371,0x0000035e,0x00050041,0x0000001d,0x00000372,0x0000036a,0x000000be,0x0004003d, + 0x0000000e,0x00000373,0x00000372,0x00050081,0x0000000e,0x00000374,0x00000371,0x00000373, + 0x0003003e,0x00000375,0x000000d0,0x0003003e,0x00000376,0x00000374,0x0004003d,0x00000008, + 0x00000378,0x0000035a,0x0003003e,0x00000377,0x00000378,0x00070039,0x00000008,0x00000379, + 0x00000094,0x00000375,0x00000376,0x00000377,0x00050083,0x00000008,0x0000037a,0x000000aa, + 0x00000379,0x0003003e,0x00000370,0x0000037a,0x0004003d,0x0000000e,0x0000037c,0x0000035e, + 0x00050041,0x0000001d,0x0000037d,0x0000036a,0x000000be,0x0004003d,0x0000000e,0x0000037e, + 0x0000037d,0x00050083,0x0000000e,0x0000037f,0x0000037c,0x0000037e,0x0003003e,0x00000380, + 0x00000138,0x0003003e,0x00000381,0x0000037f,0x0004003d,0x00000008,0x00000383,0x0000035a, + 0x0003003e,0x00000382,0x00000383,0x00070039,0x00000008,0x00000384,0x00000094,0x00000380, + 0x00000381,0x00000382,0x00050083,0x00000008,0x00000385,0x000000aa,0x00000384,0x0003003e, + 0x0000037b,0x00000385,0x0004003d,0x00000008,0x00000387,0x00000370,0x0004003d,0x00000008, + 0x00000388,0x0000037b,0x00050050,0x0000000e,0x00000389,0x00000387,0x00000388,0x0003003e, + 0x00000386,0x00000389,0x0004003d,0x0000000e,0x0000038a,0x00000386,0x0003003e,0x0000038b, + 0x000002e7,0x00050039,0x0000000e,0x0000038c,0x00000011,0x0000038b,0x000500be,0x00000197, + 0x0000038d,0x0000038a,0x0000038c,0x000600a9,0x0000000e,0x00000390,0x0000038d,0x0000038f, + 0x0000038e,0x0003003e,0x00000386,0x00000390,0x00050041,0x0000001d,0x00000392,0x0000036a, + 0x000000be,0x0004003d,0x0000000e,0x00000393,0x00000392,0x0005008e,0x0000000e,0x00000394, + 0x00000393,0x00000165,0x0003003e,0x00000391,0x00000394,0x0004003d,0x0000000e,0x00000396, + 0x0000035e,0x0004003d,0x0000000e,0x00000397,0x00000391,0x00050081,0x0000000e,0x00000398, + 0x00000396,0x00000397,0x00040039,0x0000002c,0x00000399,0x0000002e,0x0004006f,0x0000000e, + 0x0000039a,0x00000399,0x00050085,0x0000000e,0x0000039b,0x00000398,0x0000039a,0x0004006e, + 0x0000002c,0x0000039c,0x0000039b,0x0003003e,0x00000395,0x0000039c,0x00050041,0x0000000d, + 0x0000039d,0x00000386,0x000000d0,0x0004003d,0x00000008,0x0000039e,0x0000039d,0x00040039, + 0x0000002c,0x0000039f,0x0000002e,0x0004003d,0x0000002c,0x000003a1,0x00000395,0x0003003e, + 0x000003a0,0x000003a1,0x0003003e,0x000003a2,0x0000039f,0x00060039,0x0000006b,0x000003a3, + 0x0000006f,0x000003a0,0x000003a2,0x000400a8,0x0000006b,0x000003a4,0x000003a3,0x000600a9, + 0x00000008,0x000003a5,0x000003a4,0x000000aa,0x000000a9,0x00050081,0x00000008,0x000003a6, + 0x0000039e,0x000003a5,0x0003003e,0x000003a7,0x000003a6,0x00050039,0x00000008,0x000003a8, + 0x0000001b,0x000003a7,0x00050041,0x0000000d,0x000003a9,0x00000386,0x000000d0,0x0003003e, + 0x000003a9,0x000003a8,0x0004003d,0x0000000e,0x000003ab,0x0000035e,0x0004003d,0x0000000e, + 0x000003ac,0x00000391,0x00050083,0x0000000e,0x000003ad,0x000003ab,0x000003ac,0x00040039, + 0x0000002c,0x000003ae,0x0000002e,0x0004006f,0x0000000e,0x000003af,0x000003ae,0x00050085, + 0x0000000e,0x000003b0,0x000003ad,0x000003af,0x0004006e,0x0000002c,0x000003b1,0x000003b0, + 0x0003003e,0x000003aa,0x000003b1,0x00050041,0x0000000d,0x000003b2,0x00000386,0x00000138, + 0x0004003d,0x00000008,0x000003b3,0x000003b2,0x00040039,0x0000002c,0x000003b4,0x0000002e, + 0x0004003d,0x0000002c,0x000003b6,0x000003aa,0x0003003e,0x000003b5,0x000003b6,0x0003003e, + 0x000003b7,0x000003b4,0x00060039,0x0000006b,0x000003b8,0x0000006f,0x000003b5,0x000003b7, + 0x000400a8,0x0000006b,0x000003b9,0x000003b8,0x000600a9,0x00000008,0x000003ba,0x000003b9, + 0x000000aa,0x000000a9,0x00050081,0x00000008,0x000003bb,0x000003b3,0x000003ba,0x0003003e, + 0x000003bc,0x000003bb,0x00050039,0x00000008,0x000003bd,0x0000001b,0x000003bc,0x00050041, + 0x0000000d,0x000003be,0x00000386,0x00000138,0x0003003e,0x000003be,0x000003bd,0x0004003d, + 0x0000002c,0x000003c0,0x00000097,0x0003003e,0x000003bf,0x000003c0,0x0004003d,0x0000000e, + 0x000003c2,0x00000386,0x0003003e,0x000003c1,0x000003c2,0x00060039,0x00000002,0x000003c3, + 0x00000051,0x000003bf,0x000003c1,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h b/gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h new file mode 100644 index 000000000..a7165b391 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h @@ -0,0 +1,842 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_GAME_MOTION_VECTOR_FIELD_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000041c,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000040c,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70, + 0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461, + 0x00003b31,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000010,0x46786666,0x6f543233, + 0x28363146,0x003b3166,0x00040005,0x0000000f,0x756c6176,0x00000065,0x00070005,0x00000015, + 0x42786666,0x64616f72,0x74736163,0x31662833,0x0000003b,0x00040005,0x00000014,0x756c6176, + 0x00000065,0x00070005,0x0000001a,0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000, + 0x00030005,0x00000019,0x00000078,0x00060005,0x00000020,0x46786666,0x74636172,0x32667628, + 0x0000003b,0x00030005,0x0000001f,0x00000078,0x00060005,0x00000024,0x52786666,0x646e756f, + 0x3b316628,0x00000000,0x00030005,0x00000023,0x00000078,0x00060005,0x00000029,0x4d786666, + 0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000027,0x00000078,0x00030005,0x00000028, + 0x00000079,0x00060005,0x0000002d,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005, + 0x0000002b,0x00000078,0x00030005,0x0000002c,0x00000079,0x00060005,0x00000032,0x4d786666, + 0x75287861,0x31753b31,0x0000003b,0x00030005,0x00000030,0x00000078,0x00030005,0x00000031, + 0x00000079,0x00060005,0x00000036,0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005, + 0x00000034,0x00000078,0x00030005,0x00000035,0x00000079,0x000a0005,0x0000003c,0x5a786666, + 0x4f6f7265,0x6553656e,0x7463656c,0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005, + 0x00000039,0x00000078,0x00030005,0x0000003a,0x00000079,0x00030005,0x0000003b,0x0000007a, + 0x00080005,0x0000003f,0x5a786666,0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366, + 0x00030005,0x0000003e,0x00000078,0x00080005,0x00000042,0x4c786666,0x61656e69,0x6f724672, + 0x2851506d,0x3b336676,0x00000000,0x00040005,0x00000041,0x756c6176,0x00000065,0x00080005, + 0x00000045,0x4c786666,0x61656e69,0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005, + 0x00000044,0x756c6176,0x00000065,0x00080005,0x0000004a,0x65746e49,0x6c6f7072,0x6f697461, + 0x6365526e,0x73614274,0x00002865,0x00080005,0x0000004c,0x65746e49,0x6c6f7072,0x6f697461, + 0x6365526e,0x7a695374,0x00002865,0x00050005,0x0000004e,0x646e6552,0x69537265,0x0028657a, + 0x00060005,0x00000050,0x70736944,0x5379616c,0x28657a69,0x00000000,0x000b0005,0x00000054, + 0x69766544,0x6f546563,0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72,0x726f7463, + 0x00002873,0x00090005,0x00000057,0x6b636142,0x66667542,0x72547265,0x66736e61,0x75467265, + 0x6974636e,0x00286e6f,0x00060005,0x0000005a,0x4c6e694d,0x6e696d75,0x65636e61,0x00000028, + 0x00060005,0x0000005c,0x4c78614d,0x6e696d75,0x65636e61,0x00000028,0x000a0005,0x00000060, + 0x706d6153,0x7250656c,0x6f697665,0x61427375,0x75626b63,0x72656666,0x32667628,0x0000003b, + 0x00030005,0x0000005f,0x00765566,0x000a0005,0x00000063,0x706d6153,0x7543656c,0x6e657272, + 0x63614274,0x6675626b,0x28726566,0x3b326676,0x00000000,0x00030005,0x00000062,0x00765566, + 0x000a0005,0x00000068,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74, + 0x3b326976,0x00000000,0x00040005,0x00000067,0x50785069,0x0000736f,0x00080005,0x0000006c, + 0x64616f4c,0x616c6944,0x44646574,0x68747065,0x32697628,0x0000003b,0x00040005,0x0000006b, + 0x50785069,0x0000736f,0x00090005,0x0000006f,0x706d6153,0x6944656c,0x726f7473,0x6e6f6974, + 0x6c656946,0x66762864,0x00003b32,0x00030005,0x0000006e,0x00765566,0x000c0005,0x00000076, + 0x61647055,0x61476574,0x6f4d656d,0x6e6f6974,0x74636556,0x6946726f,0x28646c65,0x3b326976, + 0x3b327576,0x00000000,0x00040005,0x00000074,0x50785069,0x0000736f,0x00060005,0x00000075, + 0x6b636170,0x65566465,0x726f7463,0x00000000,0x000c0005,0x0000007b,0x61647055,0x61476574, + 0x6f4d656d,0x6e6f6974,0x74636556,0x6946726f,0x45646c65,0x69762878,0x75763b32,0x00003b32, + 0x00040005,0x00000079,0x50785069,0x0000736f,0x00060005,0x0000007a,0x6b636170,0x65566465, + 0x726f7463,0x00000000,0x00060005,0x0000007f,0x54424752,0x6d754c6f,0x66762861,0x00003b33, + 0x00050005,0x0000007e,0x6e694c66,0x52726165,0x00006267,0x000a0005,0x00000082,0x656e694c, + 0x65527261,0x32303263,0x4c6f5430,0x6e696d75,0x65636e61,0x33667628,0x0000003b,0x00070005, + 0x00000081,0x656e696c,0x65527261,0x32303263,0x42475230,0x00000000,0x00090005,0x00000088, + 0x73786666,0x42475263,0x694c6f54,0x7261656e,0x33667628,0x3b31663b,0x003b3166,0x00040005, + 0x00000085,0x756c6176,0x00000065,0x00060005,0x00000086,0x4c6e696d,0x6e696d75,0x65636e61, + 0x00000000,0x00060005,0x00000087,0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x00070005, + 0x0000008b,0x52776152,0x6f544247,0x656e694c,0x76287261,0x003b3366,0x00040005,0x0000008a, + 0x77615266,0x00626752,0x00080005,0x0000008e,0x52776152,0x6f544247,0x696d754c,0x636e616e, + 0x66762865,0x00003b33,0x00040005,0x0000008d,0x77615266,0x00626752,0x00080005,0x00000093, + 0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006,0x00000093, + 0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x00000093,0x00000001,0x69655766, + 0x73746867,0x00000000,0x00060006,0x00000093,0x00000002,0x73614269,0x736f5065,0x00000000, + 0x000b0005,0x00000097,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461, + 0x3b326676,0x3b326976,0x00000000,0x00030005,0x00000095,0x00765566,0x00040005,0x00000096, + 0x7a695369,0x00000065,0x000c0005,0x0000009a,0x766e6f43,0x46747265,0x446d6f72,0x63697665, + 0x70654465,0x6f546874,0x77656956,0x63617053,0x31662865,0x0000003b,0x00060005,0x00000099, + 0x76654466,0x44656369,0x68747065,0x00000000,0x00070005,0x000000a0,0x6e4f7349,0x65726353, + 0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000009e,0x00736f70,0x00040005,0x0000009f, + 0x657a6973,0x00000000,0x00060005,0x000000a4,0x76557349,0x69736e49,0x76286564,0x003b3266, + 0x00030005,0x000000a3,0x00765566,0x00080005,0x000000a9,0x446e694d,0x64697669,0x79426465, + 0x2878614d,0x663b3166,0x00003b31,0x00030005,0x000000a7,0x00003076,0x00030005,0x000000a8, + 0x00003176,0x000b0005,0x000000ad,0x6b636150,0x65566465,0x726f7463,0x6c656946,0x746e4564, + 0x73497972,0x6d697250,0x28797261,0x003b3175,0x00050005,0x000000ac,0x6b636170,0x6e456465, + 0x00797274,0x000c0005,0x000000b5,0x6b636150,0x74636556,0x6946726f,0x45646c65,0x6972746e, + 0x62287365,0x31753b31,0x3b31753b,0x3b326676,0x00000000,0x00050005,0x000000b1,0x50734962, + 0x616d6972,0x00007972,0x00070005,0x000000b2,0x67694875,0x69725068,0x7469726f,0x63614679, + 0x00726f74,0x00070005,0x000000b3,0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f, + 0x00060005,0x000000b4,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x000c0005,0x000000b8, + 0x50746567,0x726f6972,0x46797469,0x6f746361,0x6f724672,0x6569566d,0x61705377,0x65446563, + 0x28687470,0x003b3166,0x00080005,0x000000b7,0x65695666,0x61705377,0x65446563,0x49687470, + 0x74654d6e,0x00737265,0x00090005,0x000000bc,0x706d6f63,0x47657475,0x46656d61,0x646c6569, + 0x2873764d,0x3b326976,0x00000000,0x00040005,0x000000bb,0x50785069,0x0000736f,0x00040005, + 0x000000cd,0x61726170,0x0000006d,0x00040005,0x000000d0,0x61726170,0x0000006d,0x00030005, + 0x000000f1,0x00000072,0x00040005,0x00000101,0x61726170,0x0000006d,0x00040005,0x00000103, + 0x61726170,0x0000006d,0x00040005,0x00000106,0x61726170,0x0000006d,0x00030005,0x0000010a, + 0x00000070,0x00040005,0x0000010d,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170, + 0x0000006d,0x00040005,0x00000115,0x61726170,0x0000006d,0x00040005,0x00000118,0x61726170, + 0x0000006d,0x00040005,0x0000011b,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170, + 0x0000006d,0x00030005,0x00000127,0x0000006a,0x00030005,0x0000012c,0x0000006b,0x00040005, + 0x00000134,0x61726170,0x0000006d,0x00040005,0x00000144,0x61726170,0x0000006d,0x00040005, + 0x00000145,0x61726170,0x0000006d,0x00040005,0x00000146,0x61726170,0x0000006d,0x00040005, + 0x0000014a,0x49466263,0x0000745f,0x00060006,0x0000014a,0x00000000,0x646e6572,0x69537265, + 0x0000657a,0x00060006,0x0000014a,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006, + 0x0000014a,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000014a, + 0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x0000014a,0x00000004,0x656d6163, + 0x61466172,0x00000072,0x00080006,0x0000014a,0x00000005,0x63737075,0x72656c61,0x67726154, + 0x69537465,0x0000657a,0x00050006,0x0000014a,0x00000006,0x65646f4d,0x00000000,0x00050006, + 0x0000014a,0x00000007,0x65736572,0x00000074,0x00080006,0x0000014a,0x00000008,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x0000014a,0x00000009,0x746c6564, + 0x6d695461,0x00000065,0x00090006,0x0000014a,0x0000000a,0x4c445548,0x41737365,0x63617474, + 0x46646568,0x6f746361,0x00000072,0x00080006,0x0000014a,0x0000000b,0x74736964,0x6974726f, + 0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x0000014a,0x0000000c,0x6974706f,0x466c6163, + 0x53776f6c,0x656c6163,0x00000000,0x00090006,0x0000014a,0x0000000d,0x6974706f,0x466c6163, + 0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x0000014a,0x0000000e,0x70736964, + 0x68637461,0x67616c46,0x00000073,0x00070006,0x0000014a,0x0000000f,0x5278616d,0x65646e65, + 0x7a695372,0x00000065,0x00090006,0x0000014a,0x00000010,0x6974706f,0x466c6163,0x48776f6c, + 0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x0000014a,0x00000011,0x496d754e,0x6174736e, + 0x7365636e,0x00000000,0x00090006,0x0000014a,0x00000012,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x73614274,0x00000065,0x00090006,0x0000014a,0x00000013,0x65746e69,0x6c6f7072, + 0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x0000014a,0x00000014,0x75626564, + 0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x0000014a,0x00000015,0x6b636162,0x66667542, + 0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000014a,0x00000016, + 0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x0000014a,0x00000017,0x6e615466, + 0x666c6148,0x00564f46,0x00050006,0x0000014a,0x00000018,0x6461705f,0x00000031,0x00050006, + 0x0000014a,0x00000019,0x74694a66,0x00726574,0x00080006,0x0000014a,0x0000001a,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000014c,0x49466263,0x00000000, + 0x000a0005,0x0000017c,0x72705f72,0x6f697665,0x695f7375,0x7265746e,0x616c6f70,0x6e6f6974, + 0x756f735f,0x00656372,0x00060005,0x00000180,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x000a0005,0x00000189,0x75635f72,0x6e657272,0x6e695f74,0x70726574,0x74616c6f,0x5f6e6f69, + 0x72756f73,0x00006563,0x00090005,0x00000192,0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974, + 0x6365765f,0x73726f74,0x00000000,0x00060005,0x00000199,0x69645f72,0x6574616c,0x65645f64, + 0x00687470,0x00090005,0x000001a0,0x6e695f72,0x5f747570,0x74736964,0x6974726f,0x665f6e6f, + 0x646c6569,0x00000000,0x000a0005,0x000001ab,0x675f7772,0x5f656d61,0x69746f6d,0x765f6e6f, + 0x6f746365,0x69665f72,0x5f646c65,0x00000078,0x000a0005,0x000001b2,0x675f7772,0x5f656d61, + 0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65,0x00000079,0x00060005,0x000001b8, + 0x65725075,0x756f6976,0x6c615673,0x00586575,0x00060005,0x000001be,0x65725075,0x756f6976, + 0x6c615673,0x00596575,0x00090005,0x000001c4,0x69784575,0x6e697473,0x63655667,0x46726f74, + 0x646c6569,0x72746e45,0x00000079,0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005, + 0x000001c7,0x61726170,0x0000006d,0x00030005,0x000001d5,0x00005966,0x00030005,0x000001e8, + 0x00000070,0x00040005,0x000001ed,0x61726170,0x0000006d,0x00040005,0x000001f5,0x61726170, + 0x0000006d,0x00050005,0x000001ff,0x6e694c66,0x52726165,0x00006267,0x00040005,0x00000200, + 0x61726170,0x0000006d,0x00040005,0x00000204,0x61726170,0x0000006d,0x00040005,0x0000020e, + 0x61726170,0x0000006d,0x00040005,0x00000210,0x61726170,0x0000006d,0x00040005,0x00000211, + 0x61726170,0x0000006d,0x00050005,0x00000218,0x6d754c66,0x6e616e69,0x00006563,0x00040005, + 0x0000021e,0x61726170,0x0000006d,0x00040005,0x00000221,0x61726170,0x0000006d,0x00040005, + 0x00000224,0x61726170,0x0000006d,0x00040005,0x00000227,0x61726170,0x0000006d,0x00040005, + 0x0000022a,0x61726170,0x0000006d,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00050005, + 0x00000234,0x53785066,0x6c706d61,0x00000065,0x00040005,0x0000023d,0x61746164,0x00000000, + 0x00040005,0x00000243,0x46785066,0x00636172,0x00040005,0x00000244,0x61726170,0x0000006d, + 0x00070005,0x00000270,0x69766564,0x6f546563,0x77656956,0x74706544,0x00000068,0x00030005, + 0x0000029b,0x0000006d,0x00040005,0x0000029c,0x61726170,0x0000006d,0x00040005,0x0000029d, + 0x61726170,0x0000006d,0x00040005,0x000002a4,0x61726170,0x0000006d,0x00040005,0x000002a5, + 0x61726170,0x0000006d,0x00050005,0x000002b3,0x69725075,0x7469726f,0x00000079,0x00040005, + 0x000002c3,0x6b636170,0x00586465,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00040005, + 0x000002ca,0x6b636170,0x00596465,0x00040005,0x000002cc,0x61726170,0x0000006d,0x00040005, + 0x000002d7,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00060005, + 0x000002db,0x69725075,0x7469726f,0x63614679,0x00726f74,0x00040005,0x000002e5,0x61726170, + 0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d,0x00070005,0x000002eb,0x49765566, + 0x7263536e,0x536e6565,0x65636170,0x00000000,0x00070005,0x000002f3,0x73694466,0x74726f74, + 0x466e6f69,0x646c6569,0x00007655,0x00040005,0x000002f4,0x61726170,0x0000006d,0x00080005, + 0x000002f7,0x73694469,0x74726f74,0x506e6f69,0x6c657869,0x7366664f,0x00007465,0x00090005, + 0x000002fd,0x49765566,0x746e496e,0x6f707265,0x6974616c,0x65526e6f,0x74537463,0x00747261, + 0x00070005,0x00000303,0x4c765566,0x65747465,0x786f4272,0x6c616353,0x00000065,0x00080005, + 0x00000309,0x49765566,0x746e496e,0x6f707265,0x6974616c,0x65526e6f,0x00007463,0x00060005, + 0x0000030f,0x70654466,0x61536874,0x656c706d,0x00000000,0x00040005,0x00000313,0x61726170, + 0x0000006d,0x00070005,0x00000315,0x6d614766,0x746f4d65,0x566e6f69,0x6f746365,0x00000072, + 0x00040005,0x00000319,0x61726170,0x0000006d,0x00070005,0x0000031b,0x746f4d66,0x566e6f69, + 0x6f746365,0x6c614872,0x00000066,0x00080005,0x0000031e,0x746e4966,0x6f707265,0x6574616c, + 0x636f4c64,0x6f697461,0x0076556e,0x00060005,0x00000322,0x65695666,0x61705377,0x65446563, + 0x00687470,0x00040005,0x00000323,0x61726170,0x0000006d,0x00090005,0x00000326,0x67694875, + 0x69725068,0x7469726f,0x63614679,0x50726f74,0x616d6972,0x00007972,0x00040005,0x00000327, + 0x61726170,0x0000006d,0x00070005,0x0000032a,0x76657270,0x6b636142,0x66667562,0x6f437265, + 0x0000006c,0x00040005,0x00000330,0x61726170,0x0000006d,0x00070005,0x00000332,0x42727563, + 0x626b6361,0x65666675,0x6c6f4372,0x00000000,0x00040005,0x00000333,0x61726170,0x0000006d, + 0x00050005,0x00000336,0x76657270,0x616d754c,0x00000000,0x00040005,0x00000338,0x61726170, + 0x0000006d,0x00050005,0x0000033c,0x72727563,0x616d754c,0x00000000,0x00040005,0x0000033d, + 0x61726170,0x0000006d,0x00070005,0x00000341,0x776f4c75,0x6f697250,0x79746972,0x74636146, + 0x0000726f,0x00040005,0x00000345,0x61726170,0x0000006d,0x00040005,0x00000346,0x61726170, + 0x0000006d,0x00040005,0x0000034a,0x61726170,0x0000006d,0x00040005,0x00000352,0x61726170, + 0x0000006d,0x00070005,0x00000356,0x6b636170,0x65566465,0x726f7463,0x6d697250,0x00797261, + 0x00040005,0x00000358,0x61726170,0x0000006d,0x00040005,0x00000359,0x61726170,0x0000006d, + 0x00040005,0x0000035b,0x61726170,0x0000006d,0x00040005,0x0000035d,0x61726170,0x0000006d, + 0x00060005,0x00000360,0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x00000362, + 0x61726170,0x0000006d,0x00040005,0x00000364,0x61726170,0x0000006d,0x00060005,0x00000367, + 0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x00000370,0x66664f69,0x00746573, + 0x00050005,0x00000374,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x0000037a,0x61726170, + 0x0000006d,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005,0x00000380,0x61726170, + 0x0000006d,0x00040005,0x00000382,0x61726170,0x0000006d,0x00080005,0x00000387,0x69725762, + 0x65536574,0x646e6f63,0x56797261,0x6f746365,0x00007372,0x00060005,0x00000391,0x69725762, + 0x65536574,0x646e6f63,0x00797261,0x00060005,0x00000392,0x6d754e75,0x6d697250,0x48797261, + 0x00737469,0x00070005,0x00000393,0x63655366,0x61646e6f,0x74537972,0x63537065,0x00656c61, + 0x00040005,0x00000399,0x65745366,0x00764d70,0x00050005,0x0000039c,0x65724266,0x69446b61, + 0x00007473,0x00040005,0x000003a0,0x61726170,0x0000006d,0x00040005,0x000003a1,0x61726170, + 0x0000006d,0x00050005,0x000003a3,0x53764d66,0x656c6163,0x00000000,0x00080005,0x000003af, + 0x63655366,0x61646e6f,0x6f4c7972,0x69746163,0x76556e6f,0x00000000,0x00060005,0x000003b5, + 0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000003b7,0x61726170,0x0000006d, + 0x00040005,0x000003b9,0x61726170,0x0000006d,0x000a0005,0x000003bb,0x67694875,0x69725068, + 0x7469726f,0x63614679,0x53726f74,0x6e6f6365,0x79726164,0x00000000,0x00040005,0x000003be, + 0x61726170,0x0000006d,0x00040005,0x000003bf,0x61726170,0x0000006d,0x00050005,0x000003c1, + 0x436f5466,0x65746e65,0x00000072,0x00040005,0x000003c8,0x61726170,0x0000006d,0x00040005, + 0x000003c9,0x61726170,0x0000006d,0x00080005,0x000003cd,0x6b636170,0x65566465,0x726f7463, + 0x6f636553,0x7261646e,0x00000079,0x00040005,0x000003cf,0x61726170,0x0000006d,0x00040005, + 0x000003d0,0x61726170,0x0000006d,0x00040005,0x000003d2,0x61726170,0x0000006d,0x00040005, + 0x000003d4,0x61726170,0x0000006d,0x00060005,0x000003d7,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x000003df,0x66664f69,0x00746573,0x00050005,0x000003e3,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x000003ec,0x61726170,0x0000006d,0x00040005,0x000003ee, + 0x61726170,0x0000006d,0x00090005,0x000003f4,0x69784575,0x6e697473,0x63655667,0x46726f74, + 0x646c6569,0x72746e45,0x00000079,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005, + 0x000003f7,0x61726170,0x0000006d,0x00040005,0x000003fa,0x61726170,0x0000006d,0x00080005, + 0x0000040c,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x00000410,0x61726170,0x0000006d,0x00030047,0x0000014a,0x00000002,0x00050048,0x0000014a, + 0x00000000,0x00000023,0x00000000,0x00050048,0x0000014a,0x00000001,0x00000023,0x00000008, + 0x00050048,0x0000014a,0x00000002,0x00000023,0x00000010,0x00050048,0x0000014a,0x00000003, + 0x00000023,0x00000018,0x00050048,0x0000014a,0x00000004,0x00000023,0x0000001c,0x00050048, + 0x0000014a,0x00000005,0x00000023,0x00000020,0x00050048,0x0000014a,0x00000006,0x00000023, + 0x00000028,0x00050048,0x0000014a,0x00000007,0x00000023,0x0000002c,0x00050048,0x0000014a, + 0x00000008,0x00000023,0x00000030,0x00050048,0x0000014a,0x00000009,0x00000023,0x00000040, + 0x00050048,0x0000014a,0x0000000a,0x00000023,0x00000044,0x00050048,0x0000014a,0x0000000b, + 0x00000023,0x00000048,0x00050048,0x0000014a,0x0000000c,0x00000023,0x00000050,0x00050048, + 0x0000014a,0x0000000d,0x00000023,0x00000058,0x00050048,0x0000014a,0x0000000e,0x00000023, + 0x0000005c,0x00050048,0x0000014a,0x0000000f,0x00000023,0x00000060,0x00050048,0x0000014a, + 0x00000010,0x00000023,0x00000068,0x00050048,0x0000014a,0x00000011,0x00000023,0x0000006c, + 0x00050048,0x0000014a,0x00000012,0x00000023,0x00000070,0x00050048,0x0000014a,0x00000013, + 0x00000023,0x00000078,0x00050048,0x0000014a,0x00000014,0x00000023,0x00000080,0x00050048, + 0x0000014a,0x00000015,0x00000023,0x0000008c,0x00050048,0x0000014a,0x00000016,0x00000023, + 0x00000090,0x00050048,0x0000014a,0x00000017,0x00000023,0x00000098,0x00050048,0x0000014a, + 0x00000018,0x00000023,0x0000009c,0x00050048,0x0000014a,0x00000019,0x00000023,0x000000a0, + 0x00050048,0x0000014a,0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000014c,0x00000021, + 0x00000007,0x00040047,0x0000014c,0x00000022,0x00000000,0x00040047,0x0000017c,0x00000021, + 0x00000002,0x00040047,0x0000017c,0x00000022,0x00000000,0x00040047,0x00000180,0x00000021, + 0x000003e8,0x00040047,0x00000180,0x00000022,0x00000000,0x00040047,0x00000189,0x00000021, + 0x00000003,0x00040047,0x00000189,0x00000022,0x00000000,0x00040047,0x00000192,0x00000021, + 0x00000000,0x00040047,0x00000192,0x00000022,0x00000000,0x00040047,0x00000199,0x00000021, + 0x00000001,0x00040047,0x00000199,0x00000022,0x00000000,0x00040047,0x000001a0,0x00000021, + 0x00000004,0x00040047,0x000001a0,0x00000022,0x00000000,0x00040047,0x000001ab,0x00000021, + 0x00000005,0x00040047,0x000001ab,0x00000022,0x00000000,0x00040047,0x000001b2,0x00000021, + 0x00000006,0x00040047,0x000001b2,0x00000022,0x00000000,0x00040047,0x0000040c,0x0000000b, + 0x0000001c,0x00040047,0x0000041b,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008, + 0x00000007,0x00040020,0x0000000d,0x00000007,0x00000008,0x00040021,0x0000000e,0x00000006, + 0x0000000d,0x00040017,0x00000012,0x00000008,0x00000003,0x00040021,0x00000013,0x00000012, + 0x0000000d,0x00040020,0x00000017,0x00000007,0x00000012,0x00040021,0x00000018,0x00000012, + 0x00000017,0x00040017,0x0000001c,0x00000008,0x00000002,0x00040020,0x0000001d,0x00000007, + 0x0000001c,0x00040021,0x0000001e,0x0000001c,0x0000001d,0x00040021,0x00000022,0x00000008, + 0x0000000d,0x00050021,0x00000026,0x00000008,0x0000000d,0x0000000d,0x00050021,0x0000002f, + 0x00000006,0x00000007,0x00000007,0x00060021,0x00000038,0x00000012,0x00000017,0x00000017, + 0x00000017,0x00040015,0x00000047,0x00000020,0x00000001,0x00040017,0x00000048,0x00000047, + 0x00000002,0x00030021,0x00000049,0x00000048,0x00040017,0x00000052,0x00000008,0x00000004, + 0x00030021,0x00000053,0x00000052,0x00030021,0x00000056,0x00000006,0x00030021,0x00000059, + 0x00000008,0x00040021,0x0000005e,0x00000012,0x0000001d,0x00040020,0x00000065,0x00000007, + 0x00000048,0x00040021,0x00000066,0x0000001c,0x00000065,0x00040021,0x0000006a,0x00000008, + 0x00000065,0x00040017,0x00000071,0x00000006,0x00000002,0x00040020,0x00000072,0x00000007, + 0x00000071,0x00050021,0x00000073,0x00000002,0x00000065,0x00000072,0x00050021,0x00000078, + 0x00000006,0x00000065,0x00000072,0x00040021,0x0000007d,0x00000008,0x00000017,0x00060021, + 0x00000084,0x00000012,0x00000017,0x0000000d,0x0000000d,0x0004002b,0x00000006,0x00000090, + 0x00000004,0x0004001c,0x00000091,0x00000048,0x00000090,0x0004001c,0x00000092,0x00000008, + 0x00000090,0x0005001e,0x00000093,0x00000091,0x00000092,0x00000048,0x00050021,0x00000094, + 0x00000093,0x0000001d,0x00000065,0x00020014,0x0000009c,0x00050021,0x0000009d,0x0000009c, + 0x00000065,0x00000065,0x00040021,0x000000a2,0x0000009c,0x0000001d,0x00050021,0x000000a6, + 0x00000008,0x00000008,0x00000008,0x00040021,0x000000ab,0x0000009c,0x00000007,0x00040020, + 0x000000af,0x00000007,0x0000009c,0x00070021,0x000000b0,0x00000071,0x000000af,0x00000007, + 0x00000007,0x0000001d,0x00040021,0x000000ba,0x00000002,0x00000065,0x0004002b,0x00000008, + 0x000000c3,0x00000000,0x0004002b,0x00000008,0x000000cf,0x3f800000,0x0004002b,0x00000006, + 0x00000100,0xff800000,0x0004002b,0x00000008,0x0000010c,0x3c4fcd9e,0x0004002b,0x00000008, + 0x00000111,0x3f560008,0x0004002b,0x00000008,0x00000117,0x4196d014,0x0004002b,0x00000008, + 0x0000011a,0x41958000,0x0004002b,0x00000008,0x00000121,0x40c8e061,0x0004002b,0x00000008, + 0x00000128,0x3d25aee6,0x0004002b,0x00000008,0x00000129,0x3d9e8391,0x0004002b,0x00000008, + 0x0000012a,0x4019999a,0x0006002c,0x00000012,0x0000012b,0x00000128,0x00000129,0x0000012a, + 0x0004002b,0x00000008,0x0000012d,0x3f72a76e,0x0004002b,0x00000008,0x0000012e,0x3d558919, + 0x0005002c,0x0000001c,0x0000012f,0x0000012d,0x0000012e,0x001d001e,0x0000014a,0x00000048, + 0x00000048,0x0000001c,0x00000008,0x00000008,0x00000048,0x00000047,0x00000047,0x00000052, + 0x00000008,0x00000047,0x00000048,0x0000001c,0x00000047,0x00000006,0x00000048,0x00000047, + 0x00000047,0x00000048,0x00000048,0x00000012,0x00000006,0x0000001c,0x00000008,0x00000047, + 0x0000001c,0x0000001c,0x00040020,0x0000014b,0x00000002,0x0000014a,0x0004003b,0x0000014b, + 0x0000014c,0x00000002,0x0004002b,0x00000047,0x0000014d,0x00000012,0x00040020,0x0000014e, + 0x00000002,0x00000048,0x0004002b,0x00000047,0x00000153,0x00000013,0x0004002b,0x00000047, + 0x00000158,0x00000000,0x0004002b,0x00000047,0x0000015d,0x00000001,0x0004002b,0x00000047, + 0x00000162,0x00000008,0x00040020,0x00000163,0x00000002,0x00000052,0x0004002b,0x00000047, + 0x00000168,0x00000015,0x00040020,0x00000169,0x00000002,0x00000006,0x0004002b,0x00000047, + 0x0000016e,0x00000016,0x0004002b,0x00000006,0x0000016f,0x00000000,0x00040020,0x00000170, + 0x00000002,0x00000008,0x0004002b,0x00000006,0x00000175,0x00000001,0x00090019,0x0000017a, + 0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000017b,0x00000000,0x0000017a,0x0004003b,0x0000017b,0x0000017c,0x00000000,0x0002001a, + 0x0000017e,0x00040020,0x0000017f,0x00000000,0x0000017e,0x0004003b,0x0000017f,0x00000180, + 0x00000000,0x0003001b,0x00000182,0x0000017a,0x0004003b,0x0000017b,0x00000189,0x00000000, + 0x0004003b,0x0000017b,0x00000192,0x00000000,0x0004003b,0x0000017b,0x00000199,0x00000000, + 0x0004003b,0x0000017b,0x000001a0,0x00000000,0x00090019,0x000001a9,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x000001aa,0x00000000, + 0x000001a9,0x0004003b,0x000001aa,0x000001ab,0x00000000,0x00040020,0x000001af,0x0000000b, + 0x00000006,0x0004003b,0x000001aa,0x000001b2,0x00000000,0x0004002b,0x00000008,0x000001ce, + 0x3e59b3d0,0x0004002b,0x00000008,0x000001cf,0x3f371759,0x0004002b,0x00000008,0x000001d0, + 0x3d93dd98,0x0006002c,0x00000012,0x000001d1,0x000001ce,0x000001cf,0x000001d0,0x0004002b, + 0x00000008,0x000001d6,0x3e86809d,0x0004002b,0x00000008,0x000001da,0x3f2d9168,0x0004002b, + 0x00000008,0x000001df,0x3d72e48f,0x0004002b,0x00000006,0x000001e0,0x00000002,0x0004002b, + 0x00000008,0x000001eb,0x42a00000,0x0004002b,0x00000008,0x00000207,0x461c4000,0x0004002b, + 0x00000008,0x00000239,0x3f000000,0x0005002c,0x0000001c,0x0000023a,0x00000239,0x00000239, + 0x00040020,0x0000023c,0x00000007,0x00000093,0x0004002b,0x00000047,0x0000023e,0x00000002, + 0x0005002c,0x00000048,0x00000247,0x00000158,0x00000158,0x0005002c,0x00000048,0x00000249, + 0x0000015d,0x00000158,0x0005002c,0x00000048,0x0000024b,0x00000158,0x0000015d,0x0004002b, + 0x00000047,0x0000024d,0x00000003,0x0005002c,0x00000048,0x0000024e,0x0000015d,0x0000015d, + 0x00040020,0x0000026f,0x00000007,0x00000052,0x00040017,0x0000027f,0x0000009c,0x00000002, + 0x0004002b,0x00000006,0x000002ae,0x80000000,0x0004002b,0x00000006,0x000002b8,0x000003ff, + 0x0004002b,0x00000006,0x000002ba,0x00000015,0x0004002b,0x00000006,0x000002be,0x0000001f, + 0x0004002b,0x00000006,0x000002c0,0x00000010,0x0004002b,0x00000008,0x000002d6,0x3ea8f5c3, + 0x0004002b,0x00000008,0x000002e2,0x447fc000,0x0004002b,0x00000008,0x00000337,0x3a83126f, + 0x0004002b,0x00000008,0x00000348,0x41f80000,0x00030029,0x0000009c,0x00000357,0x00040020, + 0x00000366,0x00000007,0x00000047,0x0004002b,0x00000047,0x0000036e,0x00000004,0x0004002b, + 0x00000008,0x0000039f,0x3f3504f3,0x0003002a,0x0000009c,0x000003ce,0x0004002b,0x00000006, + 0x00000402,0x00000003,0x00040017,0x0000040a,0x00000006,0x00000003,0x00040020,0x0000040b, + 0x00000001,0x0000040a,0x0004003b,0x0000040b,0x0000040c,0x00000001,0x0004002b,0x00000008, + 0x00000412,0x387fda40,0x0004002b,0x00000008,0x00000413,0x477fe000,0x0004002b,0x00000008, + 0x00000414,0x37801002,0x0004002b,0x00000008,0x00000415,0x7f7fffff,0x0004002b,0x00000008, + 0x00000416,0x00800000,0x0004002b,0x00000006,0x00000417,0x00000020,0x0004002b,0x00000006, + 0x00000418,0x00000005,0x0004002b,0x00000006,0x00000419,0x0000000a,0x0004002b,0x00000006, + 0x0000041a,0x00000008,0x0006002c,0x0000040a,0x0000041b,0x0000041a,0x0000041a,0x00000175, + 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b, + 0x00000065,0x00000410,0x00000007,0x0004003d,0x0000040a,0x0000040d,0x0000040c,0x0007004f, + 0x00000071,0x0000040e,0x0000040d,0x0000040d,0x00000000,0x00000001,0x0004007c,0x00000048, + 0x0000040f,0x0000040e,0x0003003e,0x00000410,0x0000040f,0x00050039,0x00000002,0x00000411, + 0x000000bc,0x00000410,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006, + 0x000000be,0x0000000a,0x0004007c,0x00000008,0x000000bf,0x000000be,0x000200fe,0x000000bf, + 0x00010038,0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d, + 0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000008,0x000000c2,0x0000000f,0x00050050, + 0x0000001c,0x000000c4,0x000000c2,0x000000c3,0x0006000c,0x00000006,0x000000c5,0x00000001, + 0x0000003a,0x000000c4,0x000200fe,0x000000c5,0x00010038,0x00050036,0x00000012,0x00000015, + 0x00000000,0x00000013,0x00030037,0x0000000d,0x00000014,0x000200f8,0x00000016,0x0004003d, + 0x00000008,0x000000c8,0x00000014,0x00060050,0x00000012,0x000000c9,0x000000c8,0x000000c8, + 0x000000c8,0x000200fe,0x000000c9,0x00010038,0x00050036,0x00000012,0x0000001a,0x00000000, + 0x00000018,0x00030037,0x00000017,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x0000000d, + 0x000000cd,0x00000007,0x0004003b,0x0000000d,0x000000d0,0x00000007,0x0004003d,0x00000012, + 0x000000cc,0x00000019,0x0003003e,0x000000cd,0x000000c3,0x00050039,0x00000012,0x000000ce, + 0x00000015,0x000000cd,0x0003003e,0x000000d0,0x000000cf,0x00050039,0x00000012,0x000000d1, + 0x00000015,0x000000d0,0x0008000c,0x00000012,0x000000d2,0x00000001,0x0000002b,0x000000cc, + 0x000000ce,0x000000d1,0x000200fe,0x000000d2,0x00010038,0x00050036,0x0000001c,0x00000020, + 0x00000000,0x0000001e,0x00030037,0x0000001d,0x0000001f,0x000200f8,0x00000021,0x0004003d, + 0x0000001c,0x000000d5,0x0000001f,0x0006000c,0x0000001c,0x000000d6,0x00000001,0x0000000a, + 0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000008,0x00000024,0x00000000, + 0x00000022,0x00030037,0x0000000d,0x00000023,0x000200f8,0x00000025,0x0004003d,0x00000008, + 0x000000d9,0x00000023,0x0006000c,0x00000008,0x000000da,0x00000001,0x00000002,0x000000d9, + 0x000200fe,0x000000da,0x00010038,0x00050036,0x00000008,0x00000029,0x00000000,0x00000026, + 0x00030037,0x0000000d,0x00000027,0x00030037,0x0000000d,0x00000028,0x000200f8,0x0000002a, + 0x0004003d,0x00000008,0x000000dd,0x00000027,0x0004003d,0x00000008,0x000000de,0x00000028, + 0x0007000c,0x00000008,0x000000df,0x00000001,0x00000025,0x000000dd,0x000000de,0x000200fe, + 0x000000df,0x00010038,0x00050036,0x00000008,0x0000002d,0x00000000,0x00000026,0x00030037, + 0x0000000d,0x0000002b,0x00030037,0x0000000d,0x0000002c,0x000200f8,0x0000002e,0x0004003d, + 0x00000008,0x000000e2,0x0000002b,0x0004003d,0x00000008,0x000000e3,0x0000002c,0x0007000c, + 0x00000008,0x000000e4,0x00000001,0x00000028,0x000000e2,0x000000e3,0x000200fe,0x000000e4, + 0x00010038,0x00050036,0x00000006,0x00000032,0x00000000,0x0000002f,0x00030037,0x00000007, + 0x00000030,0x00030037,0x00000007,0x00000031,0x000200f8,0x00000033,0x0004003d,0x00000006, + 0x000000e7,0x00000030,0x0004003d,0x00000006,0x000000e8,0x00000031,0x0007000c,0x00000006, + 0x000000e9,0x00000001,0x00000029,0x000000e7,0x000000e8,0x000200fe,0x000000e9,0x00010038, + 0x00050036,0x00000008,0x00000036,0x00000000,0x00000026,0x00030037,0x0000000d,0x00000034, + 0x00030037,0x0000000d,0x00000035,0x000200f8,0x00000037,0x0004003d,0x00000008,0x000000ec, + 0x00000034,0x0004003d,0x00000008,0x000000ed,0x00000035,0x0007000c,0x00000008,0x000000ee, + 0x00000001,0x0000001a,0x000000ec,0x000000ed,0x000200fe,0x000000ee,0x00010038,0x00050036, + 0x00000012,0x0000003c,0x00000000,0x00000038,0x00030037,0x00000017,0x00000039,0x00030037, + 0x00000017,0x0000003a,0x00030037,0x00000017,0x0000003b,0x000200f8,0x0000003d,0x0004003b, + 0x00000017,0x000000f1,0x00000007,0x0004003d,0x00000012,0x000000f2,0x00000039,0x0004007f, + 0x00000012,0x000000f3,0x000000f2,0x0004003d,0x00000012,0x000000f4,0x0000003b,0x00050085, + 0x00000012,0x000000f5,0x000000f3,0x000000f4,0x0004003d,0x00000012,0x000000f6,0x0000003b, + 0x00050081,0x00000012,0x000000f7,0x000000f5,0x000000f6,0x0003003e,0x000000f1,0x000000f7, + 0x0004003d,0x00000012,0x000000f8,0x00000039,0x0004003d,0x00000012,0x000000f9,0x0000003a, + 0x00050085,0x00000012,0x000000fa,0x000000f8,0x000000f9,0x0004003d,0x00000012,0x000000fb, + 0x000000f1,0x00050081,0x00000012,0x000000fc,0x000000fa,0x000000fb,0x000200fe,0x000000fc, + 0x00010038,0x00050036,0x00000012,0x0000003f,0x00000000,0x00000018,0x00030037,0x00000017, + 0x0000003e,0x000200f8,0x00000040,0x0004003b,0x00000007,0x00000101,0x00000007,0x0004003b, + 0x0000000d,0x00000103,0x00000007,0x0004003b,0x00000017,0x00000106,0x00000007,0x0004003d, + 0x00000012,0x000000ff,0x0000003e,0x0003003e,0x00000101,0x00000100,0x00050039,0x00000008, + 0x00000102,0x0000000b,0x00000101,0x0003003e,0x00000103,0x00000102,0x00050039,0x00000012, + 0x00000104,0x00000015,0x00000103,0x00050085,0x00000012,0x00000105,0x000000ff,0x00000104, + 0x0003003e,0x00000106,0x00000105,0x00050039,0x00000012,0x00000107,0x0000001a,0x00000106, + 0x000200fe,0x00000107,0x00010038,0x00050036,0x00000012,0x00000042,0x00000000,0x00000018, + 0x00030037,0x00000017,0x00000041,0x000200f8,0x00000043,0x0004003b,0x00000017,0x0000010a, + 0x00000007,0x0004003b,0x0000000d,0x0000010d,0x00000007,0x0004003b,0x0000000d,0x00000112, + 0x00000007,0x0004003b,0x00000017,0x00000115,0x00000007,0x0004003b,0x0000000d,0x00000118, + 0x00000007,0x0004003b,0x0000000d,0x0000011b,0x00000007,0x0004003b,0x0000000d,0x00000122, + 0x00000007,0x0004003d,0x00000012,0x0000010b,0x00000041,0x0003003e,0x0000010d,0x0000010c, + 0x00050039,0x00000012,0x0000010e,0x00000015,0x0000010d,0x0007000c,0x00000012,0x0000010f, + 0x00000001,0x0000001a,0x0000010b,0x0000010e,0x0003003e,0x0000010a,0x0000010f,0x0004003d, + 0x00000012,0x00000110,0x0000010a,0x0003003e,0x00000112,0x00000111,0x00050039,0x00000012, + 0x00000113,0x00000015,0x00000112,0x00050083,0x00000012,0x00000114,0x00000110,0x00000113, + 0x0003003e,0x00000115,0x00000114,0x00050039,0x00000012,0x00000116,0x0000001a,0x00000115, + 0x0003003e,0x00000118,0x00000117,0x00050039,0x00000012,0x00000119,0x00000015,0x00000118, + 0x0003003e,0x0000011b,0x0000011a,0x00050039,0x00000012,0x0000011c,0x00000015,0x0000011b, + 0x0004003d,0x00000012,0x0000011d,0x0000010a,0x00050085,0x00000012,0x0000011e,0x0000011c, + 0x0000011d,0x00050083,0x00000012,0x0000011f,0x00000119,0x0000011e,0x00050088,0x00000012, + 0x00000120,0x00000116,0x0000011f,0x0003003e,0x00000122,0x00000121,0x00050039,0x00000012, + 0x00000123,0x00000015,0x00000122,0x0007000c,0x00000012,0x00000124,0x00000001,0x0000001a, + 0x00000120,0x00000123,0x000200fe,0x00000124,0x00010038,0x00050036,0x00000012,0x00000045, + 0x00000000,0x00000018,0x00030037,0x00000017,0x00000044,0x000200f8,0x00000046,0x0004003b, + 0x00000017,0x00000127,0x00000007,0x0004003b,0x0000001d,0x0000012c,0x00000007,0x0004003b, + 0x00000017,0x00000134,0x00000007,0x0004003b,0x00000017,0x00000144,0x00000007,0x0004003b, + 0x00000017,0x00000145,0x00000007,0x0004003b,0x00000017,0x00000146,0x00000007,0x0003003e, + 0x00000127,0x0000012b,0x0003003e,0x0000012c,0x0000012f,0x0004003d,0x00000012,0x00000130, + 0x00000044,0x0004003d,0x00000012,0x00000131,0x00000127,0x0008004f,0x00000012,0x00000132, + 0x00000131,0x00000131,0x00000000,0x00000000,0x00000000,0x00050083,0x00000012,0x00000133, + 0x00000130,0x00000132,0x0003003e,0x00000134,0x00000133,0x00050039,0x00000012,0x00000135, + 0x0000003f,0x00000134,0x0004003d,0x00000012,0x00000136,0x00000044,0x0004003d,0x00000012, + 0x00000137,0x00000127,0x0008004f,0x00000012,0x00000138,0x00000137,0x00000137,0x00000001, + 0x00000001,0x00000001,0x00050085,0x00000012,0x00000139,0x00000136,0x00000138,0x0004003d, + 0x00000012,0x0000013a,0x00000044,0x0004003d,0x0000001c,0x0000013b,0x0000012c,0x0008004f, + 0x00000012,0x0000013c,0x0000013b,0x0000013b,0x00000000,0x00000000,0x00000000,0x00050085, + 0x00000012,0x0000013d,0x0000013a,0x0000013c,0x0004003d,0x0000001c,0x0000013e,0x0000012c, + 0x0008004f,0x00000012,0x0000013f,0x0000013e,0x0000013e,0x00000001,0x00000001,0x00000001, + 0x00050081,0x00000012,0x00000140,0x0000013d,0x0000013f,0x0004003d,0x00000012,0x00000141, + 0x00000127,0x0008004f,0x00000012,0x00000142,0x00000141,0x00000141,0x00000002,0x00000002, + 0x00000002,0x0007000c,0x00000012,0x00000143,0x00000001,0x0000001a,0x00000140,0x00000142, + 0x0003003e,0x00000144,0x00000135,0x0003003e,0x00000145,0x00000139,0x0003003e,0x00000146, + 0x00000143,0x00070039,0x00000012,0x00000147,0x0000003c,0x00000144,0x00000145,0x00000146, + 0x000200fe,0x00000147,0x00010038,0x00050036,0x00000048,0x0000004a,0x00000000,0x00000049, + 0x000200f8,0x0000004b,0x00050041,0x0000014e,0x0000014f,0x0000014c,0x0000014d,0x0004003d, + 0x00000048,0x00000150,0x0000014f,0x000200fe,0x00000150,0x00010038,0x00050036,0x00000048, + 0x0000004c,0x00000000,0x00000049,0x000200f8,0x0000004d,0x00050041,0x0000014e,0x00000154, + 0x0000014c,0x00000153,0x0004003d,0x00000048,0x00000155,0x00000154,0x000200fe,0x00000155, + 0x00010038,0x00050036,0x00000048,0x0000004e,0x00000000,0x00000049,0x000200f8,0x0000004f, + 0x00050041,0x0000014e,0x00000159,0x0000014c,0x00000158,0x0004003d,0x00000048,0x0000015a, + 0x00000159,0x000200fe,0x0000015a,0x00010038,0x00050036,0x00000048,0x00000050,0x00000000, + 0x00000049,0x000200f8,0x00000051,0x00050041,0x0000014e,0x0000015e,0x0000014c,0x0000015d, + 0x0004003d,0x00000048,0x0000015f,0x0000015e,0x000200fe,0x0000015f,0x00010038,0x00050036, + 0x00000052,0x00000054,0x00000000,0x00000053,0x000200f8,0x00000055,0x00050041,0x00000163, + 0x00000164,0x0000014c,0x00000162,0x0004003d,0x00000052,0x00000165,0x00000164,0x000200fe, + 0x00000165,0x00010038,0x00050036,0x00000006,0x00000057,0x00000000,0x00000056,0x000200f8, + 0x00000058,0x00050041,0x00000169,0x0000016a,0x0000014c,0x00000168,0x0004003d,0x00000006, + 0x0000016b,0x0000016a,0x000200fe,0x0000016b,0x00010038,0x00050036,0x00000008,0x0000005a, + 0x00000000,0x00000059,0x000200f8,0x0000005b,0x00060041,0x00000170,0x00000171,0x0000014c, + 0x0000016e,0x0000016f,0x0004003d,0x00000008,0x00000172,0x00000171,0x000200fe,0x00000172, + 0x00010038,0x00050036,0x00000008,0x0000005c,0x00000000,0x00000059,0x000200f8,0x0000005d, + 0x00060041,0x00000170,0x00000176,0x0000014c,0x0000016e,0x00000175,0x0004003d,0x00000008, + 0x00000177,0x00000176,0x000200fe,0x00000177,0x00010038,0x00050036,0x00000012,0x00000060, + 0x00000000,0x0000005e,0x00030037,0x0000001d,0x0000005f,0x000200f8,0x00000061,0x0004003d, + 0x0000017a,0x0000017d,0x0000017c,0x0004003d,0x0000017e,0x00000181,0x00000180,0x00050056, + 0x00000182,0x00000183,0x0000017d,0x00000181,0x0004003d,0x0000001c,0x00000184,0x0000005f, + 0x00070058,0x00000052,0x00000185,0x00000183,0x00000184,0x00000002,0x000000c3,0x0008004f, + 0x00000012,0x00000186,0x00000185,0x00000185,0x00000000,0x00000001,0x00000002,0x000200fe, + 0x00000186,0x00010038,0x00050036,0x00000012,0x00000063,0x00000000,0x0000005e,0x00030037, + 0x0000001d,0x00000062,0x000200f8,0x00000064,0x0004003d,0x0000017a,0x0000018a,0x00000189, + 0x0004003d,0x0000017e,0x0000018b,0x00000180,0x00050056,0x00000182,0x0000018c,0x0000018a, + 0x0000018b,0x0004003d,0x0000001c,0x0000018d,0x00000062,0x00070058,0x00000052,0x0000018e, + 0x0000018c,0x0000018d,0x00000002,0x000000c3,0x0008004f,0x00000012,0x0000018f,0x0000018e, + 0x0000018e,0x00000000,0x00000001,0x00000002,0x000200fe,0x0000018f,0x00010038,0x00050036, + 0x0000001c,0x00000068,0x00000000,0x00000066,0x00030037,0x00000065,0x00000067,0x000200f8, + 0x00000069,0x0004003d,0x0000017a,0x00000193,0x00000192,0x0004003d,0x00000048,0x00000194, + 0x00000067,0x0007005f,0x00000052,0x00000195,0x00000193,0x00000194,0x00000002,0x00000158, + 0x0007004f,0x0000001c,0x00000196,0x00000195,0x00000195,0x00000000,0x00000001,0x000200fe, + 0x00000196,0x00010038,0x00050036,0x00000008,0x0000006c,0x00000000,0x0000006a,0x00030037, + 0x00000065,0x0000006b,0x000200f8,0x0000006d,0x0004003d,0x0000017a,0x0000019a,0x00000199, + 0x0004003d,0x00000048,0x0000019b,0x0000006b,0x0007005f,0x00000052,0x0000019c,0x0000019a, + 0x0000019b,0x00000002,0x00000158,0x00050051,0x00000008,0x0000019d,0x0000019c,0x00000000, + 0x000200fe,0x0000019d,0x00010038,0x00050036,0x0000001c,0x0000006f,0x00000000,0x0000001e, + 0x00030037,0x0000001d,0x0000006e,0x000200f8,0x00000070,0x0004003d,0x0000017a,0x000001a1, + 0x000001a0,0x0004003d,0x0000017e,0x000001a2,0x00000180,0x00050056,0x00000182,0x000001a3, + 0x000001a1,0x000001a2,0x0004003d,0x0000001c,0x000001a4,0x0000006e,0x00070058,0x00000052, + 0x000001a5,0x000001a3,0x000001a4,0x00000002,0x000000c3,0x0007004f,0x0000001c,0x000001a6, + 0x000001a5,0x000001a5,0x00000000,0x00000001,0x000200fe,0x000001a6,0x00010038,0x00050036, + 0x00000002,0x00000076,0x00000000,0x00000073,0x00030037,0x00000065,0x00000074,0x00030037, + 0x00000072,0x00000075,0x000200f8,0x00000077,0x0004003d,0x00000048,0x000001ac,0x00000074, + 0x00050041,0x00000007,0x000001ad,0x00000075,0x0000016f,0x0004003d,0x00000006,0x000001ae, + 0x000001ad,0x0006003c,0x000001af,0x000001b0,0x000001ab,0x000001ac,0x0000016f,0x000700ef, + 0x00000006,0x000001b1,0x000001b0,0x00000175,0x0000016f,0x000001ae,0x0004003d,0x00000048, + 0x000001b3,0x00000074,0x00050041,0x00000007,0x000001b4,0x00000075,0x00000175,0x0004003d, + 0x00000006,0x000001b5,0x000001b4,0x0006003c,0x000001af,0x000001b6,0x000001b2,0x000001b3, + 0x0000016f,0x000700ef,0x00000006,0x000001b7,0x000001b6,0x00000175,0x0000016f,0x000001b5, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000007b,0x00000000,0x00000078,0x00030037, + 0x00000065,0x00000079,0x00030037,0x00000072,0x0000007a,0x000200f8,0x0000007c,0x0004003b, + 0x00000007,0x000001b8,0x00000007,0x0004003b,0x00000007,0x000001be,0x00000007,0x0004003b, + 0x00000007,0x000001c4,0x00000007,0x0004003b,0x00000007,0x000001c5,0x00000007,0x0004003b, + 0x00000007,0x000001c7,0x00000007,0x0004003d,0x00000048,0x000001b9,0x00000079,0x00050041, + 0x00000007,0x000001ba,0x0000007a,0x0000016f,0x0004003d,0x00000006,0x000001bb,0x000001ba, + 0x0006003c,0x000001af,0x000001bc,0x000001ab,0x000001b9,0x0000016f,0x000700ef,0x00000006, + 0x000001bd,0x000001bc,0x00000175,0x0000016f,0x000001bb,0x0003003e,0x000001b8,0x000001bd, + 0x0004003d,0x00000048,0x000001bf,0x00000079,0x00050041,0x00000007,0x000001c0,0x0000007a, + 0x00000175,0x0004003d,0x00000006,0x000001c1,0x000001c0,0x0006003c,0x000001af,0x000001c2, + 0x000001b2,0x000001bf,0x0000016f,0x000700ef,0x00000006,0x000001c3,0x000001c2,0x00000175, + 0x0000016f,0x000001c1,0x0003003e,0x000001be,0x000001c3,0x0004003d,0x00000006,0x000001c6, + 0x000001b8,0x0003003e,0x000001c5,0x000001c6,0x0004003d,0x00000006,0x000001c8,0x000001be, + 0x0003003e,0x000001c7,0x000001c8,0x00060039,0x00000006,0x000001c9,0x00000032,0x000001c5, + 0x000001c7,0x0003003e,0x000001c4,0x000001c9,0x0004003d,0x00000006,0x000001ca,0x000001c4, + 0x000200fe,0x000001ca,0x00010038,0x00050036,0x00000008,0x0000007f,0x00000000,0x0000007d, + 0x00030037,0x00000017,0x0000007e,0x000200f8,0x00000080,0x0004003d,0x00000012,0x000001cd, + 0x0000007e,0x00050094,0x00000008,0x000001d2,0x000001cd,0x000001d1,0x000200fe,0x000001d2, + 0x00010038,0x00050036,0x00000008,0x00000082,0x00000000,0x0000007d,0x00030037,0x00000017, + 0x00000081,0x000200f8,0x00000083,0x0004003b,0x0000000d,0x000001d5,0x00000007,0x00050041, + 0x0000000d,0x000001d7,0x00000081,0x0000016f,0x0004003d,0x00000008,0x000001d8,0x000001d7, + 0x00050085,0x00000008,0x000001d9,0x000001d6,0x000001d8,0x00050041,0x0000000d,0x000001db, + 0x00000081,0x00000175,0x0004003d,0x00000008,0x000001dc,0x000001db,0x00050085,0x00000008, + 0x000001dd,0x000001da,0x000001dc,0x00050081,0x00000008,0x000001de,0x000001d9,0x000001dd, + 0x00050041,0x0000000d,0x000001e1,0x00000081,0x000001e0,0x0004003d,0x00000008,0x000001e2, + 0x000001e1,0x00050085,0x00000008,0x000001e3,0x000001df,0x000001e2,0x00050081,0x00000008, + 0x000001e4,0x000001de,0x000001e3,0x0003003e,0x000001d5,0x000001e4,0x0004003d,0x00000008, + 0x000001e5,0x000001d5,0x000200fe,0x000001e5,0x00010038,0x00050036,0x00000012,0x00000088, + 0x00000000,0x00000084,0x00030037,0x00000017,0x00000085,0x00030037,0x0000000d,0x00000086, + 0x00030037,0x0000000d,0x00000087,0x000200f8,0x00000089,0x0004003b,0x00000017,0x000001e8, + 0x00000007,0x0004003b,0x0000000d,0x000001ed,0x00000007,0x0004003b,0x0000000d,0x000001f5, + 0x00000007,0x0004003d,0x00000012,0x000001e9,0x00000085,0x0004003d,0x00000008,0x000001ea, + 0x00000086,0x00050088,0x00000008,0x000001ec,0x000001ea,0x000001eb,0x0003003e,0x000001ed, + 0x000001ec,0x00050039,0x00000012,0x000001ee,0x00000015,0x000001ed,0x00050083,0x00000012, + 0x000001ef,0x000001e9,0x000001ee,0x0003003e,0x000001e8,0x000001ef,0x0004003d,0x00000012, + 0x000001f0,0x000001e8,0x0004003d,0x00000008,0x000001f1,0x00000087,0x0004003d,0x00000008, + 0x000001f2,0x00000086,0x00050083,0x00000008,0x000001f3,0x000001f1,0x000001f2,0x00050088, + 0x00000008,0x000001f4,0x000001f3,0x000001eb,0x0003003e,0x000001f5,0x000001f4,0x00050039, + 0x00000012,0x000001f6,0x00000015,0x000001f5,0x00050088,0x00000012,0x000001f7,0x000001f0, + 0x000001f6,0x000200fe,0x000001f7,0x00010038,0x00050036,0x00000012,0x0000008b,0x00000000, + 0x00000018,0x00030037,0x00000017,0x0000008a,0x000200f8,0x0000008c,0x0004003b,0x00000017, + 0x000001ff,0x00000007,0x0004003b,0x00000017,0x00000200,0x00000007,0x0004003b,0x00000017, + 0x00000204,0x00000007,0x0004003b,0x00000017,0x0000020e,0x00000007,0x0004003b,0x0000000d, + 0x00000210,0x00000007,0x0004003b,0x0000000d,0x00000211,0x00000007,0x00040039,0x00000006, + 0x000001fa,0x00000057,0x000300f7,0x000001fe,0x00000000,0x000900fb,0x000001fa,0x000001fe, + 0x00000000,0x000001fb,0x00000001,0x000001fc,0x00000002,0x000001fd,0x000200f8,0x000001fb, + 0x0004003d,0x00000012,0x00000201,0x0000008a,0x0003003e,0x00000200,0x00000201,0x00050039, + 0x00000012,0x00000202,0x00000045,0x00000200,0x0003003e,0x000001ff,0x00000202,0x000200f9, + 0x000001fe,0x000200f8,0x000001fc,0x0004003d,0x00000012,0x00000205,0x0000008a,0x0003003e, + 0x00000204,0x00000205,0x00050039,0x00000012,0x00000206,0x00000042,0x00000204,0x00040039, + 0x00000008,0x00000208,0x0000005c,0x00050088,0x00000008,0x00000209,0x00000207,0x00000208, + 0x0005008e,0x00000012,0x0000020a,0x00000206,0x00000209,0x0003003e,0x000001ff,0x0000020a, + 0x000200f9,0x000001fe,0x000200f8,0x000001fd,0x00040039,0x00000008,0x0000020c,0x0000005a, + 0x00040039,0x00000008,0x0000020d,0x0000005c,0x0004003d,0x00000012,0x0000020f,0x0000008a, + 0x0003003e,0x0000020e,0x0000020f,0x0003003e,0x00000210,0x0000020c,0x0003003e,0x00000211, + 0x0000020d,0x00070039,0x00000012,0x00000212,0x00000088,0x0000020e,0x00000210,0x00000211, + 0x0003003e,0x000001ff,0x00000212,0x000200f9,0x000001fe,0x000200f8,0x000001fe,0x0004003d, + 0x00000012,0x00000215,0x000001ff,0x000200fe,0x00000215,0x00010038,0x00050036,0x00000008, + 0x0000008e,0x00000000,0x0000007d,0x00030037,0x00000017,0x0000008d,0x000200f8,0x0000008f, + 0x0004003b,0x0000000d,0x00000218,0x00000007,0x0004003b,0x00000017,0x0000021e,0x00000007, + 0x0004003b,0x00000017,0x00000221,0x00000007,0x0004003b,0x00000017,0x00000224,0x00000007, + 0x0004003b,0x00000017,0x00000227,0x00000007,0x0004003b,0x00000017,0x0000022a,0x00000007, + 0x0004003b,0x00000017,0x0000022d,0x00000007,0x0003003e,0x00000218,0x000000c3,0x00040039, + 0x00000006,0x00000219,0x00000057,0x000300f7,0x0000021d,0x00000000,0x000900fb,0x00000219, + 0x0000021d,0x00000000,0x0000021a,0x00000001,0x0000021b,0x00000002,0x0000021c,0x000200f8, + 0x0000021a,0x0004003d,0x00000012,0x0000021f,0x0000008d,0x0003003e,0x0000021e,0x0000021f, + 0x00050039,0x00000012,0x00000220,0x0000008b,0x0000021e,0x0003003e,0x00000221,0x00000220, + 0x00050039,0x00000008,0x00000222,0x0000007f,0x00000221,0x0003003e,0x00000218,0x00000222, + 0x000200f9,0x0000021d,0x000200f8,0x0000021b,0x0004003d,0x00000012,0x00000225,0x0000008d, + 0x0003003e,0x00000224,0x00000225,0x00050039,0x00000012,0x00000226,0x0000008b,0x00000224, + 0x0003003e,0x00000227,0x00000226,0x00050039,0x00000008,0x00000228,0x00000082,0x00000227, + 0x0003003e,0x00000218,0x00000228,0x000200f9,0x0000021d,0x000200f8,0x0000021c,0x0004003d, + 0x00000012,0x0000022b,0x0000008d,0x0003003e,0x0000022a,0x0000022b,0x00050039,0x00000012, + 0x0000022c,0x0000008b,0x0000022a,0x0003003e,0x0000022d,0x0000022c,0x00050039,0x00000008, + 0x0000022e,0x0000007f,0x0000022d,0x0003003e,0x00000218,0x0000022e,0x000200f9,0x0000021d, + 0x000200f8,0x0000021d,0x0004003d,0x00000008,0x00000231,0x00000218,0x000200fe,0x00000231, + 0x00010038,0x00050036,0x00000093,0x00000097,0x00000000,0x00000094,0x00030037,0x0000001d, + 0x00000095,0x00030037,0x00000065,0x00000096,0x000200f8,0x00000098,0x0004003b,0x0000001d, + 0x00000234,0x00000007,0x0004003b,0x0000023c,0x0000023d,0x00000007,0x0004003b,0x0000001d, + 0x00000243,0x00000007,0x0004003b,0x0000001d,0x00000244,0x00000007,0x0004003d,0x0000001c, + 0x00000235,0x00000095,0x0004003d,0x00000048,0x00000236,0x00000096,0x0004006f,0x0000001c, + 0x00000237,0x00000236,0x00050085,0x0000001c,0x00000238,0x00000235,0x00000237,0x00050083, + 0x0000001c,0x0000023b,0x00000238,0x0000023a,0x0003003e,0x00000234,0x0000023b,0x0004003d, + 0x0000001c,0x0000023f,0x00000234,0x0006000c,0x0000001c,0x00000240,0x00000001,0x00000008, + 0x0000023f,0x0004006e,0x00000048,0x00000241,0x00000240,0x00050041,0x00000065,0x00000242, + 0x0000023d,0x0000023e,0x0003003e,0x00000242,0x00000241,0x0004003d,0x0000001c,0x00000245, + 0x00000234,0x0003003e,0x00000244,0x00000245,0x00050039,0x0000001c,0x00000246,0x00000020, + 0x00000244,0x0003003e,0x00000243,0x00000246,0x00060041,0x00000065,0x00000248,0x0000023d, + 0x00000158,0x00000158,0x0003003e,0x00000248,0x00000247,0x00060041,0x00000065,0x0000024a, + 0x0000023d,0x00000158,0x0000015d,0x0003003e,0x0000024a,0x00000249,0x00060041,0x00000065, + 0x0000024c,0x0000023d,0x00000158,0x0000023e,0x0003003e,0x0000024c,0x0000024b,0x00060041, + 0x00000065,0x0000024f,0x0000023d,0x00000158,0x0000024d,0x0003003e,0x0000024f,0x0000024e, + 0x00050041,0x0000000d,0x00000250,0x00000243,0x0000016f,0x0004003d,0x00000008,0x00000251, + 0x00000250,0x00050083,0x00000008,0x00000252,0x000000cf,0x00000251,0x00050041,0x0000000d, + 0x00000253,0x00000243,0x00000175,0x0004003d,0x00000008,0x00000254,0x00000253,0x00050083, + 0x00000008,0x00000255,0x000000cf,0x00000254,0x00050085,0x00000008,0x00000256,0x00000252, + 0x00000255,0x00060041,0x0000000d,0x00000257,0x0000023d,0x0000015d,0x00000158,0x0003003e, + 0x00000257,0x00000256,0x00050041,0x0000000d,0x00000258,0x00000243,0x0000016f,0x0004003d, + 0x00000008,0x00000259,0x00000258,0x00050041,0x0000000d,0x0000025a,0x00000243,0x00000175, + 0x0004003d,0x00000008,0x0000025b,0x0000025a,0x00050083,0x00000008,0x0000025c,0x000000cf, + 0x0000025b,0x00050085,0x00000008,0x0000025d,0x00000259,0x0000025c,0x00060041,0x0000000d, + 0x0000025e,0x0000023d,0x0000015d,0x0000015d,0x0003003e,0x0000025e,0x0000025d,0x00050041, + 0x0000000d,0x0000025f,0x00000243,0x0000016f,0x0004003d,0x00000008,0x00000260,0x0000025f, + 0x00050083,0x00000008,0x00000261,0x000000cf,0x00000260,0x00050041,0x0000000d,0x00000262, + 0x00000243,0x00000175,0x0004003d,0x00000008,0x00000263,0x00000262,0x00050085,0x00000008, + 0x00000264,0x00000261,0x00000263,0x00060041,0x0000000d,0x00000265,0x0000023d,0x0000015d, + 0x0000023e,0x0003003e,0x00000265,0x00000264,0x00050041,0x0000000d,0x00000266,0x00000243, + 0x0000016f,0x0004003d,0x00000008,0x00000267,0x00000266,0x00050041,0x0000000d,0x00000268, + 0x00000243,0x00000175,0x0004003d,0x00000008,0x00000269,0x00000268,0x00050085,0x00000008, + 0x0000026a,0x00000267,0x00000269,0x00060041,0x0000000d,0x0000026b,0x0000023d,0x0000015d, + 0x0000024d,0x0003003e,0x0000026b,0x0000026a,0x0004003d,0x00000093,0x0000026c,0x0000023d, + 0x000200fe,0x0000026c,0x00010038,0x00050036,0x00000008,0x0000009a,0x00000000,0x00000022, + 0x00030037,0x0000000d,0x00000099,0x000200f8,0x0000009b,0x0004003b,0x0000026f,0x00000270, + 0x00000007,0x00040039,0x00000052,0x00000271,0x00000054,0x0003003e,0x00000270,0x00000271, + 0x00050041,0x0000000d,0x00000272,0x00000270,0x00000175,0x0004003d,0x00000008,0x00000273, + 0x00000272,0x0004003d,0x00000008,0x00000274,0x00000099,0x00050041,0x0000000d,0x00000275, + 0x00000270,0x0000016f,0x0004003d,0x00000008,0x00000276,0x00000275,0x00050083,0x00000008, + 0x00000277,0x00000274,0x00000276,0x00050088,0x00000008,0x00000278,0x00000273,0x00000277, + 0x000200fe,0x00000278,0x00010038,0x00050036,0x0000009c,0x000000a0,0x00000000,0x0000009d, + 0x00030037,0x00000065,0x0000009e,0x00030037,0x00000065,0x0000009f,0x000200f8,0x000000a1, + 0x0004003d,0x00000048,0x0000027b,0x0000009e,0x0004007c,0x00000071,0x0000027c,0x0000027b, + 0x0004003d,0x00000048,0x0000027d,0x0000009f,0x0004007c,0x00000071,0x0000027e,0x0000027d, + 0x000500b0,0x0000027f,0x00000280,0x0000027c,0x0000027e,0x0004009b,0x0000009c,0x00000281, + 0x00000280,0x000200fe,0x00000281,0x00010038,0x00050036,0x0000009c,0x000000a4,0x00000000, + 0x000000a2,0x00030037,0x0000001d,0x000000a3,0x000200f8,0x000000a5,0x00050041,0x0000000d, + 0x00000284,0x000000a3,0x0000016f,0x0004003d,0x00000008,0x00000285,0x00000284,0x000500ba, + 0x0000009c,0x00000286,0x00000285,0x000000c3,0x000300f7,0x00000288,0x00000000,0x000400fa, + 0x00000286,0x00000287,0x00000288,0x000200f8,0x00000287,0x00050041,0x0000000d,0x00000289, + 0x000000a3,0x0000016f,0x0004003d,0x00000008,0x0000028a,0x00000289,0x000500b8,0x0000009c, + 0x0000028b,0x0000028a,0x000000cf,0x000200f9,0x00000288,0x000200f8,0x00000288,0x000700f5, + 0x0000009c,0x0000028c,0x00000286,0x000000a5,0x0000028b,0x00000287,0x000300f7,0x0000028e, + 0x00000000,0x000400fa,0x0000028c,0x0000028d,0x0000028e,0x000200f8,0x0000028d,0x00050041, + 0x0000000d,0x0000028f,0x000000a3,0x00000175,0x0004003d,0x00000008,0x00000290,0x0000028f, + 0x000500ba,0x0000009c,0x00000291,0x00000290,0x000000c3,0x000300f7,0x00000293,0x00000000, + 0x000400fa,0x00000291,0x00000292,0x00000293,0x000200f8,0x00000292,0x00050041,0x0000000d, + 0x00000294,0x000000a3,0x00000175,0x0004003d,0x00000008,0x00000295,0x00000294,0x000500b8, + 0x0000009c,0x00000296,0x00000295,0x000000cf,0x000200f9,0x00000293,0x000200f8,0x00000293, + 0x000700f5,0x0000009c,0x00000297,0x00000291,0x0000028d,0x00000296,0x00000292,0x000200f9, + 0x0000028e,0x000200f8,0x0000028e,0x000700f5,0x0000009c,0x00000298,0x0000028c,0x00000288, + 0x00000297,0x00000293,0x000200fe,0x00000298,0x00010038,0x00050036,0x00000008,0x000000a9, + 0x00000000,0x000000a6,0x00030037,0x00000008,0x000000a7,0x00030037,0x00000008,0x000000a8, + 0x000200f8,0x000000aa,0x0004003b,0x0000000d,0x0000029b,0x00000007,0x0004003b,0x0000000d, + 0x0000029c,0x00000007,0x0004003b,0x0000000d,0x0000029d,0x00000007,0x0004003b,0x0000000d, + 0x000002a1,0x00000007,0x0004003b,0x0000000d,0x000002a4,0x00000007,0x0004003b,0x0000000d, + 0x000002a5,0x00000007,0x0003003e,0x0000029c,0x000000a7,0x0003003e,0x0000029d,0x000000a8, + 0x00060039,0x00000008,0x0000029e,0x0000002d,0x0000029c,0x0000029d,0x0003003e,0x0000029b, + 0x0000029e,0x0004003d,0x00000008,0x0000029f,0x0000029b,0x000500b7,0x0000009c,0x000002a0, + 0x0000029f,0x000000c3,0x000300f7,0x000002a3,0x00000000,0x000400fa,0x000002a0,0x000002a2, + 0x000002a9,0x000200f8,0x000002a2,0x0003003e,0x000002a4,0x000000a7,0x0003003e,0x000002a5, + 0x000000a8,0x00060039,0x00000008,0x000002a6,0x00000029,0x000002a4,0x000002a5,0x0004003d, + 0x00000008,0x000002a7,0x0000029b,0x00050088,0x00000008,0x000002a8,0x000002a6,0x000002a7, + 0x0003003e,0x000002a1,0x000002a8,0x000200f9,0x000002a3,0x000200f8,0x000002a9,0x0003003e, + 0x000002a1,0x000000c3,0x000200f9,0x000002a3,0x000200f8,0x000002a3,0x0004003d,0x00000008, + 0x000002aa,0x000002a1,0x000200fe,0x000002aa,0x00010038,0x00050036,0x0000009c,0x000000ad, + 0x00000000,0x000000ab,0x00030037,0x00000007,0x000000ac,0x000200f8,0x000000ae,0x0004003d, + 0x00000006,0x000002ad,0x000000ac,0x000500c7,0x00000006,0x000002af,0x000002ad,0x000002ae, + 0x000500ab,0x0000009c,0x000002b0,0x000002af,0x0000016f,0x000200fe,0x000002b0,0x00010038, + 0x00050036,0x00000071,0x000000b5,0x00000000,0x000000b0,0x00030037,0x000000af,0x000000b1, + 0x00030037,0x00000007,0x000000b2,0x00030037,0x00000007,0x000000b3,0x00030037,0x0000001d, + 0x000000b4,0x000200f8,0x000000b6,0x0004003b,0x00000007,0x000002b3,0x00000007,0x0004003b, + 0x00000007,0x000002c3,0x00000007,0x0004003b,0x0000000d,0x000002c5,0x00000007,0x0004003b, + 0x00000007,0x000002ca,0x00000007,0x0004003b,0x0000000d,0x000002cc,0x00000007,0x0004003d, + 0x0000009c,0x000002b4,0x000000b1,0x000600a9,0x00000006,0x000002b5,0x000002b4,0x00000175, + 0x0000016f,0x00050084,0x00000006,0x000002b6,0x000002b5,0x000002ae,0x0004003d,0x00000006, + 0x000002b7,0x000000b2,0x000500c7,0x00000006,0x000002b9,0x000002b7,0x000002b8,0x000500c4, + 0x00000006,0x000002bb,0x000002b9,0x000002ba,0x000500c5,0x00000006,0x000002bc,0x000002b6, + 0x000002bb,0x0004003d,0x00000006,0x000002bd,0x000000b3,0x000500c7,0x00000006,0x000002bf, + 0x000002bd,0x000002be,0x000500c4,0x00000006,0x000002c1,0x000002bf,0x000002c0,0x000500c5, + 0x00000006,0x000002c2,0x000002bc,0x000002c1,0x0003003e,0x000002b3,0x000002c2,0x0004003d, + 0x00000006,0x000002c4,0x000002b3,0x00050041,0x0000000d,0x000002c6,0x000000b4,0x0000016f, + 0x0004003d,0x00000008,0x000002c7,0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00050039, + 0x00000006,0x000002c8,0x00000010,0x000002c5,0x000500c5,0x00000006,0x000002c9,0x000002c4, + 0x000002c8,0x0003003e,0x000002c3,0x000002c9,0x0004003d,0x00000006,0x000002cb,0x000002b3, + 0x00050041,0x0000000d,0x000002cd,0x000000b4,0x00000175,0x0004003d,0x00000008,0x000002ce, + 0x000002cd,0x0003003e,0x000002cc,0x000002ce,0x00050039,0x00000006,0x000002cf,0x00000010, + 0x000002cc,0x000500c5,0x00000006,0x000002d0,0x000002cb,0x000002cf,0x0003003e,0x000002ca, + 0x000002d0,0x0004003d,0x00000006,0x000002d1,0x000002c3,0x0004003d,0x00000006,0x000002d2, + 0x000002ca,0x00050050,0x00000071,0x000002d3,0x000002d1,0x000002d2,0x000200fe,0x000002d3, + 0x00010038,0x00050036,0x00000006,0x000000b8,0x00000000,0x0000000e,0x00030037,0x0000000d, + 0x000000b7,0x000200f8,0x000000b9,0x0004003b,0x0000000d,0x000002d7,0x00000007,0x0004003b, + 0x0000000d,0x000002d9,0x00000007,0x0004003b,0x00000007,0x000002db,0x00000007,0x0004003b, + 0x00000007,0x000002e5,0x00000007,0x0004003b,0x00000007,0x000002e6,0x00000007,0x0004003d, + 0x00000008,0x000002d8,0x000000b7,0x0003003e,0x000002d7,0x000002d8,0x0003003e,0x000002d9, + 0x000002d6,0x00060039,0x00000008,0x000002da,0x00000036,0x000002d7,0x000002d9,0x0003003e, + 0x000000b7,0x000002da,0x0004003d,0x00000008,0x000002dc,0x000000b7,0x0004003d,0x00000008, + 0x000002dd,0x000000b7,0x00050081,0x00000008,0x000002de,0x000000cf,0x000002dd,0x00050088, + 0x00000008,0x000002df,0x000000cf,0x000002de,0x00050085,0x00000008,0x000002e0,0x000002dc, + 0x000002df,0x00050083,0x00000008,0x000002e1,0x000000cf,0x000002e0,0x00050085,0x00000008, + 0x000002e3,0x000002e1,0x000002e2,0x0004006d,0x00000006,0x000002e4,0x000002e3,0x0003003e, + 0x000002db,0x000002e4,0x0003003e,0x000002e5,0x00000175,0x0004003d,0x00000006,0x000002e7, + 0x000002db,0x0003003e,0x000002e6,0x000002e7,0x00060039,0x00000006,0x000002e8,0x00000032, + 0x000002e5,0x000002e6,0x000200fe,0x000002e8,0x00010038,0x00050036,0x00000002,0x000000bc, + 0x00000000,0x000000ba,0x00030037,0x00000065,0x000000bb,0x000200f8,0x000000bd,0x0004003b, + 0x0000001d,0x000002eb,0x00000007,0x0004003b,0x0000001d,0x000002f3,0x00000007,0x0004003b, + 0x0000001d,0x000002f4,0x00000007,0x0004003b,0x00000065,0x000002f7,0x00000007,0x0004003b, + 0x0000001d,0x000002fd,0x00000007,0x0004003b,0x0000001d,0x00000303,0x00000007,0x0004003b, + 0x0000001d,0x00000309,0x00000007,0x0004003b,0x0000000d,0x0000030f,0x00000007,0x0004003b, + 0x00000065,0x00000313,0x00000007,0x0004003b,0x0000001d,0x00000315,0x00000007,0x0004003b, + 0x00000065,0x00000319,0x00000007,0x0004003b,0x0000001d,0x0000031b,0x00000007,0x0004003b, + 0x0000001d,0x0000031e,0x00000007,0x0004003b,0x0000000d,0x00000322,0x00000007,0x0004003b, + 0x0000000d,0x00000323,0x00000007,0x0004003b,0x00000007,0x00000326,0x00000007,0x0004003b, + 0x0000000d,0x00000327,0x00000007,0x0004003b,0x00000017,0x0000032a,0x00000007,0x0004003b, + 0x0000001d,0x00000330,0x00000007,0x0004003b,0x00000017,0x00000332,0x00000007,0x0004003b, + 0x0000001d,0x00000333,0x00000007,0x0004003b,0x0000000d,0x00000336,0x00000007,0x0004003b, + 0x00000017,0x00000338,0x00000007,0x0004003b,0x0000000d,0x0000033c,0x00000007,0x0004003b, + 0x00000017,0x0000033d,0x00000007,0x0004003b,0x00000007,0x00000341,0x00000007,0x0004003b, + 0x0000000d,0x00000345,0x00000007,0x0004003b,0x0000000d,0x00000346,0x00000007,0x0004003b, + 0x0000000d,0x0000034a,0x00000007,0x0004003b,0x0000001d,0x00000352,0x00000007,0x0004003b, + 0x00000072,0x00000356,0x00000007,0x0004003b,0x000000af,0x00000358,0x00000007,0x0004003b, + 0x00000007,0x00000359,0x00000007,0x0004003b,0x00000007,0x0000035b,0x00000007,0x0004003b, + 0x0000001d,0x0000035d,0x00000007,0x0004003b,0x0000023c,0x00000360,0x00000007,0x0004003b, + 0x0000001d,0x00000362,0x00000007,0x0004003b,0x00000065,0x00000364,0x00000007,0x0004003b, + 0x00000366,0x00000367,0x00000007,0x0004003b,0x00000065,0x00000370,0x00000007,0x0004003b, + 0x00000065,0x00000374,0x00000007,0x0004003b,0x00000065,0x0000037a,0x00000007,0x0004003b, + 0x00000065,0x0000037c,0x00000007,0x0004003b,0x00000065,0x00000380,0x00000007,0x0004003b, + 0x00000072,0x00000382,0x00000007,0x0004003b,0x000000af,0x00000387,0x00000007,0x0004003b, + 0x000000af,0x00000391,0x00000007,0x0004003b,0x00000007,0x00000392,0x00000007,0x0004003b, + 0x0000000d,0x00000393,0x00000007,0x0004003b,0x0000001d,0x00000399,0x00000007,0x0004003b, + 0x0000000d,0x0000039c,0x00000007,0x0004003b,0x0000000d,0x000003a0,0x00000007,0x0004003b, + 0x0000000d,0x000003a1,0x00000007,0x0004003b,0x0000000d,0x000003a3,0x00000007,0x0004003b, + 0x0000001d,0x000003af,0x00000007,0x0004003b,0x0000023c,0x000003b5,0x00000007,0x0004003b, + 0x0000001d,0x000003b7,0x00000007,0x0004003b,0x00000065,0x000003b9,0x00000007,0x0004003b, + 0x00000007,0x000003bb,0x00000007,0x0004003b,0x00000007,0x000003be,0x00000007,0x0004003b, + 0x00000007,0x000003bf,0x00000007,0x0004003b,0x0000001d,0x000003c1,0x00000007,0x0004003b, + 0x0000000d,0x000003c8,0x00000007,0x0004003b,0x0000000d,0x000003c9,0x00000007,0x0004003b, + 0x00000072,0x000003cd,0x00000007,0x0004003b,0x000000af,0x000003cf,0x00000007,0x0004003b, + 0x00000007,0x000003d0,0x00000007,0x0004003b,0x00000007,0x000003d2,0x00000007,0x0004003b, + 0x0000001d,0x000003d4,0x00000007,0x0004003b,0x00000366,0x000003d7,0x00000007,0x0004003b, + 0x00000065,0x000003df,0x00000007,0x0004003b,0x00000065,0x000003e3,0x00000007,0x0004003b, + 0x00000065,0x000003ec,0x00000007,0x0004003b,0x00000065,0x000003ee,0x00000007,0x0004003b, + 0x00000007,0x000003f4,0x00000007,0x0004003b,0x00000065,0x000003f5,0x00000007,0x0004003b, + 0x00000072,0x000003f7,0x00000007,0x0004003b,0x00000007,0x000003fa,0x00000007,0x0004003d, + 0x00000048,0x000002ec,0x000000bb,0x0004006f,0x0000001c,0x000002ed,0x000002ec,0x00050050, + 0x0000001c,0x000002ee,0x00000239,0x00000239,0x00050081,0x0000001c,0x000002ef,0x000002ed, + 0x000002ee,0x00040039,0x00000048,0x000002f0,0x0000004e,0x0004006f,0x0000001c,0x000002f1, + 0x000002f0,0x00050088,0x0000001c,0x000002f2,0x000002ef,0x000002f1,0x0003003e,0x000002eb, + 0x000002f2,0x0004003d,0x0000001c,0x000002f5,0x000002eb,0x0003003e,0x000002f4,0x000002f5, + 0x00050039,0x0000001c,0x000002f6,0x0000006f,0x000002f4,0x0003003e,0x000002f3,0x000002f6, + 0x0004003d,0x0000001c,0x000002f8,0x000002f3,0x00040039,0x00000048,0x000002f9,0x0000004e, + 0x0004006f,0x0000001c,0x000002fa,0x000002f9,0x00050085,0x0000001c,0x000002fb,0x000002f8, + 0x000002fa,0x0004006e,0x00000048,0x000002fc,0x000002fb,0x0003003e,0x000002f7,0x000002fc, + 0x00040039,0x00000048,0x000002fe,0x0000004a,0x0004006f,0x0000001c,0x000002ff,0x000002fe, + 0x00040039,0x00000048,0x00000300,0x00000050,0x0004006f,0x0000001c,0x00000301,0x00000300, + 0x00050088,0x0000001c,0x00000302,0x000002ff,0x00000301,0x0003003e,0x000002fd,0x00000302, + 0x00040039,0x00000048,0x00000304,0x0000004c,0x0004006f,0x0000001c,0x00000305,0x00000304, + 0x00040039,0x00000048,0x00000306,0x00000050,0x0004006f,0x0000001c,0x00000307,0x00000306, + 0x00050088,0x0000001c,0x00000308,0x00000305,0x00000307,0x0003003e,0x00000303,0x00000308, + 0x0004003d,0x0000001c,0x0000030a,0x000002fd,0x0004003d,0x0000001c,0x0000030b,0x000002eb, + 0x0004003d,0x0000001c,0x0000030c,0x00000303,0x00050085,0x0000001c,0x0000030d,0x0000030b, + 0x0000030c,0x00050081,0x0000001c,0x0000030e,0x0000030a,0x0000030d,0x0003003e,0x00000309, + 0x0000030e,0x0004003d,0x00000048,0x00000310,0x000000bb,0x0004003d,0x00000048,0x00000311, + 0x000002f7,0x00050080,0x00000048,0x00000312,0x00000310,0x00000311,0x0003003e,0x00000313, + 0x00000312,0x00050039,0x00000008,0x00000314,0x0000006c,0x00000313,0x0003003e,0x0000030f, + 0x00000314,0x0004003d,0x00000048,0x00000316,0x000000bb,0x0004003d,0x00000048,0x00000317, + 0x000002f7,0x00050080,0x00000048,0x00000318,0x00000316,0x00000317,0x0003003e,0x00000319, + 0x00000318,0x00050039,0x0000001c,0x0000031a,0x00000068,0x00000319,0x0003003e,0x00000315, + 0x0000031a,0x0004003d,0x0000001c,0x0000031c,0x00000315,0x0005008e,0x0000001c,0x0000031d, + 0x0000031c,0x00000239,0x0003003e,0x0000031b,0x0000031d,0x0004003d,0x0000001c,0x0000031f, + 0x000002eb,0x0004003d,0x0000001c,0x00000320,0x0000031b,0x00050081,0x0000001c,0x00000321, + 0x0000031f,0x00000320,0x0003003e,0x0000031e,0x00000321,0x0004003d,0x00000008,0x00000324, + 0x0000030f,0x0003003e,0x00000323,0x00000324,0x00050039,0x00000008,0x00000325,0x0000009a, + 0x00000323,0x0003003e,0x00000322,0x00000325,0x0004003d,0x00000008,0x00000328,0x00000322, + 0x0003003e,0x00000327,0x00000328,0x00050039,0x00000006,0x00000329,0x000000b8,0x00000327, + 0x0003003e,0x00000326,0x00000329,0x0004003d,0x0000001c,0x0000032b,0x00000309,0x0004003d, + 0x0000001c,0x0000032c,0x00000315,0x0004003d,0x0000001c,0x0000032d,0x00000303,0x00050085, + 0x0000001c,0x0000032e,0x0000032c,0x0000032d,0x00050081,0x0000001c,0x0000032f,0x0000032b, + 0x0000032e,0x0003003e,0x00000330,0x0000032f,0x00050039,0x00000012,0x00000331,0x00000060, + 0x00000330,0x0003003e,0x0000032a,0x00000331,0x0004003d,0x0000001c,0x00000334,0x00000309, + 0x0003003e,0x00000333,0x00000334,0x00050039,0x00000012,0x00000335,0x00000063,0x00000333, + 0x0003003e,0x00000332,0x00000335,0x0004003d,0x00000012,0x00000339,0x0000032a,0x0003003e, + 0x00000338,0x00000339,0x00050039,0x00000008,0x0000033a,0x0000008e,0x00000338,0x00050081, + 0x00000008,0x0000033b,0x00000337,0x0000033a,0x0003003e,0x00000336,0x0000033b,0x0004003d, + 0x00000012,0x0000033e,0x00000332,0x0003003e,0x0000033d,0x0000033e,0x00050039,0x00000008, + 0x0000033f,0x0000008e,0x0000033d,0x00050081,0x00000008,0x00000340,0x00000337,0x0000033f, + 0x0003003e,0x0000033c,0x00000340,0x0004003d,0x00000008,0x00000342,0x00000336,0x0004003d, + 0x00000008,0x00000343,0x0000033c,0x00060039,0x00000008,0x00000344,0x000000a9,0x00000342, + 0x00000343,0x0003003e,0x00000345,0x00000344,0x0003003e,0x00000346,0x000000cf,0x00060039, + 0x00000008,0x00000347,0x00000036,0x00000345,0x00000346,0x00050085,0x00000008,0x00000349, + 0x00000347,0x00000348,0x0003003e,0x0000034a,0x00000349,0x00050039,0x00000008,0x0000034b, + 0x00000024,0x0000034a,0x0004006d,0x00000006,0x0000034c,0x0000034b,0x0004003d,0x0000001c, + 0x0000034d,0x00000309,0x0004003d,0x0000001c,0x0000034e,0x00000315,0x0004003d,0x0000001c, + 0x0000034f,0x00000303,0x00050085,0x0000001c,0x00000350,0x0000034e,0x0000034f,0x00050081, + 0x0000001c,0x00000351,0x0000034d,0x00000350,0x0003003e,0x00000352,0x00000351,0x00050039, + 0x0000009c,0x00000353,0x000000a4,0x00000352,0x000600a9,0x00000006,0x00000354,0x00000353, + 0x00000175,0x0000016f,0x00050084,0x00000006,0x00000355,0x0000034c,0x00000354,0x0003003e, + 0x00000341,0x00000355,0x0003003e,0x00000358,0x00000357,0x0004003d,0x00000006,0x0000035a, + 0x00000326,0x0003003e,0x00000359,0x0000035a,0x0004003d,0x00000006,0x0000035c,0x00000341, + 0x0003003e,0x0000035b,0x0000035c,0x0004003d,0x0000001c,0x0000035e,0x0000031b,0x0003003e, + 0x0000035d,0x0000035e,0x00080039,0x00000071,0x0000035f,0x000000b5,0x00000358,0x00000359, + 0x0000035b,0x0000035d,0x0003003e,0x00000356,0x0000035f,0x00040039,0x00000048,0x00000361, + 0x0000004e,0x0004003d,0x0000001c,0x00000363,0x0000031e,0x0003003e,0x00000362,0x00000363, + 0x0003003e,0x00000364,0x00000361,0x00060039,0x00000093,0x00000365,0x00000097,0x00000362, + 0x00000364,0x0003003e,0x00000360,0x00000365,0x0003003e,0x00000367,0x00000158,0x000200f9, + 0x00000368,0x000200f8,0x00000368,0x000400f6,0x0000036a,0x0000036b,0x00000000,0x000200f9, + 0x0000036c,0x000200f8,0x0000036c,0x0004003d,0x00000047,0x0000036d,0x00000367,0x000500b1, + 0x0000009c,0x0000036f,0x0000036d,0x0000036e,0x000400fa,0x0000036f,0x00000369,0x0000036a, + 0x000200f8,0x00000369,0x0004003d,0x00000047,0x00000371,0x00000367,0x00060041,0x00000065, + 0x00000372,0x00000360,0x00000158,0x00000371,0x0004003d,0x00000048,0x00000373,0x00000372, + 0x0003003e,0x00000370,0x00000373,0x00050041,0x00000065,0x00000375,0x00000360,0x0000023e, + 0x0004003d,0x00000048,0x00000376,0x00000375,0x0004003d,0x00000048,0x00000377,0x00000370, + 0x00050080,0x00000048,0x00000378,0x00000376,0x00000377,0x0003003e,0x00000374,0x00000378, + 0x00040039,0x00000048,0x00000379,0x0000004e,0x0004003d,0x00000048,0x0000037b,0x00000374, + 0x0003003e,0x0000037a,0x0000037b,0x0003003e,0x0000037c,0x00000379,0x00060039,0x0000009c, + 0x0000037d,0x000000a0,0x0000037a,0x0000037c,0x000300f7,0x0000037f,0x00000000,0x000400fa, + 0x0000037d,0x0000037e,0x0000037f,0x000200f8,0x0000037e,0x0004003d,0x00000048,0x00000381, + 0x00000374,0x0003003e,0x00000380,0x00000381,0x0004003d,0x00000071,0x00000383,0x00000356, + 0x0003003e,0x00000382,0x00000383,0x00060039,0x00000002,0x00000384,0x00000076,0x00000380, + 0x00000382,0x000200f9,0x0000037f,0x000200f8,0x0000037f,0x000200f9,0x0000036b,0x000200f8, + 0x0000036b,0x0004003d,0x00000047,0x00000385,0x00000367,0x00050080,0x00000047,0x00000386, + 0x00000385,0x0000015d,0x0003003e,0x00000367,0x00000386,0x000200f9,0x00000368,0x000200f8, + 0x0000036a,0x0004003d,0x0000001c,0x00000388,0x0000031b,0x00040039,0x00000048,0x00000389, + 0x0000004e,0x0004006f,0x0000001c,0x0000038a,0x00000389,0x00050085,0x0000001c,0x0000038b, + 0x00000388,0x0000038a,0x0006000c,0x00000008,0x0000038c,0x00000001,0x00000042,0x0000038b, + 0x000500ba,0x0000009c,0x0000038d,0x0000038c,0x00000337,0x0003003e,0x00000387,0x0000038d, + 0x0004003d,0x0000009c,0x0000038e,0x00000387,0x000300f7,0x00000390,0x00000000,0x000400fa, + 0x0000038e,0x0000038f,0x00000390,0x000200f8,0x0000038f,0x0003003e,0x00000391,0x00000357, + 0x0003003e,0x00000392,0x0000016f,0x00040039,0x00000048,0x00000394,0x0000004e,0x0004006f, + 0x0000001c,0x00000395,0x00000394,0x00050050,0x0000001c,0x00000396,0x000000cf,0x000000cf, + 0x00050088,0x0000001c,0x00000397,0x00000396,0x00000395,0x0006000c,0x00000008,0x00000398, + 0x00000001,0x00000042,0x00000397,0x0003003e,0x00000393,0x00000398,0x0004003d,0x0000001c, + 0x0000039a,0x00000315,0x0006000c,0x0000001c,0x0000039b,0x00000001,0x00000045,0x0000039a, + 0x0003003e,0x00000399,0x0000039b,0x0004003d,0x0000001c,0x0000039d,0x0000031b,0x0006000c, + 0x00000008,0x0000039e,0x00000001,0x00000042,0x0000039d,0x0003003e,0x000003a0,0x0000039e, + 0x0003003e,0x000003a1,0x0000039f,0x00060039,0x00000008,0x000003a2,0x00000029,0x000003a0, + 0x000003a1,0x0003003e,0x0000039c,0x000003a2,0x0004003d,0x00000008,0x000003a4,0x00000393, + 0x0003003e,0x000003a3,0x000003a4,0x000200f9,0x000003a5,0x000200f8,0x000003a5,0x000400f6, + 0x000003a7,0x000003a8,0x00000000,0x000200f9,0x000003a9,0x000200f8,0x000003a9,0x0004003d, + 0x00000008,0x000003aa,0x000003a3,0x0004003d,0x00000008,0x000003ab,0x0000039c,0x000500bc, + 0x0000009c,0x000003ac,0x000003aa,0x000003ab,0x0004003d,0x0000009c,0x000003ad,0x00000391, + 0x000500a7,0x0000009c,0x000003ae,0x000003ac,0x000003ad,0x000400fa,0x000003ae,0x000003a6, + 0x000003a7,0x000200f8,0x000003a6,0x0004003d,0x0000001c,0x000003b0,0x0000031e,0x0004003d, + 0x0000001c,0x000003b1,0x00000399,0x0004003d,0x00000008,0x000003b2,0x000003a3,0x0005008e, + 0x0000001c,0x000003b3,0x000003b1,0x000003b2,0x00050083,0x0000001c,0x000003b4,0x000003b0, + 0x000003b3,0x0003003e,0x000003af,0x000003b4,0x00040039,0x00000048,0x000003b6,0x0000004e, + 0x0004003d,0x0000001c,0x000003b8,0x000003af,0x0003003e,0x000003b7,0x000003b8,0x0003003e, + 0x000003b9,0x000003b6,0x00060039,0x00000093,0x000003ba,0x00000097,0x000003b7,0x000003b9, + 0x0003003e,0x000003b5,0x000003ba,0x0004003d,0x00000006,0x000003bc,0x00000326,0x00050082, + 0x00000006,0x000003bd,0x000002b8,0x000003bc,0x0003003e,0x000003be,0x00000175,0x0003003e, + 0x000003bf,0x000003bd,0x00060039,0x00000006,0x000003c0,0x00000032,0x000003be,0x000003bf, + 0x0003003e,0x000003bb,0x000003c0,0x0004003d,0x0000001c,0x000003c2,0x000003af,0x00050083, + 0x0000001c,0x000003c3,0x0000023a,0x000003c2,0x0006000c,0x0000001c,0x000003c4,0x00000001, + 0x00000045,0x000003c3,0x0003003e,0x000003c1,0x000003c4,0x0004003d,0x0000001c,0x000003c5, + 0x000003c1,0x0004003d,0x0000001c,0x000003c6,0x00000399,0x00050094,0x00000008,0x000003c7, + 0x000003c5,0x000003c6,0x0003003e,0x000003c8,0x000000c3,0x0003003e,0x000003c9,0x000003c7, + 0x00060039,0x00000008,0x000003ca,0x0000002d,0x000003c8,0x000003c9,0x00050085,0x00000008, + 0x000003cb,0x000003ca,0x00000348,0x0004006d,0x00000006,0x000003cc,0x000003cb,0x0003003e, + 0x00000341,0x000003cc,0x0003003e,0x000003cf,0x000003ce,0x0004003d,0x00000006,0x000003d1, + 0x000003bb,0x0003003e,0x000003d0,0x000003d1,0x0004003d,0x00000006,0x000003d3,0x00000341, + 0x0003003e,0x000003d2,0x000003d3,0x0004003d,0x0000001c,0x000003d5,0x0000031b,0x0003003e, + 0x000003d4,0x000003d5,0x00080039,0x00000071,0x000003d6,0x000000b5,0x000003cf,0x000003d0, + 0x000003d2,0x000003d4,0x0003003e,0x000003cd,0x000003d6,0x0003003e,0x000003d7,0x00000158, + 0x000200f9,0x000003d8,0x000200f8,0x000003d8,0x000400f6,0x000003da,0x000003db,0x00000000, + 0x000200f9,0x000003dc,0x000200f8,0x000003dc,0x0004003d,0x00000047,0x000003dd,0x000003d7, + 0x000500b1,0x0000009c,0x000003de,0x000003dd,0x0000015d,0x000400fa,0x000003de,0x000003d9, + 0x000003da,0x000200f8,0x000003d9,0x0004003d,0x00000047,0x000003e0,0x000003d7,0x00060041, + 0x00000065,0x000003e1,0x000003b5,0x00000158,0x000003e0,0x0004003d,0x00000048,0x000003e2, + 0x000003e1,0x0003003e,0x000003df,0x000003e2,0x00050041,0x00000065,0x000003e4,0x000003b5, + 0x0000023e,0x0004003d,0x00000048,0x000003e5,0x000003e4,0x0004003d,0x00000048,0x000003e6, + 0x000003df,0x00050080,0x00000048,0x000003e7,0x000003e5,0x000003e6,0x0003003e,0x000003e3, + 0x000003e7,0x0004003d,0x0000009c,0x000003e8,0x00000391,0x000300f7,0x000003ea,0x00000000, + 0x000400fa,0x000003e8,0x000003e9,0x000003ea,0x000200f8,0x000003e9,0x00040039,0x00000048, + 0x000003eb,0x0000004e,0x0004003d,0x00000048,0x000003ed,0x000003e3,0x0003003e,0x000003ec, + 0x000003ed,0x0003003e,0x000003ee,0x000003eb,0x00060039,0x0000009c,0x000003ef,0x000000a0, + 0x000003ec,0x000003ee,0x000200f9,0x000003ea,0x000200f8,0x000003ea,0x000700f5,0x0000009c, + 0x000003f0,0x000003e8,0x000003d9,0x000003ef,0x000003e9,0x0003003e,0x00000391,0x000003f0, + 0x0004003d,0x0000009c,0x000003f1,0x00000391,0x000300f7,0x000003f3,0x00000000,0x000400fa, + 0x000003f1,0x000003f2,0x000003f3,0x000200f8,0x000003f2,0x0004003d,0x00000048,0x000003f6, + 0x000003e3,0x0003003e,0x000003f5,0x000003f6,0x0004003d,0x00000071,0x000003f8,0x000003cd, + 0x0003003e,0x000003f7,0x000003f8,0x00060039,0x00000006,0x000003f9,0x0000007b,0x000003f5, + 0x000003f7,0x0003003e,0x000003f4,0x000003f9,0x0004003d,0x00000006,0x000003fb,0x000003f4, + 0x0003003e,0x000003fa,0x000003fb,0x00050039,0x0000009c,0x000003fc,0x000000ad,0x000003fa, + 0x000600a9,0x00000006,0x000003fd,0x000003fc,0x00000175,0x0000016f,0x0004003d,0x00000006, + 0x000003fe,0x00000392,0x00050080,0x00000006,0x000003ff,0x000003fe,0x000003fd,0x0003003e, + 0x00000392,0x000003ff,0x0004003d,0x0000009c,0x00000400,0x00000391,0x0004003d,0x00000006, + 0x00000401,0x00000392,0x000500b2,0x0000009c,0x00000403,0x00000401,0x00000402,0x000500a7, + 0x0000009c,0x00000404,0x00000400,0x00000403,0x0003003e,0x00000391,0x00000404,0x000200f9, + 0x000003f3,0x000200f8,0x000003f3,0x000200f9,0x000003db,0x000200f8,0x000003db,0x0004003d, + 0x00000047,0x00000405,0x000003d7,0x00050080,0x00000047,0x00000406,0x00000405,0x0000015d, + 0x0003003e,0x000003d7,0x00000406,0x000200f9,0x000003d8,0x000200f8,0x000003da,0x000200f9, + 0x000003a8,0x000200f8,0x000003a8,0x0004003d,0x00000008,0x00000407,0x00000393,0x0004003d, + 0x00000008,0x00000408,0x000003a3,0x00050081,0x00000008,0x00000409,0x00000408,0x00000407, + 0x0003003e,0x000003a3,0x00000409,0x000200f9,0x000003a5,0x000200f8,0x000003a7,0x000200f9, + 0x00000390,0x000200f8,0x00000390,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h new file mode 100644 index 000000000..84eac9dc3 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h @@ -0,0 +1,1551 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000075c,0x00000000,0x00020011,0x00000001,0x00020011, + 0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000748,0x0000074c,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001, + 0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004, + 0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d, + 0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47,0x735f5248,0x65646168, + 0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a, + 0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666, + 0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005, + 0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962, + 0x00000000,0x00070005,0x00000017,0x55786666,0x6361706e,0x3233466b,0x3b317528,0x00000000, + 0x00030005,0x00000016,0x00000075,0x000a0005,0x0000001c,0x52786666,0x70616d65,0x57726f46, + 0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000001b,0x00000061, + 0x00060005,0x00000021,0x70736944,0x5379616c,0x28657a69,0x00000000,0x00050005,0x00000024, + 0x4d6d754e,0x28737069,0x00000000,0x00060005,0x00000026,0x576d754e,0x476b726f,0x70756f72, + 0x00002873,0x00070005,0x00000029,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000, + 0x00080005,0x0000002e,0x64616f4c,0x656d6147,0x6c656946,0x28764d64,0x3b326976,0x00000000, + 0x00050005,0x0000002d,0x53785069,0x6c706d61,0x00000065,0x00070005,0x00000034,0x726f7453, + 0x756f4365,0x7265746e,0x3b316928,0x003b3175,0x00040005,0x00000032,0x50785069,0x0000736f, + 0x00040005,0x00000033,0x6e756f63,0x00726574,0x000a0005,0x00000038,0x6d6f7441,0x6e496369, + 0x61657263,0x6f436573,0x65746e75,0x31692872,0x3b31753b,0x00000000,0x00040005,0x00000036, + 0x50785069,0x0000736f,0x00040005,0x00000037,0x56646c6f,0x00006c61,0x000a0005,0x0000003e, + 0x6f4c5752,0x6e496461,0x6e696170,0x676e6974,0x61727950,0x2864696d,0x3b326976,0x003b3175, + 0x00040005,0x0000003c,0x50785069,0x0000736f,0x00040005,0x0000003d,0x65646e69,0x00000078, + 0x000b0005,0x00000045,0x726f7453,0x706e4965,0x746e6961,0x50676e69,0x6d617279,0x76286469, + 0x763b3269,0x753b3466,0x00003b31,0x00040005,0x00000042,0x50785069,0x0000736f,0x00050005, + 0x00000043,0x5674756f,0x65756c61,0x00000000,0x00040005,0x00000044,0x65646e69,0x00000078, + 0x000b0005,0x0000004a,0x6b636150,0x65566465,0x726f7463,0x6c656946,0x746e4564,0x73497972, + 0x6d697250,0x28797261,0x003b3175,0x00050005,0x00000049,0x6b636170,0x6e456465,0x00797274, + 0x00070005,0x0000004d,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x00000000,0x00070006, + 0x0000004d,0x00000000,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00080006,0x0000004d, + 0x00000001,0x67694875,0x69725068,0x7469726f,0x63614679,0x00726f74,0x00080006,0x0000004d, + 0x00000002,0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f,0x00050006,0x0000004d, + 0x00000003,0x6c615662,0x00006469,0x00060006,0x0000004d,0x00000004,0x69725062,0x7972616d, + 0x00000000,0x00060006,0x0000004d,0x00000005,0x63655362,0x61646e6f,0x00007972,0x00060006, + 0x0000004d,0x00000006,0x506e4962,0x746e6961,0x00006465,0x00060006,0x0000004d,0x00000007, + 0x6c655666,0x7469636f,0x00000079,0x00060006,0x0000004d,0x00000008,0x67654e62,0x7374754f, + 0x00656469,0x00060006,0x0000004d,0x00000009,0x736f5062,0x7374754f,0x00656469,0x00180005, + 0x00000052,0x61706e55,0x65566b63,0x726f7463,0x6c656946,0x746e4564,0x73656972,0x32757628, + 0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x3266762d,0x2d31662d, + 0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31,0x3131622d,0x0000003b,0x00040005, + 0x00000050,0x6b636170,0x00006465,0x00050005,0x00000051,0x6c456676,0x6e656d65,0x00000074, + 0x00090005,0x00000056,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3269, + 0x00003b31,0x00030005,0x00000054,0x00786574,0x00040005,0x00000055,0x63696c73,0x00000065, + 0x00060005,0x0000005a,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x00000058, + 0x00786574,0x00040005,0x00000059,0x63696c73,0x00000065,0x00080005,0x00000061,0x53647053, + 0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x0000005d,0x00786970, + 0x00050005,0x0000005e,0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000005f,0x65646e69, + 0x00000078,0x00040005,0x00000060,0x63696c73,0x00000065,0x000a0005,0x00000065,0x49647053, + 0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005, + 0x00000064,0x63696c73,0x00000065,0x00080005,0x00000067,0x47647053,0x74417465,0x63696d6f, + 0x6e756f43,0x28726574,0x00000000,0x00090005,0x0000006a,0x52647053,0x74657365,0x6d6f7441, + 0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000069,0x63696c73,0x00000065, + 0x00090005,0x0000006f,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461,0x753b3175, + 0x00003b31,0x00030005,0x0000006d,0x00000078,0x00030005,0x0000006e,0x00000079,0x000a0005, + 0x00000075,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528,0x763b3175, + 0x003b3466,0x00030005,0x00000072,0x00000078,0x00030005,0x00000073,0x00000079,0x00040005, + 0x00000074,0x756c6176,0x00000065,0x00090005,0x0000007c,0x52647053,0x63756465,0x76283465, + 0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x00000078,0x00003076,0x00030005, + 0x00000079,0x00003176,0x00030005,0x0000007a,0x00003276,0x00030005,0x0000007b,0x00003376, + 0x000a0005,0x0000007e,0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c, + 0x65697272,0x00002872,0x00090005,0x00000084,0x45647053,0x57746978,0x676b726f,0x70756f72, + 0x3b317528,0x753b3175,0x00003b31,0x00060005,0x00000081,0x576d756e,0x476b726f,0x70756f72, + 0x00000073,0x00080005,0x00000082,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x00000083,0x63696c73,0x00000065,0x00070005,0x00000088,0x52647053, + 0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005,0x00000087,0x00000076,0x000b0005, + 0x00000090,0x52647053,0x63756465,0x616f4c65,0x76283464,0x763b3275,0x763b3275,0x763b3275, + 0x753b3275,0x00003b31,0x00030005,0x0000008b,0x00003069,0x00030005,0x0000008c,0x00003169, + 0x00030005,0x0000008d,0x00003269,0x00030005,0x0000008e,0x00003369,0x00040005,0x0000008f, + 0x63696c73,0x00000065,0x00080005,0x00000095,0x52647053,0x63756465,0x616f4c65,0x76283464, + 0x753b3275,0x00003b31,0x00040005,0x00000093,0x65736162,0x00000000,0x00040005,0x00000094, + 0x63696c73,0x00000065,0x000e0005,0x0000009c,0x52647053,0x63756465,0x616f4c65,0x756f5364, + 0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32,0x75763b32,0x31753b32,0x0000003b, + 0x00030005,0x00000097,0x00003069,0x00030005,0x00000098,0x00003169,0x00030005,0x00000099, + 0x00003269,0x00030005,0x0000009a,0x00003369,0x00040005,0x0000009b,0x63696c73,0x00000065, + 0x000b0005,0x000000a0,0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d, + 0x32757628,0x3b31753b,0x00000000,0x00040005,0x0000009e,0x65736162,0x00000000,0x00040005, + 0x0000009f,0x63696c73,0x00000065,0x00100005,0x000000a9,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973,0x3b317528,0x763b3175,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000a3,0x00000078,0x00030005,0x000000a4, + 0x00000079,0x00050005,0x000000a5,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000a6, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000a7, + 0x0070696d,0x00040005,0x000000a8,0x63696c73,0x00000065,0x000d0005,0x000000b1,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b,0x3b327576,0x753b3175, + 0x31753b31,0x0000003b,0x00030005,0x000000ab,0x00000078,0x00030005,0x000000ac,0x00000079, + 0x00050005,0x000000ad,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000ae,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000af,0x0070696d, + 0x00040005,0x000000b0,0x63696c73,0x00000065,0x000c0005,0x000000b9,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000b3,0x00000078,0x00030005,0x000000b4,0x00000079,0x00050005,0x000000b5, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000b6,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000b7,0x0070696d,0x00040005,0x000000b8, + 0x63696c73,0x00000065,0x000c0005,0x000000c1,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000bb, + 0x00000078,0x00030005,0x000000bc,0x00000079,0x00050005,0x000000bd,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000be,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000bf,0x0070696d,0x00040005,0x000000c0,0x63696c73,0x00000065, + 0x000c0005,0x000000c9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528345f,0x31753b31, + 0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000c3,0x00000078,0x00030005, + 0x000000c4,0x00000079,0x00050005,0x000000c5,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000c6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000c7,0x0070696d,0x00040005,0x000000c8,0x63696c73,0x00000065,0x000b0005,0x000000d0, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275,0x31753b31,0x3b31753b, + 0x00000000,0x00050005,0x000000cc,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000cd, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000ce, + 0x0070696d,0x00040005,0x000000cf,0x63696c73,0x00000065,0x000b0005,0x000000d7,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000d3,0x00000078,0x00030005,0x000000d4,0x00000079,0x00040005,0x000000d5, + 0x7370696d,0x00000000,0x00040005,0x000000d6,0x63696c73,0x00000065,0x000e0005,0x000000e1, + 0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872,0x3b31753b,0x3b327576, + 0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000da,0x00000078,0x00030005, + 0x000000db,0x00000079,0x00050005,0x000000dc,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000dd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005, + 0x000000de,0x65736162,0x0070694d,0x00040005,0x000000df,0x7370696d,0x00000000,0x00040005, + 0x000000e0,0x63696c73,0x00000065,0x000a0005,0x000000e9,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005,0x000000e4,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000e5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000e6,0x7370696d,0x00000000,0x00060005,0x000000e7, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000e8,0x63696c73,0x00000065, + 0x000b0005,0x000000f2,0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b, + 0x753b3175,0x75763b31,0x00003b32,0x00050005,0x000000ec,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000ed,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00040005,0x000000ee,0x7370696d,0x00000000,0x00060005,0x000000ef,0x576d756e,0x476b726f, + 0x70756f72,0x00000073,0x00040005,0x000000f0,0x63696c73,0x00000065,0x00060005,0x000000f1, + 0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00130005,0x000000f9,0x706d6f63,0x46657475, + 0x656d6172,0x65746e69,0x6c6f7072,0x6f697461,0x6d61476e,0x63655665,0x46726f74,0x646c6569, + 0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x69762864,0x31693b33,0x0000003b,0x00050005, + 0x000000f7,0x6f724769,0x64497075,0x00000000,0x00050005,0x000000f8,0x636f4c69,0x6e496c61, + 0x00786564,0x00040005,0x00000111,0x61726170,0x0000006d,0x00040005,0x00000113,0x61726170, + 0x0000006d,0x00040005,0x00000114,0x61726170,0x0000006d,0x00040005,0x00000117,0x61726170, + 0x0000006d,0x00040005,0x00000118,0x61726170,0x0000006d,0x00040005,0x0000011a,0x61726170, + 0x0000006d,0x00040005,0x0000011c,0x61726170,0x0000006d,0x00040005,0x0000011e,0x61726170, + 0x0000006d,0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005,0x00000121,0x61726170, + 0x0000006d,0x00040005,0x00000123,0x61726170,0x0000006d,0x00040005,0x00000124,0x61726170, + 0x0000006d,0x00040005,0x00000126,0x61726170,0x0000006d,0x00040005,0x00000127,0x61726170, + 0x0000006d,0x00040005,0x00000128,0x61726170,0x0000006d,0x00040005,0x0000012e,0x49466263, + 0x0000745f,0x00060006,0x0000012e,0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006, + 0x0000012e,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x0000012e,0x00000002, + 0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000012e,0x00000003,0x656d6163, + 0x654e6172,0x00007261,0x00060006,0x0000012e,0x00000004,0x656d6163,0x61466172,0x00000072, + 0x00080006,0x0000012e,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a, + 0x00050006,0x0000012e,0x00000006,0x65646f4d,0x00000000,0x00050006,0x0000012e,0x00000007, + 0x65736572,0x00000074,0x00080006,0x0000012e,0x00000008,0x76654466,0x54656369,0x6569566f, + 0x70654477,0x00006874,0x00060006,0x0000012e,0x00000009,0x746c6564,0x6d695461,0x00000065, + 0x00090006,0x0000012e,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361, + 0x00000072,0x00080006,0x0000012e,0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65, + 0x00657a69,0x00080006,0x0000012e,0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163, + 0x00000000,0x00090006,0x0000012e,0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c, + 0x657a6953,0x00000000,0x00070006,0x0000012e,0x0000000e,0x70736964,0x68637461,0x67616c46, + 0x00000073,0x00070006,0x0000012e,0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065, + 0x00090006,0x0000012e,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365, + 0x00006564,0x00070006,0x0000012e,0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000, + 0x00090006,0x0000012e,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274, + 0x00000065,0x00090006,0x0000012e,0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x7a695374,0x00000065,0x00070006,0x0000012e,0x00000014,0x75626564,0x72614267,0x6f6c6f43, + 0x00000072,0x000a0006,0x0000012e,0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000012e,0x00000016,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00060006,0x0000012e,0x00000017,0x6e615466,0x666c6148,0x00564f46, + 0x00050006,0x0000012e,0x00000018,0x6461705f,0x00000031,0x00050006,0x0000012e,0x00000019, + 0x74694a66,0x00726574,0x00080006,0x0000012e,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00040005,0x00000130,0x49466263,0x00000000,0x00080005,0x00000137, + 0x6e496263,0x6e696170,0x676e6974,0x61727950,0x5f64696d,0x00000074,0x00050006,0x00000137, + 0x00000000,0x7370696d,0x00000000,0x00070006,0x00000137,0x00000001,0x576d756e,0x476b726f, + 0x70756f72,0x00000073,0x00070006,0x00000137,0x00000002,0x6b726f77,0x756f7247,0x66664f70, + 0x00746573,0x00070005,0x00000139,0x6e496263,0x6e696170,0x676e6974,0x61727950,0x0064696d, + 0x00040005,0x00000149,0x6b636170,0x00586465,0x000a0005,0x0000014c,0x61675f72,0x6d5f656d, + 0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x785f646c,0x00000000,0x00040005,0x00000153, + 0x6b636170,0x00596465,0x000a0005,0x00000154,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e, + 0x726f7463,0x6569665f,0x795f646c,0x00000000,0x000a0005,0x0000015f,0x6d617246,0x746e4965, + 0x6f707265,0x6974616c,0x57526e6f,0x6e756f43,0x73726574,0x0000745f,0x00050006,0x0000015f, + 0x00000000,0x61746164,0x00000000,0x00050005,0x00000161,0x635f7772,0x746e756f,0x00737265, + 0x00080005,0x0000016f,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003064, + 0x00080005,0x00000178,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003164, + 0x00080005,0x00000181,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003264, + 0x00080005,0x0000018a,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003364, + 0x00080005,0x00000194,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003464, + 0x00080005,0x0000019e,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003564, + 0x00080005,0x000001a8,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003664, + 0x00080005,0x000001b2,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003764, + 0x00080005,0x000001bc,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003864, + 0x00080005,0x000001c6,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003964, + 0x00080005,0x000001d0,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00303164, + 0x00080005,0x000001da,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00313164, + 0x00080005,0x000001e4,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00323164, + 0x00040005,0x00000264,0x61726170,0x0000006d,0x00040005,0x00000282,0x61726170,0x0000006d, + 0x00040005,0x00000288,0x61726170,0x0000006d,0x00070005,0x00000291,0x6b636170,0x61476465, + 0x6946656d,0x4d646c65,0x00000076,0x00040005,0x00000292,0x61726170,0x0000006d,0x00040005, + 0x00000295,0x656d6167,0x0000764d,0x00040005,0x00000296,0x61726170,0x0000006d,0x00040005, + 0x00000298,0x61726170,0x0000006d,0x00040005,0x000002ac,0x61726170,0x0000006d,0x00040005, + 0x000002ae,0x61726170,0x0000006d,0x00040005,0x000002b2,0x61726170,0x0000006d,0x00040005, + 0x000002b4,0x61726170,0x0000006d,0x00040005,0x000002b6,0x61726170,0x0000006d,0x00050005, + 0x000002ba,0x43647073,0x746e756f,0x00007265,0x00040005,0x000002bb,0x61726170,0x0000006d, + 0x00040005,0x000002bc,0x61726170,0x0000006d,0x00040005,0x000002c2,0x61726170,0x0000006d, + 0x00040005,0x000002c3,0x61726170,0x0000006d,0x00070005,0x000002c8,0x49647073,0x7265746e, + 0x6964656d,0x52657461,0x00000000,0x00070005,0x000002ce,0x49647073,0x7265746e,0x6964656d, + 0x47657461,0x00000000,0x00070005,0x000002d3,0x49647073,0x7265746e,0x6964656d,0x42657461, + 0x00000000,0x00070005,0x000002d8,0x49647073,0x7265746e,0x6964656d,0x41657461,0x00000000, + 0x00030005,0x000002f4,0x00636576,0x00050005,0x000002f5,0x69655766,0x53746867,0x00006d75, + 0x00040005,0x000002f6,0x69655766,0x00746867,0x00040005,0x00000303,0x69655766,0x00746867, + 0x00040005,0x00000310,0x69655766,0x00746867,0x00040005,0x0000031d,0x69655766,0x00746867, + 0x00040005,0x0000033b,0x61726170,0x0000006d,0x00030005,0x00000345,0x00003076,0x00030005, + 0x00000347,0x00003176,0x00030005,0x0000034a,0x00003276,0x00030005,0x0000034d,0x00003376, + 0x00040005,0x00000350,0x61726170,0x0000006d,0x00040005,0x00000352,0x61726170,0x0000006d, + 0x00040005,0x00000354,0x61726170,0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d, + 0x00030005,0x0000035d,0x00003076,0x00040005,0x00000360,0x61726170,0x0000006d,0x00040005, + 0x00000361,0x61726170,0x0000006d,0x00030005,0x00000364,0x00003176,0x00040005,0x00000367, + 0x61726170,0x0000006d,0x00040005,0x00000368,0x61726170,0x0000006d,0x00030005,0x0000036b, + 0x00003276,0x00040005,0x0000036e,0x61726170,0x0000006d,0x00040005,0x0000036f,0x61726170, + 0x0000006d,0x00030005,0x00000372,0x00003376,0x00040005,0x00000375,0x61726170,0x0000006d, + 0x00040005,0x00000376,0x61726170,0x0000006d,0x00040005,0x00000379,0x61726170,0x0000006d, + 0x00040005,0x0000037b,0x61726170,0x0000006d,0x00040005,0x0000037d,0x61726170,0x0000006d, + 0x00040005,0x0000037f,0x61726170,0x0000006d,0x00040005,0x00000390,0x61726170,0x0000006d, + 0x00040005,0x00000391,0x61726170,0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d, + 0x00040005,0x00000393,0x61726170,0x0000006d,0x00040005,0x00000394,0x61726170,0x0000006d, + 0x00030005,0x00000399,0x00003076,0x00040005,0x0000039c,0x61726170,0x0000006d,0x00040005, + 0x0000039d,0x61726170,0x0000006d,0x00030005,0x000003a0,0x00003176,0x00040005,0x000003a3, + 0x61726170,0x0000006d,0x00040005,0x000003a4,0x61726170,0x0000006d,0x00030005,0x000003a7, + 0x00003276,0x00040005,0x000003aa,0x61726170,0x0000006d,0x00040005,0x000003ab,0x61726170, + 0x0000006d,0x00030005,0x000003ae,0x00003376,0x00040005,0x000003b1,0x61726170,0x0000006d, + 0x00040005,0x000003b2,0x61726170,0x0000006d,0x00040005,0x000003b5,0x61726170,0x0000006d, + 0x00040005,0x000003b7,0x61726170,0x0000006d,0x00040005,0x000003b9,0x61726170,0x0000006d, + 0x00040005,0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003c8,0x61726170,0x0000006d, + 0x00040005,0x000003c9,0x61726170,0x0000006d,0x00040005,0x000003ca,0x61726170,0x0000006d, + 0x00040005,0x000003cb,0x61726170,0x0000006d,0x00040005,0x000003cc,0x61726170,0x0000006d, + 0x00030005,0x000003d1,0x00786574,0x00030005,0x000003df,0x00786970,0x00030005,0x000003ed, + 0x00000076,0x00040005,0x000003f0,0x61726170,0x0000006d,0x00040005,0x000003f1,0x61726170, + 0x0000006d,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005,0x000003f7,0x61726170, + 0x0000006d,0x00040005,0x000003fa,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170, + 0x0000006d,0x00040005,0x00000418,0x61726170,0x0000006d,0x00040005,0x00000419,0x61726170, + 0x0000006d,0x00040005,0x0000041d,0x61726170,0x0000006d,0x00040005,0x0000041f,0x61726170, + 0x0000006d,0x00040005,0x00000422,0x61726170,0x0000006d,0x00040005,0x00000423,0x61726170, + 0x0000006d,0x00040005,0x00000440,0x61726170,0x0000006d,0x00040005,0x00000441,0x61726170, + 0x0000006d,0x00040005,0x00000445,0x61726170,0x0000006d,0x00040005,0x00000447,0x61726170, + 0x0000006d,0x00040005,0x0000044a,0x61726170,0x0000006d,0x00040005,0x0000044b,0x61726170, + 0x0000006d,0x00040005,0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046b,0x61726170, + 0x0000006d,0x00040005,0x0000046f,0x61726170,0x0000006d,0x00040005,0x00000471,0x61726170, + 0x0000006d,0x00040005,0x00000474,0x61726170,0x0000006d,0x00040005,0x00000475,0x61726170, + 0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00040005,0x00000482,0x61726170, + 0x0000006d,0x00040005,0x00000487,0x61726170,0x0000006d,0x00040005,0x0000048c,0x61726170, + 0x0000006d,0x00040005,0x000004a2,0x61726170,0x0000006d,0x00040005,0x000004a3,0x61726170, + 0x0000006d,0x00040005,0x000004a6,0x61726170,0x0000006d,0x00040005,0x000004a7,0x61726170, + 0x0000006d,0x00040005,0x000004ae,0x61726170,0x0000006d,0x00040005,0x000004af,0x61726170, + 0x0000006d,0x00040005,0x000004b0,0x61726170,0x0000006d,0x00040005,0x000004c1,0x61726170, + 0x0000006d,0x00040005,0x000004c2,0x61726170,0x0000006d,0x00040005,0x000004c5,0x61726170, + 0x0000006d,0x00040005,0x000004c6,0x61726170,0x0000006d,0x00040005,0x000004ce,0x61726170, + 0x0000006d,0x00040005,0x000004cf,0x61726170,0x0000006d,0x00040005,0x000004d0,0x61726170, + 0x0000006d,0x00040005,0x000004e1,0x61726170,0x0000006d,0x00040005,0x000004e2,0x61726170, + 0x0000006d,0x00040005,0x000004e5,0x61726170,0x0000006d,0x00040005,0x000004e6,0x61726170, + 0x0000006d,0x00040005,0x000004ee,0x61726170,0x0000006d,0x00040005,0x000004ef,0x61726170, + 0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d,0x00040005,0x00000502,0x61726170, + 0x0000006d,0x00040005,0x00000503,0x61726170,0x0000006d,0x00040005,0x00000506,0x61726170, + 0x0000006d,0x00040005,0x00000507,0x61726170,0x0000006d,0x00040005,0x00000510,0x61726170, + 0x0000006d,0x00040005,0x00000511,0x61726170,0x0000006d,0x00040005,0x00000512,0x61726170, + 0x0000006d,0x00040005,0x00000516,0x61726170,0x0000006d,0x00040005,0x00000518,0x61726170, + 0x0000006d,0x00040005,0x0000051a,0x61726170,0x0000006d,0x00040005,0x0000051c,0x61726170, + 0x0000006d,0x00040005,0x0000051e,0x61726170,0x0000006d,0x00040005,0x00000520,0x61726170, + 0x0000006d,0x00030005,0x00000523,0x00000076,0x00040005,0x00000524,0x61726170,0x0000006d, + 0x00040005,0x00000526,0x61726170,0x0000006d,0x00040005,0x00000529,0x61726170,0x0000006d, + 0x00040005,0x0000053d,0x61726170,0x0000006d,0x00040005,0x0000053e,0x61726170,0x0000006d, + 0x00040005,0x00000540,0x61726170,0x0000006d,0x00040005,0x00000542,0x61726170,0x0000006d, + 0x00040005,0x0000054a,0x61726170,0x0000006d,0x00040005,0x0000054b,0x61726170,0x0000006d, + 0x00040005,0x0000054d,0x61726170,0x0000006d,0x00030005,0x00000554,0x00000076,0x00040005, + 0x0000055c,0x61726170,0x0000006d,0x00040005,0x0000055d,0x61726170,0x0000006d,0x00040005, + 0x0000055f,0x61726170,0x0000006d,0x00040005,0x00000573,0x61726170,0x0000006d,0x00040005, + 0x00000574,0x61726170,0x0000006d,0x00040005,0x00000576,0x61726170,0x0000006d,0x00040005, + 0x00000578,0x61726170,0x0000006d,0x00040005,0x00000582,0x61726170,0x0000006d,0x00040005, + 0x00000583,0x61726170,0x0000006d,0x00040005,0x00000584,0x61726170,0x0000006d,0x00030005, + 0x0000058b,0x00000076,0x00040005,0x00000592,0x61726170,0x0000006d,0x00040005,0x00000593, + 0x61726170,0x0000006d,0x00040005,0x00000595,0x61726170,0x0000006d,0x00040005,0x000005a9, + 0x61726170,0x0000006d,0x00040005,0x000005aa,0x61726170,0x0000006d,0x00040005,0x000005ac, + 0x61726170,0x0000006d,0x00040005,0x000005ae,0x61726170,0x0000006d,0x00040005,0x000005b5, + 0x61726170,0x0000006d,0x00040005,0x000005b6,0x61726170,0x0000006d,0x00040005,0x000005b7, + 0x61726170,0x0000006d,0x00030005,0x000005be,0x00000076,0x00040005,0x000005bf,0x61726170, + 0x0000006d,0x00040005,0x000005c1,0x61726170,0x0000006d,0x00040005,0x000005c3,0x61726170, + 0x0000006d,0x00040005,0x000005cd,0x61726170,0x0000006d,0x00040005,0x000005ce,0x61726170, + 0x0000006d,0x00040005,0x000005d0,0x61726170,0x0000006d,0x00040005,0x000005d2,0x61726170, + 0x0000006d,0x00030005,0x000005d5,0x00786574,0x00030005,0x000005df,0x00786970,0x00030005, + 0x000005e9,0x00003076,0x00040005,0x000005ec,0x61726170,0x0000006d,0x00040005,0x000005ed, + 0x61726170,0x0000006d,0x00040005,0x000005f0,0x61726170,0x0000006d,0x00040005,0x000005f2, + 0x61726170,0x0000006d,0x00040005,0x000005f4,0x61726170,0x0000006d,0x00040005,0x000005f5, + 0x61726170,0x0000006d,0x00030005,0x0000060a,0x00003176,0x00040005,0x0000060d,0x61726170, + 0x0000006d,0x00040005,0x0000060e,0x61726170,0x0000006d,0x00040005,0x00000611,0x61726170, + 0x0000006d,0x00040005,0x00000613,0x61726170,0x0000006d,0x00040005,0x00000615,0x61726170, + 0x0000006d,0x00040005,0x00000616,0x61726170,0x0000006d,0x00030005,0x0000062b,0x00003276, + 0x00040005,0x0000062e,0x61726170,0x0000006d,0x00040005,0x0000062f,0x61726170,0x0000006d, + 0x00040005,0x00000632,0x61726170,0x0000006d,0x00040005,0x00000634,0x61726170,0x0000006d, + 0x00040005,0x00000636,0x61726170,0x0000006d,0x00040005,0x00000637,0x61726170,0x0000006d, + 0x00030005,0x0000064c,0x00003376,0x00040005,0x0000064f,0x61726170,0x0000006d,0x00040005, + 0x00000650,0x61726170,0x0000006d,0x00040005,0x00000653,0x61726170,0x0000006d,0x00040005, + 0x00000655,0x61726170,0x0000006d,0x00040005,0x00000657,0x61726170,0x0000006d,0x00040005, + 0x00000658,0x61726170,0x0000006d,0x00030005,0x00000660,0x00000076,0x00040005,0x00000661, + 0x61726170,0x0000006d,0x00040005,0x00000663,0x61726170,0x0000006d,0x00040005,0x00000665, + 0x61726170,0x0000006d,0x00040005,0x00000667,0x61726170,0x0000006d,0x00040005,0x0000066f, + 0x61726170,0x0000006d,0x00040005,0x00000670,0x61726170,0x0000006d,0x00040005,0x00000672, + 0x61726170,0x0000006d,0x00040005,0x00000673,0x61726170,0x0000006d,0x00040005,0x00000676, + 0x61726170,0x0000006d,0x00040005,0x00000678,0x61726170,0x0000006d,0x00040005,0x0000067a, + 0x61726170,0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005,0x00000686, + 0x61726170,0x0000006d,0x00040005,0x00000688,0x61726170,0x0000006d,0x00040005,0x0000068a, + 0x61726170,0x0000006d,0x00040005,0x0000068c,0x61726170,0x0000006d,0x00040005,0x0000068e, + 0x61726170,0x0000006d,0x00040005,0x0000069b,0x61726170,0x0000006d,0x00040005,0x0000069d, + 0x61726170,0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a1, + 0x61726170,0x0000006d,0x00040005,0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006a4, + 0x61726170,0x0000006d,0x00040005,0x000006b1,0x61726170,0x0000006d,0x00040005,0x000006b3, + 0x61726170,0x0000006d,0x00040005,0x000006b5,0x61726170,0x0000006d,0x00040005,0x000006b7, + 0x61726170,0x0000006d,0x00040005,0x000006b9,0x61726170,0x0000006d,0x00040005,0x000006ba, + 0x61726170,0x0000006d,0x00040005,0x000006c7,0x61726170,0x0000006d,0x00040005,0x000006c9, + 0x61726170,0x0000006d,0x00040005,0x000006cb,0x61726170,0x0000006d,0x00040005,0x000006cc, + 0x61726170,0x0000006d,0x00040005,0x000006cf,0x5f627573,0x00007978,0x00040005,0x000006d2, + 0x61726170,0x0000006d,0x00030005,0x000006d4,0x00000078,0x00030005,0x000006dc,0x00000079, + 0x00040005,0x000006e4,0x61726170,0x0000006d,0x00040005,0x000006e6,0x61726170,0x0000006d, + 0x00040005,0x000006e8,0x61726170,0x0000006d,0x00040005,0x000006ea,0x61726170,0x0000006d, + 0x00040005,0x000006ec,0x61726170,0x0000006d,0x00040005,0x000006ee,0x61726170,0x0000006d, + 0x00040005,0x000006f1,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x000006f5,0x61726170,0x0000006d,0x00040005,0x000006f7,0x61726170,0x0000006d, + 0x00040005,0x000006f9,0x61726170,0x0000006d,0x00040005,0x000006fa,0x61726170,0x0000006d, + 0x00040005,0x000006fc,0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d, + 0x00040005,0x00000706,0x61726170,0x0000006d,0x00040005,0x00000708,0x61726170,0x0000006d, + 0x00040005,0x0000070e,0x61726170,0x0000006d,0x00040005,0x00000711,0x61726170,0x0000006d, + 0x00040005,0x00000713,0x61726170,0x0000006d,0x00040005,0x00000715,0x61726170,0x0000006d, + 0x00040005,0x00000717,0x61726170,0x0000006d,0x00040005,0x0000071a,0x61726170,0x0000006d, + 0x00040005,0x0000071c,0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d, + 0x00040005,0x0000071f,0x61726170,0x0000006d,0x00040005,0x00000721,0x61726170,0x0000006d, + 0x00040005,0x00000722,0x61726170,0x0000006d,0x00040005,0x00000724,0x61726170,0x0000006d, + 0x00040005,0x0000072a,0x61726170,0x0000006d,0x00040005,0x0000072b,0x61726170,0x0000006d, + 0x00040005,0x0000072d,0x61726170,0x0000006d,0x00040005,0x0000072f,0x61726170,0x0000006d, + 0x00040005,0x00000731,0x61726170,0x0000006d,0x00040005,0x0000073f,0x61726170,0x0000006d, + 0x00040005,0x00000740,0x61726170,0x0000006d,0x00040005,0x00000741,0x61726170,0x0000006d, + 0x00040005,0x00000742,0x61726170,0x0000006d,0x00040005,0x00000743,0x61726170,0x0000006d, + 0x00040005,0x00000744,0x61726170,0x0000006d,0x00060005,0x00000748,0x575f6c67,0x476b726f, + 0x70756f72,0x00004449,0x00080005,0x0000074c,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163, + 0x6e496e6f,0x00786564,0x00040005,0x0000074f,0x61726170,0x0000006d,0x00040005,0x00000750, + 0x61726170,0x0000006d,0x00060005,0x00000757,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x0000012e,0x00000002,0x00050048,0x0000012e,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000012e,0x00000001,0x00000023,0x00000008,0x00050048,0x0000012e,0x00000002, + 0x00000023,0x00000010,0x00050048,0x0000012e,0x00000003,0x00000023,0x00000018,0x00050048, + 0x0000012e,0x00000004,0x00000023,0x0000001c,0x00050048,0x0000012e,0x00000005,0x00000023, + 0x00000020,0x00050048,0x0000012e,0x00000006,0x00000023,0x00000028,0x00050048,0x0000012e, + 0x00000007,0x00000023,0x0000002c,0x00050048,0x0000012e,0x00000008,0x00000023,0x00000030, + 0x00050048,0x0000012e,0x00000009,0x00000023,0x00000040,0x00050048,0x0000012e,0x0000000a, + 0x00000023,0x00000044,0x00050048,0x0000012e,0x0000000b,0x00000023,0x00000048,0x00050048, + 0x0000012e,0x0000000c,0x00000023,0x00000050,0x00050048,0x0000012e,0x0000000d,0x00000023, + 0x00000058,0x00050048,0x0000012e,0x0000000e,0x00000023,0x0000005c,0x00050048,0x0000012e, + 0x0000000f,0x00000023,0x00000060,0x00050048,0x0000012e,0x00000010,0x00000023,0x00000068, + 0x00050048,0x0000012e,0x00000011,0x00000023,0x0000006c,0x00050048,0x0000012e,0x00000012, + 0x00000023,0x00000070,0x00050048,0x0000012e,0x00000013,0x00000023,0x00000078,0x00050048, + 0x0000012e,0x00000014,0x00000023,0x00000080,0x00050048,0x0000012e,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x0000012e,0x00000016,0x00000023,0x00000090,0x00050048,0x0000012e, + 0x00000017,0x00000023,0x00000098,0x00050048,0x0000012e,0x00000018,0x00000023,0x0000009c, + 0x00050048,0x0000012e,0x00000019,0x00000023,0x000000a0,0x00050048,0x0000012e,0x0000001a, + 0x00000023,0x000000a8,0x00040047,0x00000130,0x00000021,0x00000010,0x00040047,0x00000130, + 0x00000022,0x00000000,0x00030047,0x00000137,0x00000002,0x00050048,0x00000137,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000137,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000137,0x00000002,0x00000023,0x00000008,0x00040047,0x00000139,0x00000021,0x00000011, + 0x00040047,0x00000139,0x00000022,0x00000000,0x00040047,0x0000014c,0x00000021,0x00000000, + 0x00040047,0x0000014c,0x00000022,0x00000000,0x00040047,0x00000154,0x00000021,0x00000001, + 0x00040047,0x00000154,0x00000022,0x00000000,0x00040047,0x0000015e,0x00000006,0x00000004, + 0x00030047,0x0000015f,0x00000002,0x00040048,0x0000015f,0x00000000,0x00000017,0x00050048, + 0x0000015f,0x00000000,0x00000023,0x00000000,0x00030047,0x00000161,0x00000017,0x00040047, + 0x00000161,0x00000021,0x00000002,0x00040047,0x00000161,0x00000022,0x00000000,0x00040047, + 0x0000016f,0x00000021,0x00000003,0x00040047,0x0000016f,0x00000022,0x00000000,0x00040047, + 0x00000178,0x00000021,0x00000004,0x00040047,0x00000178,0x00000022,0x00000000,0x00040047, + 0x00000181,0x00000021,0x00000005,0x00040047,0x00000181,0x00000022,0x00000000,0x00040047, + 0x0000018a,0x00000021,0x00000006,0x00040047,0x0000018a,0x00000022,0x00000000,0x00040047, + 0x00000194,0x00000021,0x00000007,0x00040047,0x00000194,0x00000022,0x00000000,0x00030047, + 0x0000019e,0x00000017,0x00040047,0x0000019e,0x00000021,0x00000008,0x00040047,0x0000019e, + 0x00000022,0x00000000,0x00040047,0x000001a8,0x00000021,0x00000009,0x00040047,0x000001a8, + 0x00000022,0x00000000,0x00040047,0x000001b2,0x00000021,0x0000000a,0x00040047,0x000001b2, + 0x00000022,0x00000000,0x00040047,0x000001bc,0x00000021,0x0000000b,0x00040047,0x000001bc, + 0x00000022,0x00000000,0x00040047,0x000001c6,0x00000021,0x0000000c,0x00040047,0x000001c6, + 0x00000022,0x00000000,0x00040047,0x000001d0,0x00000021,0x0000000d,0x00040047,0x000001d0, + 0x00000022,0x00000000,0x00040047,0x000001da,0x00000021,0x0000000e,0x00040047,0x000001da, + 0x00000022,0x00000000,0x00040047,0x000001e4,0x00000021,0x0000000f,0x00040047,0x000001e4, + 0x00000022,0x00000000,0x00040047,0x00000748,0x0000000b,0x0000001a,0x00040047,0x0000074c, + 0x0000000b,0x0000001d,0x00040047,0x00000757,0x00000021,0x000003e8,0x00040047,0x00000757, + 0x00000022,0x00000000,0x00040047,0x0000075b,0x0000000b,0x00000019,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020, + 0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007, + 0x00000007,0x00030016,0x00000013,0x00000020,0x00040017,0x00000014,0x00000013,0x00000002, + 0x00040021,0x00000015,0x00000014,0x00000007,0x00040017,0x00000019,0x00000006,0x00000002, + 0x00040021,0x0000001a,0x00000019,0x00000007,0x00040015,0x0000001e,0x00000020,0x00000001, + 0x00040017,0x0000001f,0x0000001e,0x00000002,0x00030021,0x00000020,0x0000001f,0x00030021, + 0x00000023,0x00000006,0x00030021,0x00000028,0x00000019,0x00040020,0x0000002b,0x00000007, + 0x0000001f,0x00040021,0x0000002c,0x00000019,0x0000002b,0x00040020,0x00000030,0x00000007, + 0x0000001e,0x00050021,0x00000031,0x00000002,0x00000030,0x00000007,0x00040017,0x0000003a, + 0x00000013,0x00000004,0x00050021,0x0000003b,0x0000003a,0x0000002b,0x00000007,0x00040020, + 0x00000040,0x00000007,0x0000003a,0x00060021,0x00000041,0x00000002,0x0000002b,0x00000040, + 0x00000007,0x00020014,0x00000047,0x00040021,0x00000048,0x00000047,0x00000007,0x00040020, + 0x0000004c,0x00000007,0x00000019,0x000c001e,0x0000004d,0x00000014,0x00000013,0x00000013, + 0x00000047,0x00000047,0x00000047,0x00000047,0x00000013,0x00000047,0x00000047,0x00040020, + 0x0000004e,0x00000007,0x0000004d,0x00050021,0x0000004f,0x00000002,0x0000004c,0x0000004e, + 0x00070021,0x0000005c,0x00000002,0x0000002b,0x00000040,0x00000007,0x00000007,0x00040021, + 0x00000063,0x00000002,0x00000007,0x00050021,0x0000006c,0x0000003a,0x00000007,0x00000007, + 0x00060021,0x00000071,0x00000002,0x00000007,0x00000007,0x00000040,0x00070021,0x00000077, + 0x0000003a,0x00000040,0x00000040,0x00000040,0x00000040,0x00060021,0x00000080,0x00000047, + 0x00000007,0x00000007,0x00000007,0x00040021,0x00000086,0x0000003a,0x00000040,0x00080021, + 0x0000008a,0x0000003a,0x0000004c,0x0000004c,0x0000004c,0x0000004c,0x00000007,0x00050021, + 0x00000092,0x0000003a,0x0000004c,0x00000007,0x00090021,0x000000a2,0x00000002,0x00000007, + 0x00000007,0x0000004c,0x00000007,0x00000007,0x00000007,0x00070021,0x000000cb,0x00000002, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00070021,0x000000d2,0x00000002,0x00000007, + 0x00000007,0x00000007,0x00000007,0x000a0021,0x000000d9,0x00000002,0x00000007,0x00000007, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00000007,0x00080021,0x000000e3,0x00000002, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00000007,0x00090021,0x000000eb,0x00000002, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00000007,0x0000004c,0x00040017,0x000000f4, + 0x0000001e,0x00000003,0x00040020,0x000000f5,0x00000007,0x000000f4,0x00050021,0x000000f6, + 0x00000002,0x000000f5,0x00000030,0x0004002b,0x0000001e,0x00000105,0x00000000,0x0004002b, + 0x00000006,0x0000010f,0x00000002,0x0004002b,0x00000006,0x00000110,0x00000003,0x0004002b, + 0x00000006,0x00000116,0x00000001,0x00040017,0x0000012d,0x00000013,0x00000003,0x001d001e, + 0x0000012e,0x0000001f,0x0000001f,0x00000014,0x00000013,0x00000013,0x0000001f,0x0000001e, + 0x0000001e,0x0000003a,0x00000013,0x0000001e,0x0000001f,0x00000014,0x0000001e,0x00000006, + 0x0000001f,0x0000001e,0x0000001e,0x0000001f,0x0000001f,0x0000012d,0x00000006,0x00000014, + 0x00000013,0x0000001e,0x00000014,0x00000014,0x00040020,0x0000012f,0x00000002,0x0000012e, + 0x0004003b,0x0000012f,0x00000130,0x00000002,0x0004002b,0x0000001e,0x00000131,0x00000001, + 0x00040020,0x00000132,0x00000002,0x0000001f,0x0005001e,0x00000137,0x00000006,0x00000006, + 0x00000019,0x00040020,0x00000138,0x00000002,0x00000137,0x0004003b,0x00000138,0x00000139, + 0x00000002,0x00040020,0x0000013a,0x00000002,0x00000006,0x0004002b,0x0000001e,0x00000143, + 0x00000002,0x00040020,0x00000144,0x00000002,0x00000019,0x00090019,0x0000014a,0x00000006, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x0000014b, + 0x00000000,0x0000014a,0x0004003b,0x0000014b,0x0000014c,0x00000000,0x00040017,0x0000014f, + 0x00000006,0x00000004,0x0004002b,0x00000006,0x00000151,0x00000000,0x0004003b,0x0000014b, + 0x00000154,0x00000000,0x0003001d,0x0000015e,0x00000006,0x0003001e,0x0000015f,0x0000015e, + 0x00040020,0x00000160,0x0000000c,0x0000015f,0x0004003b,0x00000160,0x00000161,0x0000000c, + 0x00040020,0x00000164,0x0000000c,0x00000006,0x00090019,0x0000016d,0x00000013,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000002,0x00040020,0x0000016e,0x00000000, + 0x0000016d,0x0004003b,0x0000016e,0x0000016f,0x00000000,0x0004003b,0x0000016e,0x00000178, + 0x00000000,0x0004003b,0x0000016e,0x00000181,0x00000000,0x0004003b,0x0000016e,0x0000018a, + 0x00000000,0x0004002b,0x00000006,0x00000190,0x00000004,0x0004003b,0x0000016e,0x00000194, + 0x00000000,0x0004002b,0x00000006,0x0000019a,0x00000005,0x0004003b,0x0000016e,0x0000019e, + 0x00000000,0x0004002b,0x00000006,0x000001a4,0x00000006,0x0004003b,0x0000016e,0x000001a8, + 0x00000000,0x0004002b,0x00000006,0x000001ae,0x00000007,0x0004003b,0x0000016e,0x000001b2, + 0x00000000,0x0004002b,0x00000006,0x000001b8,0x00000008,0x0004003b,0x0000016e,0x000001bc, + 0x00000000,0x0004002b,0x00000006,0x000001c2,0x00000009,0x0004003b,0x0000016e,0x000001c6, + 0x00000000,0x0004002b,0x00000006,0x000001cc,0x0000000a,0x0004003b,0x0000016e,0x000001d0, + 0x00000000,0x0004002b,0x00000006,0x000001d6,0x0000000b,0x0004003b,0x0000016e,0x000001da, + 0x00000000,0x0004002b,0x00000006,0x000001e0,0x0000000c,0x0004003b,0x0000016e,0x000001e4, + 0x00000000,0x0004002b,0x00000013,0x000001e9,0x00000000,0x0007002c,0x0000003a,0x000001ea, + 0x000001e9,0x000001e9,0x000001e9,0x000001e9,0x0004002b,0x00000006,0x00000249,0x80000000, + 0x0004002b,0x00000006,0x00000250,0x00000015,0x0004002b,0x00000006,0x00000252,0x000003ff, + 0x0004002b,0x00000013,0x00000255,0x447fc000,0x00040020,0x00000257,0x00000007,0x00000013, + 0x0004002b,0x00000006,0x0000025b,0x00000010,0x0004002b,0x00000006,0x0000025d,0x0000001f, + 0x0004002b,0x00000013,0x00000260,0x41f80000,0x0004002b,0x0000001e,0x00000263,0x00000004, + 0x00040020,0x00000268,0x00000007,0x00000047,0x0004002b,0x0000001e,0x0000026a,0x00000003, + 0x0004002b,0x0000001e,0x0000026f,0x00000005,0x0004002b,0x00000013,0x0000027d,0x3f800000, + 0x0004002b,0x0000001e,0x0000028e,0x00000006,0x0003002a,0x00000047,0x0000028f,0x00040020, + 0x0000029b,0x00000007,0x00000014,0x00040020,0x000002b9,0x00000004,0x00000006,0x0004003b, + 0x000002b9,0x000002ba,0x00000004,0x0004001c,0x000002c5,0x00000013,0x0000025b,0x0004001c, + 0x000002c6,0x000002c5,0x0000025b,0x00040020,0x000002c7,0x00000004,0x000002c6,0x0004003b, + 0x000002c7,0x000002c8,0x00000004,0x00040020,0x000002cb,0x00000004,0x00000013,0x0004003b, + 0x000002c7,0x000002ce,0x00000004,0x0004003b,0x000002c7,0x000002d3,0x00000004,0x0004003b, + 0x000002c7,0x000002d8,0x00000004,0x0004002b,0x00000013,0x0000032b,0x3a83126f,0x0004002b, + 0x00000006,0x00000335,0x00000d48,0x0004002b,0x00000006,0x00000336,0x00000108,0x0005002c, + 0x00000019,0x00000385,0x00000151,0x00000151,0x0005002c,0x00000019,0x00000388,0x00000151, + 0x00000116,0x0005002c,0x00000019,0x0000038b,0x00000116,0x00000151,0x0005002c,0x00000019, + 0x0000038e,0x00000116,0x00000116,0x0004002b,0x00000006,0x000003d3,0x00000040,0x0004002b, + 0x00000006,0x000003e1,0x00000020,0x0004001c,0x000003eb,0x0000003a,0x00000190,0x00040020, + 0x000003ec,0x00000007,0x000003eb,0x0004002b,0x0000001e,0x000006e0,0x00000007,0x00040017, + 0x00000746,0x00000006,0x00000003,0x00040020,0x00000747,0x00000001,0x00000746,0x0004003b, + 0x00000747,0x00000748,0x00000001,0x00040020,0x0000074b,0x00000001,0x00000006,0x0004003b, + 0x0000074b,0x0000074c,0x00000001,0x0004002b,0x00000013,0x00000752,0x387fda40,0x0004002b, + 0x00000013,0x00000753,0x477fe000,0x0004002b,0x00000013,0x00000754,0x37801002,0x0002001a, + 0x00000755,0x00040020,0x00000756,0x00000000,0x00000755,0x0004003b,0x00000756,0x00000757, + 0x00000000,0x0004002b,0x00000013,0x00000758,0x7f7fffff,0x0004002b,0x00000013,0x00000759, + 0x00800000,0x0004002b,0x00000006,0x0000075a,0x00000100,0x0006002c,0x00000746,0x0000075b, + 0x0000075a,0x00000116,0x00000116,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x000000f5,0x0000074f,0x00000007,0x0004003b,0x00000030, + 0x00000750,0x00000007,0x0004003d,0x00000746,0x00000749,0x00000748,0x0004007c,0x000000f4, + 0x0000074a,0x00000749,0x0004003d,0x00000006,0x0000074d,0x0000074c,0x0004007c,0x0000001e, + 0x0000074e,0x0000074d,0x0003003e,0x0000074f,0x0000074a,0x0003003e,0x00000750,0x0000074e, + 0x00060039,0x00000002,0x00000751,0x000000f9,0x0000074f,0x00000750,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d, + 0x0004003d,0x00000006,0x000000fb,0x00000009,0x0004003d,0x00000006,0x000000fc,0x0000000a, + 0x0004007c,0x0000001e,0x000000fd,0x000000fc,0x0004003d,0x00000006,0x000000fe,0x0000000b, + 0x0004007c,0x0000001e,0x000000ff,0x000000fe,0x000600cb,0x00000006,0x00000100,0x000000fb, + 0x000000fd,0x000000ff,0x000200fe,0x00000100,0x00010038,0x00050036,0x00000006,0x00000011, + 0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000006,0x00000103, + 0x0000000e,0x0004003d,0x00000006,0x00000104,0x0000000f,0x0004003d,0x00000006,0x00000106, + 0x00000010,0x0004007c,0x0000001e,0x00000107,0x00000106,0x000700c9,0x00000006,0x00000108, + 0x00000103,0x00000104,0x00000105,0x00000107,0x000200fe,0x00000108,0x00010038,0x00050036, + 0x00000014,0x00000017,0x00000000,0x00000015,0x00030037,0x00000007,0x00000016,0x000200f8, + 0x00000018,0x0004003d,0x00000006,0x0000010b,0x00000016,0x0006000c,0x00000014,0x0000010c, + 0x00000001,0x0000003e,0x0000010b,0x000200fe,0x0000010c,0x00010038,0x00050036,0x00000019, + 0x0000001c,0x00000000,0x0000001a,0x00030037,0x00000007,0x0000001b,0x000200f8,0x0000001d, + 0x0004003b,0x00000007,0x00000111,0x00000007,0x0004003b,0x00000007,0x00000113,0x00000007, + 0x0004003b,0x00000007,0x00000114,0x00000007,0x0004003b,0x00000007,0x00000117,0x00000007, + 0x0004003b,0x00000007,0x00000118,0x00000007,0x0004003b,0x00000007,0x0000011a,0x00000007, + 0x0004003b,0x00000007,0x0000011c,0x00000007,0x0004003b,0x00000007,0x0000011e,0x00000007, + 0x0004003b,0x00000007,0x0000011f,0x00000007,0x0004003b,0x00000007,0x00000121,0x00000007, + 0x0004003b,0x00000007,0x00000123,0x00000007,0x0004003b,0x00000007,0x00000124,0x00000007, + 0x0004003b,0x00000007,0x00000126,0x00000007,0x0004003b,0x00000007,0x00000127,0x00000007, + 0x0004003b,0x00000007,0x00000128,0x00000007,0x0004003d,0x00000006,0x00000112,0x0000001b, + 0x0003003e,0x00000111,0x00000112,0x0003003e,0x00000113,0x0000010f,0x0003003e,0x00000114, + 0x00000110,0x00070039,0x00000006,0x00000115,0x0000000c,0x00000111,0x00000113,0x00000114, + 0x0003003e,0x00000117,0x00000115,0x0004003d,0x00000006,0x00000119,0x0000001b,0x0003003e, + 0x00000118,0x00000119,0x0003003e,0x0000011a,0x00000116,0x00070039,0x00000006,0x0000011b, + 0x00000011,0x00000117,0x00000118,0x0000011a,0x0004003d,0x00000006,0x0000011d,0x0000001b, + 0x0003003e,0x0000011c,0x0000011d,0x0003003e,0x0000011e,0x00000110,0x0003003e,0x0000011f, + 0x00000110,0x00070039,0x00000006,0x00000120,0x0000000c,0x0000011c,0x0000011e,0x0000011f, + 0x0004003d,0x00000006,0x00000122,0x0000001b,0x0003003e,0x00000121,0x00000122,0x0003003e, + 0x00000123,0x00000116,0x0003003e,0x00000124,0x0000010f,0x00070039,0x00000006,0x00000125, + 0x0000000c,0x00000121,0x00000123,0x00000124,0x0003003e,0x00000126,0x00000120,0x0003003e, + 0x00000127,0x00000125,0x0003003e,0x00000128,0x0000010f,0x00070039,0x00000006,0x00000129, + 0x00000011,0x00000126,0x00000127,0x00000128,0x00050050,0x00000019,0x0000012a,0x0000011b, + 0x00000129,0x000200fe,0x0000012a,0x00010038,0x00050036,0x0000001f,0x00000021,0x00000000, + 0x00000020,0x000200f8,0x00000022,0x00050041,0x00000132,0x00000133,0x00000130,0x00000131, + 0x0004003d,0x0000001f,0x00000134,0x00000133,0x000200fe,0x00000134,0x00010038,0x00050036, + 0x00000006,0x00000024,0x00000000,0x00000023,0x000200f8,0x00000025,0x00050041,0x0000013a, + 0x0000013b,0x00000139,0x00000105,0x0004003d,0x00000006,0x0000013c,0x0000013b,0x000200fe, + 0x0000013c,0x00010038,0x00050036,0x00000006,0x00000026,0x00000000,0x00000023,0x000200f8, + 0x00000027,0x00050041,0x0000013a,0x0000013f,0x00000139,0x00000131,0x0004003d,0x00000006, + 0x00000140,0x0000013f,0x000200fe,0x00000140,0x00010038,0x00050036,0x00000019,0x00000029, + 0x00000000,0x00000028,0x000200f8,0x0000002a,0x00050041,0x00000144,0x00000145,0x00000139, + 0x00000143,0x0004003d,0x00000019,0x00000146,0x00000145,0x000200fe,0x00000146,0x00010038, + 0x00050036,0x00000019,0x0000002e,0x00000000,0x0000002c,0x00030037,0x0000002b,0x0000002d, + 0x000200f8,0x0000002f,0x0004003b,0x00000007,0x00000149,0x00000007,0x0004003b,0x00000007, + 0x00000153,0x00000007,0x0004003d,0x0000014a,0x0000014d,0x0000014c,0x0004003d,0x0000001f, + 0x0000014e,0x0000002d,0x0007005f,0x0000014f,0x00000150,0x0000014d,0x0000014e,0x00000002, + 0x00000105,0x00050051,0x00000006,0x00000152,0x00000150,0x00000000,0x0003003e,0x00000149, + 0x00000152,0x0004003d,0x0000014a,0x00000155,0x00000154,0x0004003d,0x0000001f,0x00000156, + 0x0000002d,0x0007005f,0x0000014f,0x00000157,0x00000155,0x00000156,0x00000002,0x00000105, + 0x00050051,0x00000006,0x00000158,0x00000157,0x00000000,0x0003003e,0x00000153,0x00000158, + 0x0004003d,0x00000006,0x00000159,0x00000149,0x0004003d,0x00000006,0x0000015a,0x00000153, + 0x00050050,0x00000019,0x0000015b,0x00000159,0x0000015a,0x000200fe,0x0000015b,0x00010038, + 0x00050036,0x00000002,0x00000034,0x00000000,0x00000031,0x00030037,0x00000030,0x00000032, + 0x00030037,0x00000007,0x00000033,0x000200f8,0x00000035,0x0004003d,0x0000001e,0x00000162, + 0x00000032,0x0004003d,0x00000006,0x00000163,0x00000033,0x00060041,0x00000164,0x00000165, + 0x00000161,0x00000105,0x00000162,0x0003003e,0x00000165,0x00000163,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000038,0x00000000,0x00000031,0x00030037,0x00000030,0x00000036, + 0x00030037,0x00000007,0x00000037,0x000200f8,0x00000039,0x0004003d,0x0000001e,0x00000166, + 0x00000036,0x00060041,0x00000164,0x00000167,0x00000161,0x00000105,0x00000166,0x000700ea, + 0x00000006,0x00000168,0x00000167,0x00000116,0x00000151,0x00000116,0x0003003e,0x00000037, + 0x00000168,0x000100fd,0x00010038,0x00050036,0x0000003a,0x0000003e,0x00000000,0x0000003b, + 0x00030037,0x0000002b,0x0000003c,0x00030037,0x00000007,0x0000003d,0x000200f8,0x0000003f, + 0x0004003d,0x00000006,0x00000169,0x0000003d,0x000500aa,0x00000047,0x0000016a,0x00000169, + 0x00000151,0x000300f7,0x0000016c,0x00000000,0x000400fa,0x0000016a,0x0000016b,0x0000016c, + 0x000200f8,0x0000016b,0x0004003d,0x0000016d,0x00000170,0x0000016f,0x0004003d,0x0000001f, + 0x00000171,0x0000003c,0x00050062,0x0000003a,0x00000172,0x00000170,0x00000171,0x000200fe, + 0x00000172,0x000200f8,0x0000016c,0x0004003d,0x00000006,0x00000174,0x0000003d,0x000500aa, + 0x00000047,0x00000175,0x00000174,0x00000116,0x000300f7,0x00000177,0x00000000,0x000400fa, + 0x00000175,0x00000176,0x00000177,0x000200f8,0x00000176,0x0004003d,0x0000016d,0x00000179, + 0x00000178,0x0004003d,0x0000001f,0x0000017a,0x0000003c,0x00050062,0x0000003a,0x0000017b, + 0x00000179,0x0000017a,0x000200fe,0x0000017b,0x000200f8,0x00000177,0x0004003d,0x00000006, + 0x0000017d,0x0000003d,0x000500aa,0x00000047,0x0000017e,0x0000017d,0x0000010f,0x000300f7, + 0x00000180,0x00000000,0x000400fa,0x0000017e,0x0000017f,0x00000180,0x000200f8,0x0000017f, + 0x0004003d,0x0000016d,0x00000182,0x00000181,0x0004003d,0x0000001f,0x00000183,0x0000003c, + 0x00050062,0x0000003a,0x00000184,0x00000182,0x00000183,0x000200fe,0x00000184,0x000200f8, + 0x00000180,0x0004003d,0x00000006,0x00000186,0x0000003d,0x000500aa,0x00000047,0x00000187, + 0x00000186,0x00000110,0x000300f7,0x00000189,0x00000000,0x000400fa,0x00000187,0x00000188, + 0x00000189,0x000200f8,0x00000188,0x0004003d,0x0000016d,0x0000018b,0x0000018a,0x0004003d, + 0x0000001f,0x0000018c,0x0000003c,0x00050062,0x0000003a,0x0000018d,0x0000018b,0x0000018c, + 0x000200fe,0x0000018d,0x000200f8,0x00000189,0x0004003d,0x00000006,0x0000018f,0x0000003d, + 0x000500aa,0x00000047,0x00000191,0x0000018f,0x00000190,0x000300f7,0x00000193,0x00000000, + 0x000400fa,0x00000191,0x00000192,0x00000193,0x000200f8,0x00000192,0x0004003d,0x0000016d, + 0x00000195,0x00000194,0x0004003d,0x0000001f,0x00000196,0x0000003c,0x00050062,0x0000003a, + 0x00000197,0x00000195,0x00000196,0x000200fe,0x00000197,0x000200f8,0x00000193,0x0004003d, + 0x00000006,0x00000199,0x0000003d,0x000500aa,0x00000047,0x0000019b,0x00000199,0x0000019a, + 0x000300f7,0x0000019d,0x00000000,0x000400fa,0x0000019b,0x0000019c,0x0000019d,0x000200f8, + 0x0000019c,0x0004003d,0x0000016d,0x0000019f,0x0000019e,0x0004003d,0x0000001f,0x000001a0, + 0x0000003c,0x00050062,0x0000003a,0x000001a1,0x0000019f,0x000001a0,0x000200fe,0x000001a1, + 0x000200f8,0x0000019d,0x0004003d,0x00000006,0x000001a3,0x0000003d,0x000500aa,0x00000047, + 0x000001a5,0x000001a3,0x000001a4,0x000300f7,0x000001a7,0x00000000,0x000400fa,0x000001a5, + 0x000001a6,0x000001a7,0x000200f8,0x000001a6,0x0004003d,0x0000016d,0x000001a9,0x000001a8, + 0x0004003d,0x0000001f,0x000001aa,0x0000003c,0x00050062,0x0000003a,0x000001ab,0x000001a9, + 0x000001aa,0x000200fe,0x000001ab,0x000200f8,0x000001a7,0x0004003d,0x00000006,0x000001ad, + 0x0000003d,0x000500aa,0x00000047,0x000001af,0x000001ad,0x000001ae,0x000300f7,0x000001b1, + 0x00000000,0x000400fa,0x000001af,0x000001b0,0x000001b1,0x000200f8,0x000001b0,0x0004003d, + 0x0000016d,0x000001b3,0x000001b2,0x0004003d,0x0000001f,0x000001b4,0x0000003c,0x00050062, + 0x0000003a,0x000001b5,0x000001b3,0x000001b4,0x000200fe,0x000001b5,0x000200f8,0x000001b1, + 0x0004003d,0x00000006,0x000001b7,0x0000003d,0x000500aa,0x00000047,0x000001b9,0x000001b7, + 0x000001b8,0x000300f7,0x000001bb,0x00000000,0x000400fa,0x000001b9,0x000001ba,0x000001bb, + 0x000200f8,0x000001ba,0x0004003d,0x0000016d,0x000001bd,0x000001bc,0x0004003d,0x0000001f, + 0x000001be,0x0000003c,0x00050062,0x0000003a,0x000001bf,0x000001bd,0x000001be,0x000200fe, + 0x000001bf,0x000200f8,0x000001bb,0x0004003d,0x00000006,0x000001c1,0x0000003d,0x000500aa, + 0x00000047,0x000001c3,0x000001c1,0x000001c2,0x000300f7,0x000001c5,0x00000000,0x000400fa, + 0x000001c3,0x000001c4,0x000001c5,0x000200f8,0x000001c4,0x0004003d,0x0000016d,0x000001c7, + 0x000001c6,0x0004003d,0x0000001f,0x000001c8,0x0000003c,0x00050062,0x0000003a,0x000001c9, + 0x000001c7,0x000001c8,0x000200fe,0x000001c9,0x000200f8,0x000001c5,0x0004003d,0x00000006, + 0x000001cb,0x0000003d,0x000500aa,0x00000047,0x000001cd,0x000001cb,0x000001cc,0x000300f7, + 0x000001cf,0x00000000,0x000400fa,0x000001cd,0x000001ce,0x000001cf,0x000200f8,0x000001ce, + 0x0004003d,0x0000016d,0x000001d1,0x000001d0,0x0004003d,0x0000001f,0x000001d2,0x0000003c, + 0x00050062,0x0000003a,0x000001d3,0x000001d1,0x000001d2,0x000200fe,0x000001d3,0x000200f8, + 0x000001cf,0x0004003d,0x00000006,0x000001d5,0x0000003d,0x000500aa,0x00000047,0x000001d7, + 0x000001d5,0x000001d6,0x000300f7,0x000001d9,0x00000000,0x000400fa,0x000001d7,0x000001d8, + 0x000001d9,0x000200f8,0x000001d8,0x0004003d,0x0000016d,0x000001db,0x000001da,0x0004003d, + 0x0000001f,0x000001dc,0x0000003c,0x00050062,0x0000003a,0x000001dd,0x000001db,0x000001dc, + 0x000200fe,0x000001dd,0x000200f8,0x000001d9,0x0004003d,0x00000006,0x000001df,0x0000003d, + 0x000500aa,0x00000047,0x000001e1,0x000001df,0x000001e0,0x000300f7,0x000001e3,0x00000000, + 0x000400fa,0x000001e1,0x000001e2,0x000001e3,0x000200f8,0x000001e2,0x0004003d,0x0000016d, + 0x000001e5,0x000001e4,0x0004003d,0x0000001f,0x000001e6,0x0000003c,0x00050062,0x0000003a, + 0x000001e7,0x000001e5,0x000001e6,0x000200fe,0x000001e7,0x000200f8,0x000001e3,0x000200fe, + 0x000001ea,0x00010038,0x00050036,0x00000002,0x00000045,0x00000000,0x00000041,0x00030037, + 0x0000002b,0x00000042,0x00030037,0x00000040,0x00000043,0x00030037,0x00000007,0x00000044, + 0x000200f8,0x00000046,0x0004003d,0x00000006,0x000001ed,0x00000044,0x000500aa,0x00000047, + 0x000001ee,0x000001ed,0x00000151,0x000300f7,0x000001f0,0x00000000,0x000400fa,0x000001ee, + 0x000001ef,0x000001f0,0x000200f8,0x000001ef,0x0004003d,0x0000016d,0x000001f1,0x0000016f, + 0x0004003d,0x0000001f,0x000001f2,0x00000042,0x0004003d,0x0000003a,0x000001f3,0x00000043, + 0x00040063,0x000001f1,0x000001f2,0x000001f3,0x000200f9,0x000001f0,0x000200f8,0x000001f0, + 0x0004003d,0x00000006,0x000001f4,0x00000044,0x000500aa,0x00000047,0x000001f5,0x000001f4, + 0x00000116,0x000300f7,0x000001f7,0x00000000,0x000400fa,0x000001f5,0x000001f6,0x000001f7, + 0x000200f8,0x000001f6,0x0004003d,0x0000016d,0x000001f8,0x00000178,0x0004003d,0x0000001f, + 0x000001f9,0x00000042,0x0004003d,0x0000003a,0x000001fa,0x00000043,0x00040063,0x000001f8, + 0x000001f9,0x000001fa,0x000200f9,0x000001f7,0x000200f8,0x000001f7,0x0004003d,0x00000006, + 0x000001fb,0x00000044,0x000500aa,0x00000047,0x000001fc,0x000001fb,0x0000010f,0x000300f7, + 0x000001fe,0x00000000,0x000400fa,0x000001fc,0x000001fd,0x000001fe,0x000200f8,0x000001fd, + 0x0004003d,0x0000016d,0x000001ff,0x00000181,0x0004003d,0x0000001f,0x00000200,0x00000042, + 0x0004003d,0x0000003a,0x00000201,0x00000043,0x00040063,0x000001ff,0x00000200,0x00000201, + 0x000200f9,0x000001fe,0x000200f8,0x000001fe,0x0004003d,0x00000006,0x00000202,0x00000044, + 0x000500aa,0x00000047,0x00000203,0x00000202,0x00000110,0x000300f7,0x00000205,0x00000000, + 0x000400fa,0x00000203,0x00000204,0x00000205,0x000200f8,0x00000204,0x0004003d,0x0000016d, + 0x00000206,0x0000018a,0x0004003d,0x0000001f,0x00000207,0x00000042,0x0004003d,0x0000003a, + 0x00000208,0x00000043,0x00040063,0x00000206,0x00000207,0x00000208,0x000200f9,0x00000205, + 0x000200f8,0x00000205,0x0004003d,0x00000006,0x00000209,0x00000044,0x000500aa,0x00000047, + 0x0000020a,0x00000209,0x00000190,0x000300f7,0x0000020c,0x00000000,0x000400fa,0x0000020a, + 0x0000020b,0x0000020c,0x000200f8,0x0000020b,0x0004003d,0x0000016d,0x0000020d,0x00000194, + 0x0004003d,0x0000001f,0x0000020e,0x00000042,0x0004003d,0x0000003a,0x0000020f,0x00000043, + 0x00040063,0x0000020d,0x0000020e,0x0000020f,0x000200f9,0x0000020c,0x000200f8,0x0000020c, + 0x0004003d,0x00000006,0x00000210,0x00000044,0x000500aa,0x00000047,0x00000211,0x00000210, + 0x0000019a,0x000300f7,0x00000213,0x00000000,0x000400fa,0x00000211,0x00000212,0x00000213, + 0x000200f8,0x00000212,0x0004003d,0x0000016d,0x00000214,0x0000019e,0x0004003d,0x0000001f, + 0x00000215,0x00000042,0x0004003d,0x0000003a,0x00000216,0x00000043,0x00040063,0x00000214, + 0x00000215,0x00000216,0x000200f9,0x00000213,0x000200f8,0x00000213,0x0004003d,0x00000006, + 0x00000217,0x00000044,0x000500aa,0x00000047,0x00000218,0x00000217,0x000001a4,0x000300f7, + 0x0000021a,0x00000000,0x000400fa,0x00000218,0x00000219,0x0000021a,0x000200f8,0x00000219, + 0x0004003d,0x0000016d,0x0000021b,0x000001a8,0x0004003d,0x0000001f,0x0000021c,0x00000042, + 0x0004003d,0x0000003a,0x0000021d,0x00000043,0x00040063,0x0000021b,0x0000021c,0x0000021d, + 0x000200f9,0x0000021a,0x000200f8,0x0000021a,0x0004003d,0x00000006,0x0000021e,0x00000044, + 0x000500aa,0x00000047,0x0000021f,0x0000021e,0x000001ae,0x000300f7,0x00000221,0x00000000, + 0x000400fa,0x0000021f,0x00000220,0x00000221,0x000200f8,0x00000220,0x0004003d,0x0000016d, + 0x00000222,0x000001b2,0x0004003d,0x0000001f,0x00000223,0x00000042,0x0004003d,0x0000003a, + 0x00000224,0x00000043,0x00040063,0x00000222,0x00000223,0x00000224,0x000200f9,0x00000221, + 0x000200f8,0x00000221,0x0004003d,0x00000006,0x00000225,0x00000044,0x000500aa,0x00000047, + 0x00000226,0x00000225,0x000001b8,0x000300f7,0x00000228,0x00000000,0x000400fa,0x00000226, + 0x00000227,0x00000228,0x000200f8,0x00000227,0x0004003d,0x0000016d,0x00000229,0x000001bc, + 0x0004003d,0x0000001f,0x0000022a,0x00000042,0x0004003d,0x0000003a,0x0000022b,0x00000043, + 0x00040063,0x00000229,0x0000022a,0x0000022b,0x000200f9,0x00000228,0x000200f8,0x00000228, + 0x0004003d,0x00000006,0x0000022c,0x00000044,0x000500aa,0x00000047,0x0000022d,0x0000022c, + 0x000001c2,0x000300f7,0x0000022f,0x00000000,0x000400fa,0x0000022d,0x0000022e,0x0000022f, + 0x000200f8,0x0000022e,0x0004003d,0x0000016d,0x00000230,0x000001c6,0x0004003d,0x0000001f, + 0x00000231,0x00000042,0x0004003d,0x0000003a,0x00000232,0x00000043,0x00040063,0x00000230, + 0x00000231,0x00000232,0x000200f9,0x0000022f,0x000200f8,0x0000022f,0x0004003d,0x00000006, + 0x00000233,0x00000044,0x000500aa,0x00000047,0x00000234,0x00000233,0x000001cc,0x000300f7, + 0x00000236,0x00000000,0x000400fa,0x00000234,0x00000235,0x00000236,0x000200f8,0x00000235, + 0x0004003d,0x0000016d,0x00000237,0x000001d0,0x0004003d,0x0000001f,0x00000238,0x00000042, + 0x0004003d,0x0000003a,0x00000239,0x00000043,0x00040063,0x00000237,0x00000238,0x00000239, + 0x000200f9,0x00000236,0x000200f8,0x00000236,0x0004003d,0x00000006,0x0000023a,0x00000044, + 0x000500aa,0x00000047,0x0000023b,0x0000023a,0x000001d6,0x000300f7,0x0000023d,0x00000000, + 0x000400fa,0x0000023b,0x0000023c,0x0000023d,0x000200f8,0x0000023c,0x0004003d,0x0000016d, + 0x0000023e,0x000001da,0x0004003d,0x0000001f,0x0000023f,0x00000042,0x0004003d,0x0000003a, + 0x00000240,0x00000043,0x00040063,0x0000023e,0x0000023f,0x00000240,0x000200f9,0x0000023d, + 0x000200f8,0x0000023d,0x0004003d,0x00000006,0x00000241,0x00000044,0x000500aa,0x00000047, + 0x00000242,0x00000241,0x000001e0,0x000300f7,0x00000244,0x00000000,0x000400fa,0x00000242, + 0x00000243,0x00000244,0x000200f8,0x00000243,0x0004003d,0x0000016d,0x00000245,0x000001e4, + 0x0004003d,0x0000001f,0x00000246,0x00000042,0x0004003d,0x0000003a,0x00000247,0x00000043, + 0x00040063,0x00000245,0x00000246,0x00000247,0x000200f9,0x00000244,0x000200f8,0x00000244, + 0x000100fd,0x00010038,0x00050036,0x00000047,0x0000004a,0x00000000,0x00000048,0x00030037, + 0x00000007,0x00000049,0x000200f8,0x0000004b,0x0004003d,0x00000006,0x00000248,0x00000049, + 0x000500c7,0x00000006,0x0000024a,0x00000248,0x00000249,0x000500ab,0x00000047,0x0000024b, + 0x0000024a,0x00000151,0x000200fe,0x0000024b,0x00010038,0x00050036,0x00000002,0x00000052, + 0x00000000,0x0000004f,0x00030037,0x0000004c,0x00000050,0x00030037,0x0000004e,0x00000051, + 0x000200f8,0x00000053,0x0004003b,0x00000007,0x00000264,0x00000007,0x0004003b,0x00000007, + 0x00000282,0x00000007,0x0004003b,0x00000007,0x00000288,0x00000007,0x00050041,0x00000007, + 0x0000024e,0x00000050,0x00000151,0x0004003d,0x00000006,0x0000024f,0x0000024e,0x000500c2, + 0x00000006,0x00000251,0x0000024f,0x00000250,0x000500c7,0x00000006,0x00000253,0x00000251, + 0x00000252,0x00040070,0x00000013,0x00000254,0x00000253,0x00050088,0x00000013,0x00000256, + 0x00000254,0x00000255,0x00050041,0x00000257,0x00000258,0x00000051,0x00000131,0x0003003e, + 0x00000258,0x00000256,0x00050041,0x00000007,0x00000259,0x00000050,0x00000151,0x0004003d, + 0x00000006,0x0000025a,0x00000259,0x000500c2,0x00000006,0x0000025c,0x0000025a,0x0000025b, + 0x000500c7,0x00000006,0x0000025e,0x0000025c,0x0000025d,0x00040070,0x00000013,0x0000025f, + 0x0000025e,0x00050088,0x00000013,0x00000261,0x0000025f,0x00000260,0x00050041,0x00000257, + 0x00000262,0x00000051,0x00000143,0x0003003e,0x00000262,0x00000261,0x00050041,0x00000007, + 0x00000265,0x00000050,0x00000151,0x0004003d,0x00000006,0x00000266,0x00000265,0x0003003e, + 0x00000264,0x00000266,0x00050039,0x00000047,0x00000267,0x0000004a,0x00000264,0x00050041, + 0x00000268,0x00000269,0x00000051,0x00000263,0x0003003e,0x00000269,0x00000267,0x00050041, + 0x00000257,0x0000026b,0x00000051,0x00000131,0x0004003d,0x00000013,0x0000026c,0x0000026b, + 0x000500ba,0x00000047,0x0000026d,0x0000026c,0x000001e9,0x00050041,0x00000268,0x0000026e, + 0x00000051,0x0000026a,0x0003003e,0x0000026e,0x0000026d,0x00050041,0x00000268,0x00000270, + 0x00000051,0x0000026a,0x0004003d,0x00000047,0x00000271,0x00000270,0x000300f7,0x00000273, + 0x00000000,0x000400fa,0x00000271,0x00000272,0x00000273,0x000200f8,0x00000272,0x00050041, + 0x00000268,0x00000274,0x00000051,0x00000263,0x0004003d,0x00000047,0x00000275,0x00000274, + 0x000400a8,0x00000047,0x00000276,0x00000275,0x000200f9,0x00000273,0x000200f8,0x00000273, + 0x000700f5,0x00000047,0x00000277,0x00000271,0x00000053,0x00000276,0x00000272,0x00050041, + 0x00000268,0x00000278,0x00000051,0x0000026f,0x0003003e,0x00000278,0x00000277,0x00050041, + 0x00000268,0x00000279,0x00000051,0x0000026f,0x0004003d,0x00000047,0x0000027a,0x00000279, + 0x000300f7,0x0000027c,0x00000000,0x000400fa,0x0000027a,0x0000027b,0x0000027c,0x000200f8, + 0x0000027b,0x00050041,0x00000257,0x0000027e,0x00000051,0x00000131,0x0004003d,0x00000013, + 0x0000027f,0x0000027e,0x00050083,0x00000013,0x00000280,0x0000027d,0x0000027f,0x00050041, + 0x00000257,0x00000281,0x00000051,0x00000131,0x0003003e,0x00000281,0x00000280,0x000200f9, + 0x0000027c,0x000200f8,0x0000027c,0x00050041,0x00000007,0x00000283,0x00000050,0x00000151, + 0x0004003d,0x00000006,0x00000284,0x00000283,0x0003003e,0x00000282,0x00000284,0x00050039, + 0x00000014,0x00000285,0x00000017,0x00000282,0x00050051,0x00000013,0x00000286,0x00000285, + 0x00000000,0x00060041,0x00000257,0x00000287,0x00000051,0x00000105,0x00000151,0x0003003e, + 0x00000287,0x00000286,0x00050041,0x00000007,0x00000289,0x00000050,0x00000116,0x0004003d, + 0x00000006,0x0000028a,0x00000289,0x0003003e,0x00000288,0x0000028a,0x00050039,0x00000014, + 0x0000028b,0x00000017,0x00000288,0x00050051,0x00000013,0x0000028c,0x0000028b,0x00000000, + 0x00060041,0x00000257,0x0000028d,0x00000051,0x00000105,0x00000116,0x0003003e,0x0000028d, + 0x0000028c,0x00050041,0x00000268,0x00000290,0x00000051,0x0000028e,0x0003003e,0x00000290, + 0x0000028f,0x000100fd,0x00010038,0x00050036,0x0000003a,0x00000056,0x00000000,0x0000003b, + 0x00030037,0x0000002b,0x00000054,0x00030037,0x00000007,0x00000055,0x000200f8,0x00000057, + 0x0004003b,0x0000004c,0x00000291,0x00000007,0x0004003b,0x0000002b,0x00000292,0x00000007, + 0x0004003b,0x0000004e,0x00000295,0x00000007,0x0004003b,0x0000004c,0x00000296,0x00000007, + 0x0004003b,0x0000004e,0x00000298,0x00000007,0x0004003d,0x0000001f,0x00000293,0x00000054, + 0x0003003e,0x00000292,0x00000293,0x00050039,0x00000019,0x00000294,0x0000002e,0x00000292, + 0x0003003e,0x00000291,0x00000294,0x0004003d,0x00000019,0x00000297,0x00000291,0x0003003e, + 0x00000296,0x00000297,0x00060039,0x00000002,0x00000299,0x00000052,0x00000296,0x00000298, + 0x0004003d,0x0000004d,0x0000029a,0x00000298,0x0003003e,0x00000295,0x0000029a,0x00050041, + 0x0000029b,0x0000029c,0x00000295,0x00000105,0x0004003d,0x00000014,0x0000029d,0x0000029c, + 0x00050041,0x00000257,0x0000029e,0x00000295,0x00000131,0x0004003d,0x00000013,0x0000029f, + 0x0000029e,0x00050041,0x00000257,0x000002a0,0x00000295,0x00000143,0x0004003d,0x00000013, + 0x000002a1,0x000002a0,0x00050051,0x00000013,0x000002a2,0x0000029d,0x00000000,0x00050051, + 0x00000013,0x000002a3,0x0000029d,0x00000001,0x00070050,0x0000003a,0x000002a4,0x000002a2, + 0x000002a3,0x0000029f,0x000002a1,0x00040039,0x0000001f,0x000002a5,0x00000021,0x00050051, + 0x0000001e,0x000002a6,0x000002a5,0x00000000,0x000500ad,0x00000047,0x000002a7,0x000002a6, + 0x00000105,0x000600a9,0x00000013,0x000002a8,0x000002a7,0x0000027d,0x000001e9,0x0005008e, + 0x0000003a,0x000002a9,0x000002a4,0x000002a8,0x000200fe,0x000002a9,0x00010038,0x00050036, + 0x0000003a,0x0000005a,0x00000000,0x0000003b,0x00030037,0x0000002b,0x00000058,0x00030037, + 0x00000007,0x00000059,0x000200f8,0x0000005b,0x0004003b,0x0000002b,0x000002ac,0x00000007, + 0x0004003b,0x00000007,0x000002ae,0x00000007,0x0004003d,0x0000001f,0x000002ad,0x00000058, + 0x0003003e,0x000002ac,0x000002ad,0x0003003e,0x000002ae,0x0000019a,0x00060039,0x0000003a, + 0x000002af,0x0000003e,0x000002ac,0x000002ae,0x000200fe,0x000002af,0x00010038,0x00050036, + 0x00000002,0x00000061,0x00000000,0x0000005c,0x00030037,0x0000002b,0x0000005d,0x00030037, + 0x00000040,0x0000005e,0x00030037,0x00000007,0x0000005f,0x00030037,0x00000007,0x00000060, + 0x000200f8,0x00000062,0x0004003b,0x0000002b,0x000002b2,0x00000007,0x0004003b,0x00000040, + 0x000002b4,0x00000007,0x0004003b,0x00000007,0x000002b6,0x00000007,0x0004003d,0x0000001f, + 0x000002b3,0x0000005d,0x0003003e,0x000002b2,0x000002b3,0x0004003d,0x0000003a,0x000002b5, + 0x0000005e,0x0003003e,0x000002b4,0x000002b5,0x0004003d,0x00000006,0x000002b7,0x0000005f, + 0x0003003e,0x000002b6,0x000002b7,0x00070039,0x00000002,0x000002b8,0x00000045,0x000002b2, + 0x000002b4,0x000002b6,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000065,0x00000000, + 0x00000063,0x00030037,0x00000007,0x00000064,0x000200f8,0x00000066,0x0004003b,0x00000030, + 0x000002bb,0x00000007,0x0004003b,0x00000007,0x000002bc,0x00000007,0x0003003e,0x000002bb, + 0x00000105,0x00060039,0x00000002,0x000002bd,0x00000038,0x000002bb,0x000002bc,0x0004003d, + 0x00000006,0x000002be,0x000002bc,0x0003003e,0x000002ba,0x000002be,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x00000067,0x00000000,0x00000023,0x000200f8,0x00000068,0x0004003d, + 0x00000006,0x000002bf,0x000002ba,0x000200fe,0x000002bf,0x00010038,0x00050036,0x00000002, + 0x0000006a,0x00000000,0x00000063,0x00030037,0x00000007,0x00000069,0x000200f8,0x0000006b, + 0x0004003b,0x00000030,0x000002c2,0x00000007,0x0004003b,0x00000007,0x000002c3,0x00000007, + 0x0003003e,0x000002c2,0x00000105,0x0003003e,0x000002c3,0x00000151,0x00060039,0x00000002, + 0x000002c4,0x00000034,0x000002c2,0x000002c3,0x000100fd,0x00010038,0x00050036,0x0000003a, + 0x0000006f,0x00000000,0x0000006c,0x00030037,0x00000007,0x0000006d,0x00030037,0x00000007, + 0x0000006e,0x000200f8,0x00000070,0x0004003d,0x00000006,0x000002c9,0x0000006d,0x0004003d, + 0x00000006,0x000002ca,0x0000006e,0x00060041,0x000002cb,0x000002cc,0x000002c8,0x000002c9, + 0x000002ca,0x0004003d,0x00000013,0x000002cd,0x000002cc,0x0004003d,0x00000006,0x000002cf, + 0x0000006d,0x0004003d,0x00000006,0x000002d0,0x0000006e,0x00060041,0x000002cb,0x000002d1, + 0x000002ce,0x000002cf,0x000002d0,0x0004003d,0x00000013,0x000002d2,0x000002d1,0x0004003d, + 0x00000006,0x000002d4,0x0000006d,0x0004003d,0x00000006,0x000002d5,0x0000006e,0x00060041, + 0x000002cb,0x000002d6,0x000002d3,0x000002d4,0x000002d5,0x0004003d,0x00000013,0x000002d7, + 0x000002d6,0x0004003d,0x00000006,0x000002d9,0x0000006d,0x0004003d,0x00000006,0x000002da, + 0x0000006e,0x00060041,0x000002cb,0x000002db,0x000002d8,0x000002d9,0x000002da,0x0004003d, + 0x00000013,0x000002dc,0x000002db,0x00070050,0x0000003a,0x000002dd,0x000002cd,0x000002d2, + 0x000002d7,0x000002dc,0x000200fe,0x000002dd,0x00010038,0x00050036,0x00000002,0x00000075, + 0x00000000,0x00000071,0x00030037,0x00000007,0x00000072,0x00030037,0x00000007,0x00000073, + 0x00030037,0x00000040,0x00000074,0x000200f8,0x00000076,0x0004003d,0x00000006,0x000002e0, + 0x00000072,0x0004003d,0x00000006,0x000002e1,0x00000073,0x00050041,0x00000257,0x000002e2, + 0x00000074,0x00000151,0x0004003d,0x00000013,0x000002e3,0x000002e2,0x00060041,0x000002cb, + 0x000002e4,0x000002c8,0x000002e0,0x000002e1,0x0003003e,0x000002e4,0x000002e3,0x0004003d, + 0x00000006,0x000002e5,0x00000072,0x0004003d,0x00000006,0x000002e6,0x00000073,0x00050041, + 0x00000257,0x000002e7,0x00000074,0x00000116,0x0004003d,0x00000013,0x000002e8,0x000002e7, + 0x00060041,0x000002cb,0x000002e9,0x000002ce,0x000002e5,0x000002e6,0x0003003e,0x000002e9, + 0x000002e8,0x0004003d,0x00000006,0x000002ea,0x00000072,0x0004003d,0x00000006,0x000002eb, + 0x00000073,0x00050041,0x00000257,0x000002ec,0x00000074,0x0000010f,0x0004003d,0x00000013, + 0x000002ed,0x000002ec,0x00060041,0x000002cb,0x000002ee,0x000002d3,0x000002ea,0x000002eb, + 0x0003003e,0x000002ee,0x000002ed,0x0004003d,0x00000006,0x000002ef,0x00000072,0x0004003d, + 0x00000006,0x000002f0,0x00000073,0x00050041,0x00000257,0x000002f1,0x00000074,0x00000110, + 0x0004003d,0x00000013,0x000002f2,0x000002f1,0x00060041,0x000002cb,0x000002f3,0x000002d8, + 0x000002ef,0x000002f0,0x0003003e,0x000002f3,0x000002f2,0x000100fd,0x00010038,0x00050036, + 0x0000003a,0x0000007c,0x00000000,0x00000077,0x00030037,0x00000040,0x00000078,0x00030037, + 0x00000040,0x00000079,0x00030037,0x00000040,0x0000007a,0x00030037,0x00000040,0x0000007b, + 0x000200f8,0x0000007d,0x0004003b,0x00000040,0x000002f4,0x00000007,0x0004003b,0x00000257, + 0x000002f5,0x00000007,0x0004003b,0x00000257,0x000002f6,0x00000007,0x0004003b,0x00000257, + 0x00000303,0x00000007,0x0004003b,0x00000257,0x00000310,0x00000007,0x0004003b,0x00000257, + 0x0000031d,0x00000007,0x0003003e,0x000002f4,0x000001ea,0x0003003e,0x000002f5,0x000001e9, + 0x00050041,0x00000257,0x000002f7,0x00000078,0x0000010f,0x0004003d,0x00000013,0x000002f8, + 0x000002f7,0x000500ba,0x00000047,0x000002f9,0x000002f8,0x000001e9,0x000600a9,0x00000013, + 0x000002fa,0x000002f9,0x0000027d,0x000001e9,0x0003003e,0x000002f6,0x000002fa,0x0004003d, + 0x0000003a,0x000002fb,0x00000078,0x0004003d,0x00000013,0x000002fc,0x000002f6,0x0005008e, + 0x0000003a,0x000002fd,0x000002fb,0x000002fc,0x0004003d,0x0000003a,0x000002fe,0x000002f4, + 0x00050081,0x0000003a,0x000002ff,0x000002fe,0x000002fd,0x0003003e,0x000002f4,0x000002ff, + 0x0004003d,0x00000013,0x00000300,0x000002f6,0x0004003d,0x00000013,0x00000301,0x000002f5, + 0x00050081,0x00000013,0x00000302,0x00000301,0x00000300,0x0003003e,0x000002f5,0x00000302, + 0x00050041,0x00000257,0x00000304,0x00000079,0x0000010f,0x0004003d,0x00000013,0x00000305, + 0x00000304,0x000500ba,0x00000047,0x00000306,0x00000305,0x000001e9,0x000600a9,0x00000013, + 0x00000307,0x00000306,0x0000027d,0x000001e9,0x0003003e,0x00000303,0x00000307,0x0004003d, + 0x0000003a,0x00000308,0x00000079,0x0004003d,0x00000013,0x00000309,0x00000303,0x0005008e, + 0x0000003a,0x0000030a,0x00000308,0x00000309,0x0004003d,0x0000003a,0x0000030b,0x000002f4, + 0x00050081,0x0000003a,0x0000030c,0x0000030b,0x0000030a,0x0003003e,0x000002f4,0x0000030c, + 0x0004003d,0x00000013,0x0000030d,0x00000303,0x0004003d,0x00000013,0x0000030e,0x000002f5, + 0x00050081,0x00000013,0x0000030f,0x0000030e,0x0000030d,0x0003003e,0x000002f5,0x0000030f, + 0x00050041,0x00000257,0x00000311,0x0000007a,0x0000010f,0x0004003d,0x00000013,0x00000312, + 0x00000311,0x000500ba,0x00000047,0x00000313,0x00000312,0x000001e9,0x000600a9,0x00000013, + 0x00000314,0x00000313,0x0000027d,0x000001e9,0x0003003e,0x00000310,0x00000314,0x0004003d, + 0x0000003a,0x00000315,0x0000007a,0x0004003d,0x00000013,0x00000316,0x00000310,0x0005008e, + 0x0000003a,0x00000317,0x00000315,0x00000316,0x0004003d,0x0000003a,0x00000318,0x000002f4, + 0x00050081,0x0000003a,0x00000319,0x00000318,0x00000317,0x0003003e,0x000002f4,0x00000319, + 0x0004003d,0x00000013,0x0000031a,0x00000310,0x0004003d,0x00000013,0x0000031b,0x000002f5, + 0x00050081,0x00000013,0x0000031c,0x0000031b,0x0000031a,0x0003003e,0x000002f5,0x0000031c, + 0x00050041,0x00000257,0x0000031e,0x0000007b,0x0000010f,0x0004003d,0x00000013,0x0000031f, + 0x0000031e,0x000500ba,0x00000047,0x00000320,0x0000031f,0x000001e9,0x000600a9,0x00000013, + 0x00000321,0x00000320,0x0000027d,0x000001e9,0x0003003e,0x0000031d,0x00000321,0x0004003d, + 0x0000003a,0x00000322,0x0000007b,0x0004003d,0x00000013,0x00000323,0x0000031d,0x0005008e, + 0x0000003a,0x00000324,0x00000322,0x00000323,0x0004003d,0x0000003a,0x00000325,0x000002f4, + 0x00050081,0x0000003a,0x00000326,0x00000325,0x00000324,0x0003003e,0x000002f4,0x00000326, + 0x0004003d,0x00000013,0x00000327,0x0000031d,0x0004003d,0x00000013,0x00000328,0x000002f5, + 0x00050081,0x00000013,0x00000329,0x00000328,0x00000327,0x0003003e,0x000002f5,0x00000329, + 0x0004003d,0x00000013,0x0000032a,0x000002f5,0x000500ba,0x00000047,0x0000032c,0x0000032a, + 0x0000032b,0x0004003d,0x00000013,0x0000032d,0x000002f5,0x000600a9,0x00000013,0x0000032e, + 0x0000032c,0x0000032d,0x0000027d,0x0004003d,0x0000003a,0x0000032f,0x000002f4,0x00070050, + 0x0000003a,0x00000330,0x0000032e,0x0000032e,0x0000032e,0x0000032e,0x00050088,0x0000003a, + 0x00000331,0x0000032f,0x00000330,0x0003003e,0x000002f4,0x00000331,0x0004003d,0x0000003a, + 0x00000332,0x000002f4,0x000200fe,0x00000332,0x00010038,0x00050036,0x00000002,0x0000007e, + 0x00000000,0x00000003,0x000200f8,0x0000007f,0x000300e1,0x0000010f,0x00000335,0x000400e0, + 0x0000010f,0x0000010f,0x00000336,0x000100fd,0x00010038,0x00050036,0x00000047,0x00000084, + 0x00000000,0x00000080,0x00030037,0x00000007,0x00000081,0x00030037,0x00000007,0x00000082, + 0x00030037,0x00000007,0x00000083,0x000200f8,0x00000085,0x0004003b,0x00000007,0x0000033b, + 0x00000007,0x0004003d,0x00000006,0x00000337,0x00000082,0x000500aa,0x00000047,0x00000338, + 0x00000337,0x00000151,0x000300f7,0x0000033a,0x00000000,0x000400fa,0x00000338,0x00000339, + 0x0000033a,0x000200f8,0x00000339,0x0004003d,0x00000006,0x0000033c,0x00000083,0x0003003e, + 0x0000033b,0x0000033c,0x00050039,0x00000002,0x0000033d,0x00000065,0x0000033b,0x000200f9, + 0x0000033a,0x000200f8,0x0000033a,0x00040039,0x00000002,0x0000033e,0x0000007e,0x00040039, + 0x00000006,0x0000033f,0x00000067,0x0004003d,0x00000006,0x00000340,0x00000081,0x00050082, + 0x00000006,0x00000341,0x00000340,0x00000116,0x000500ab,0x00000047,0x00000342,0x0000033f, + 0x00000341,0x000200fe,0x00000342,0x00010038,0x00050036,0x0000003a,0x00000088,0x00000000, + 0x00000086,0x00030037,0x00000040,0x00000087,0x000200f8,0x00000089,0x0004003b,0x00000040, + 0x00000345,0x00000007,0x0004003b,0x00000040,0x00000347,0x00000007,0x0004003b,0x00000040, + 0x0000034a,0x00000007,0x0004003b,0x00000040,0x0000034d,0x00000007,0x0004003b,0x00000040, + 0x00000350,0x00000007,0x0004003b,0x00000040,0x00000352,0x00000007,0x0004003b,0x00000040, + 0x00000354,0x00000007,0x0004003b,0x00000040,0x00000356,0x00000007,0x0004003d,0x0000003a, + 0x00000346,0x00000087,0x0003003e,0x00000345,0x00000346,0x0004003d,0x0000003a,0x00000348, + 0x00000087,0x0006016e,0x0000003a,0x00000349,0x00000110,0x00000348,0x00000151,0x0003003e, + 0x00000347,0x00000349,0x0004003d,0x0000003a,0x0000034b,0x00000087,0x0006016e,0x0000003a, + 0x0000034c,0x00000110,0x0000034b,0x00000116,0x0003003e,0x0000034a,0x0000034c,0x0004003d, + 0x0000003a,0x0000034e,0x00000087,0x0006016e,0x0000003a,0x0000034f,0x00000110,0x0000034e, + 0x0000010f,0x0003003e,0x0000034d,0x0000034f,0x0004003d,0x0000003a,0x00000351,0x00000345, + 0x0003003e,0x00000350,0x00000351,0x0004003d,0x0000003a,0x00000353,0x00000347,0x0003003e, + 0x00000352,0x00000353,0x0004003d,0x0000003a,0x00000355,0x0000034a,0x0003003e,0x00000354, + 0x00000355,0x0004003d,0x0000003a,0x00000357,0x0000034d,0x0003003e,0x00000356,0x00000357, + 0x00080039,0x0000003a,0x00000358,0x0000007c,0x00000350,0x00000352,0x00000354,0x00000356, + 0x000200fe,0x00000358,0x00010038,0x00050036,0x0000003a,0x00000090,0x00000000,0x0000008a, + 0x00030037,0x0000004c,0x0000008b,0x00030037,0x0000004c,0x0000008c,0x00030037,0x0000004c, + 0x0000008d,0x00030037,0x0000004c,0x0000008e,0x00030037,0x00000007,0x0000008f,0x000200f8, + 0x00000091,0x0004003b,0x00000040,0x0000035d,0x00000007,0x0004003b,0x0000002b,0x00000360, + 0x00000007,0x0004003b,0x00000007,0x00000361,0x00000007,0x0004003b,0x00000040,0x00000364, + 0x00000007,0x0004003b,0x0000002b,0x00000367,0x00000007,0x0004003b,0x00000007,0x00000368, + 0x00000007,0x0004003b,0x00000040,0x0000036b,0x00000007,0x0004003b,0x0000002b,0x0000036e, + 0x00000007,0x0004003b,0x00000007,0x0000036f,0x00000007,0x0004003b,0x00000040,0x00000372, + 0x00000007,0x0004003b,0x0000002b,0x00000375,0x00000007,0x0004003b,0x00000007,0x00000376, + 0x00000007,0x0004003b,0x00000040,0x00000379,0x00000007,0x0004003b,0x00000040,0x0000037b, + 0x00000007,0x0004003b,0x00000040,0x0000037d,0x00000007,0x0004003b,0x00000040,0x0000037f, + 0x00000007,0x0004003d,0x00000019,0x0000035e,0x0000008b,0x0004007c,0x0000001f,0x0000035f, + 0x0000035e,0x0003003e,0x00000360,0x0000035f,0x0004003d,0x00000006,0x00000362,0x0000008f, + 0x0003003e,0x00000361,0x00000362,0x00060039,0x0000003a,0x00000363,0x0000005a,0x00000360, + 0x00000361,0x0003003e,0x0000035d,0x00000363,0x0004003d,0x00000019,0x00000365,0x0000008c, + 0x0004007c,0x0000001f,0x00000366,0x00000365,0x0003003e,0x00000367,0x00000366,0x0004003d, + 0x00000006,0x00000369,0x0000008f,0x0003003e,0x00000368,0x00000369,0x00060039,0x0000003a, + 0x0000036a,0x0000005a,0x00000367,0x00000368,0x0003003e,0x00000364,0x0000036a,0x0004003d, + 0x00000019,0x0000036c,0x0000008d,0x0004007c,0x0000001f,0x0000036d,0x0000036c,0x0003003e, + 0x0000036e,0x0000036d,0x0004003d,0x00000006,0x00000370,0x0000008f,0x0003003e,0x0000036f, + 0x00000370,0x00060039,0x0000003a,0x00000371,0x0000005a,0x0000036e,0x0000036f,0x0003003e, + 0x0000036b,0x00000371,0x0004003d,0x00000019,0x00000373,0x0000008e,0x0004007c,0x0000001f, + 0x00000374,0x00000373,0x0003003e,0x00000375,0x00000374,0x0004003d,0x00000006,0x00000377, + 0x0000008f,0x0003003e,0x00000376,0x00000377,0x00060039,0x0000003a,0x00000378,0x0000005a, + 0x00000375,0x00000376,0x0003003e,0x00000372,0x00000378,0x0004003d,0x0000003a,0x0000037a, + 0x0000035d,0x0003003e,0x00000379,0x0000037a,0x0004003d,0x0000003a,0x0000037c,0x00000364, + 0x0003003e,0x0000037b,0x0000037c,0x0004003d,0x0000003a,0x0000037e,0x0000036b,0x0003003e, + 0x0000037d,0x0000037e,0x0004003d,0x0000003a,0x00000380,0x00000372,0x0003003e,0x0000037f, + 0x00000380,0x00080039,0x0000003a,0x00000381,0x0000007c,0x00000379,0x0000037b,0x0000037d, + 0x0000037f,0x000200fe,0x00000381,0x00010038,0x00050036,0x0000003a,0x00000095,0x00000000, + 0x00000092,0x00030037,0x0000004c,0x00000093,0x00030037,0x00000007,0x00000094,0x000200f8, + 0x00000096,0x0004003b,0x0000004c,0x00000390,0x00000007,0x0004003b,0x0000004c,0x00000391, + 0x00000007,0x0004003b,0x0000004c,0x00000392,0x00000007,0x0004003b,0x0000004c,0x00000393, + 0x00000007,0x0004003b,0x00000007,0x00000394,0x00000007,0x0004003d,0x00000019,0x00000384, + 0x00000093,0x00050080,0x00000019,0x00000386,0x00000384,0x00000385,0x0004003d,0x00000019, + 0x00000387,0x00000093,0x00050080,0x00000019,0x00000389,0x00000387,0x00000388,0x0004003d, + 0x00000019,0x0000038a,0x00000093,0x00050080,0x00000019,0x0000038c,0x0000038a,0x0000038b, + 0x0004003d,0x00000019,0x0000038d,0x00000093,0x00050080,0x00000019,0x0000038f,0x0000038d, + 0x0000038e,0x0003003e,0x00000390,0x00000386,0x0003003e,0x00000391,0x00000389,0x0003003e, + 0x00000392,0x0000038c,0x0003003e,0x00000393,0x0000038f,0x0004003d,0x00000006,0x00000395, + 0x00000094,0x0003003e,0x00000394,0x00000395,0x00090039,0x0000003a,0x00000396,0x00000090, + 0x00000390,0x00000391,0x00000392,0x00000393,0x00000394,0x000200fe,0x00000396,0x00010038, + 0x00050036,0x0000003a,0x0000009c,0x00000000,0x0000008a,0x00030037,0x0000004c,0x00000097, + 0x00030037,0x0000004c,0x00000098,0x00030037,0x0000004c,0x00000099,0x00030037,0x0000004c, + 0x0000009a,0x00030037,0x00000007,0x0000009b,0x000200f8,0x0000009d,0x0004003b,0x00000040, + 0x00000399,0x00000007,0x0004003b,0x0000002b,0x0000039c,0x00000007,0x0004003b,0x00000007, + 0x0000039d,0x00000007,0x0004003b,0x00000040,0x000003a0,0x00000007,0x0004003b,0x0000002b, + 0x000003a3,0x00000007,0x0004003b,0x00000007,0x000003a4,0x00000007,0x0004003b,0x00000040, + 0x000003a7,0x00000007,0x0004003b,0x0000002b,0x000003aa,0x00000007,0x0004003b,0x00000007, + 0x000003ab,0x00000007,0x0004003b,0x00000040,0x000003ae,0x00000007,0x0004003b,0x0000002b, + 0x000003b1,0x00000007,0x0004003b,0x00000007,0x000003b2,0x00000007,0x0004003b,0x00000040, + 0x000003b5,0x00000007,0x0004003b,0x00000040,0x000003b7,0x00000007,0x0004003b,0x00000040, + 0x000003b9,0x00000007,0x0004003b,0x00000040,0x000003bb,0x00000007,0x0004003d,0x00000019, + 0x0000039a,0x00000097,0x0004007c,0x0000001f,0x0000039b,0x0000039a,0x0003003e,0x0000039c, + 0x0000039b,0x0004003d,0x00000006,0x0000039e,0x0000009b,0x0003003e,0x0000039d,0x0000039e, + 0x00060039,0x0000003a,0x0000039f,0x00000056,0x0000039c,0x0000039d,0x0003003e,0x00000399, + 0x0000039f,0x0004003d,0x00000019,0x000003a1,0x00000098,0x0004007c,0x0000001f,0x000003a2, + 0x000003a1,0x0003003e,0x000003a3,0x000003a2,0x0004003d,0x00000006,0x000003a5,0x0000009b, + 0x0003003e,0x000003a4,0x000003a5,0x00060039,0x0000003a,0x000003a6,0x00000056,0x000003a3, + 0x000003a4,0x0003003e,0x000003a0,0x000003a6,0x0004003d,0x00000019,0x000003a8,0x00000099, + 0x0004007c,0x0000001f,0x000003a9,0x000003a8,0x0003003e,0x000003aa,0x000003a9,0x0004003d, + 0x00000006,0x000003ac,0x0000009b,0x0003003e,0x000003ab,0x000003ac,0x00060039,0x0000003a, + 0x000003ad,0x00000056,0x000003aa,0x000003ab,0x0003003e,0x000003a7,0x000003ad,0x0004003d, + 0x00000019,0x000003af,0x0000009a,0x0004007c,0x0000001f,0x000003b0,0x000003af,0x0003003e, + 0x000003b1,0x000003b0,0x0004003d,0x00000006,0x000003b3,0x0000009b,0x0003003e,0x000003b2, + 0x000003b3,0x00060039,0x0000003a,0x000003b4,0x00000056,0x000003b1,0x000003b2,0x0003003e, + 0x000003ae,0x000003b4,0x0004003d,0x0000003a,0x000003b6,0x00000399,0x0003003e,0x000003b5, + 0x000003b6,0x0004003d,0x0000003a,0x000003b8,0x000003a0,0x0003003e,0x000003b7,0x000003b8, + 0x0004003d,0x0000003a,0x000003ba,0x000003a7,0x0003003e,0x000003b9,0x000003ba,0x0004003d, + 0x0000003a,0x000003bc,0x000003ae,0x0003003e,0x000003bb,0x000003bc,0x00080039,0x0000003a, + 0x000003bd,0x0000007c,0x000003b5,0x000003b7,0x000003b9,0x000003bb,0x000200fe,0x000003bd, + 0x00010038,0x00050036,0x0000003a,0x000000a0,0x00000000,0x00000092,0x00030037,0x0000004c, + 0x0000009e,0x00030037,0x00000007,0x0000009f,0x000200f8,0x000000a1,0x0004003b,0x0000004c, + 0x000003c8,0x00000007,0x0004003b,0x0000004c,0x000003c9,0x00000007,0x0004003b,0x0000004c, + 0x000003ca,0x00000007,0x0004003b,0x0000004c,0x000003cb,0x00000007,0x0004003b,0x00000007, + 0x000003cc,0x00000007,0x0004003d,0x00000019,0x000003c0,0x0000009e,0x00050080,0x00000019, + 0x000003c1,0x000003c0,0x00000385,0x0004003d,0x00000019,0x000003c2,0x0000009e,0x00050080, + 0x00000019,0x000003c3,0x000003c2,0x00000388,0x0004003d,0x00000019,0x000003c4,0x0000009e, + 0x00050080,0x00000019,0x000003c5,0x000003c4,0x0000038b,0x0004003d,0x00000019,0x000003c6, + 0x0000009e,0x00050080,0x00000019,0x000003c7,0x000003c6,0x0000038e,0x0003003e,0x000003c8, + 0x000003c1,0x0003003e,0x000003c9,0x000003c3,0x0003003e,0x000003ca,0x000003c5,0x0003003e, + 0x000003cb,0x000003c7,0x0004003d,0x00000006,0x000003cd,0x0000009f,0x0003003e,0x000003cc, + 0x000003cd,0x00090039,0x0000003a,0x000003ce,0x0000009c,0x000003c8,0x000003c9,0x000003ca, + 0x000003cb,0x000003cc,0x000200fe,0x000003ce,0x00010038,0x00050036,0x00000002,0x000000a9, + 0x00000000,0x000000a2,0x00030037,0x00000007,0x000000a3,0x00030037,0x00000007,0x000000a4, + 0x00030037,0x0000004c,0x000000a5,0x00030037,0x00000007,0x000000a6,0x00030037,0x00000007, + 0x000000a7,0x00030037,0x00000007,0x000000a8,0x000200f8,0x000000aa,0x0004003b,0x0000002b, + 0x000003d1,0x00000007,0x0004003b,0x0000002b,0x000003df,0x00000007,0x0004003b,0x000003ec, + 0x000003ed,0x00000007,0x0004003b,0x0000004c,0x000003f0,0x00000007,0x0004003b,0x00000007, + 0x000003f1,0x00000007,0x0004003b,0x0000002b,0x000003f5,0x00000007,0x0004003b,0x00000040, + 0x000003f7,0x00000007,0x0004003b,0x00000007,0x000003fa,0x00000007,0x0004003b,0x00000007, + 0x000003fb,0x00000007,0x0004003b,0x0000004c,0x00000418,0x00000007,0x0004003b,0x00000007, + 0x00000419,0x00000007,0x0004003b,0x0000002b,0x0000041d,0x00000007,0x0004003b,0x00000040, + 0x0000041f,0x00000007,0x0004003b,0x00000007,0x00000422,0x00000007,0x0004003b,0x00000007, + 0x00000423,0x00000007,0x0004003b,0x0000004c,0x00000440,0x00000007,0x0004003b,0x00000007, + 0x00000441,0x00000007,0x0004003b,0x0000002b,0x00000445,0x00000007,0x0004003b,0x00000040, + 0x00000447,0x00000007,0x0004003b,0x00000007,0x0000044a,0x00000007,0x0004003b,0x00000007, + 0x0000044b,0x00000007,0x0004003b,0x0000004c,0x0000046a,0x00000007,0x0004003b,0x00000007, + 0x0000046b,0x00000007,0x0004003b,0x0000002b,0x0000046f,0x00000007,0x0004003b,0x00000040, + 0x00000471,0x00000007,0x0004003b,0x00000007,0x00000474,0x00000007,0x0004003b,0x00000007, + 0x00000475,0x00000007,0x0004003b,0x00000040,0x0000047d,0x00000007,0x0004003b,0x00000040, + 0x00000482,0x00000007,0x0004003b,0x00000040,0x00000487,0x00000007,0x0004003b,0x00000040, + 0x0000048c,0x00000007,0x0004003b,0x0000002b,0x000004a2,0x00000007,0x0004003b,0x00000040, + 0x000004a3,0x00000007,0x0004003b,0x00000007,0x000004a6,0x00000007,0x0004003b,0x00000007, + 0x000004a7,0x00000007,0x0004003b,0x00000007,0x000004ae,0x00000007,0x0004003b,0x00000007, + 0x000004af,0x00000007,0x0004003b,0x00000040,0x000004b0,0x00000007,0x0004003b,0x0000002b, + 0x000004c1,0x00000007,0x0004003b,0x00000040,0x000004c2,0x00000007,0x0004003b,0x00000007, + 0x000004c5,0x00000007,0x0004003b,0x00000007,0x000004c6,0x00000007,0x0004003b,0x00000007, + 0x000004ce,0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b,0x00000040, + 0x000004d0,0x00000007,0x0004003b,0x0000002b,0x000004e1,0x00000007,0x0004003b,0x00000040, + 0x000004e2,0x00000007,0x0004003b,0x00000007,0x000004e5,0x00000007,0x0004003b,0x00000007, + 0x000004e6,0x00000007,0x0004003b,0x00000007,0x000004ee,0x00000007,0x0004003b,0x00000007, + 0x000004ef,0x00000007,0x0004003b,0x00000040,0x000004f0,0x00000007,0x0004003b,0x0000002b, + 0x00000502,0x00000007,0x0004003b,0x00000040,0x00000503,0x00000007,0x0004003b,0x00000007, + 0x00000506,0x00000007,0x0004003b,0x00000007,0x00000507,0x00000007,0x0004003b,0x00000007, + 0x00000510,0x00000007,0x0004003b,0x00000007,0x00000511,0x00000007,0x0004003b,0x00000040, + 0x00000512,0x00000007,0x0004003d,0x00000019,0x000003d2,0x000000a5,0x00050050,0x00000019, + 0x000003d4,0x000003d3,0x000003d3,0x00050084,0x00000019,0x000003d5,0x000003d2,0x000003d4, + 0x0004007c,0x0000001f,0x000003d6,0x000003d5,0x0004003d,0x00000006,0x000003d7,0x000000a3, + 0x00050084,0x00000006,0x000003d8,0x000003d7,0x0000010f,0x0004007c,0x0000001e,0x000003d9, + 0x000003d8,0x0004003d,0x00000006,0x000003da,0x000000a4,0x00050084,0x00000006,0x000003db, + 0x000003da,0x0000010f,0x0004007c,0x0000001e,0x000003dc,0x000003db,0x00050050,0x0000001f, + 0x000003dd,0x000003d9,0x000003dc,0x00050080,0x0000001f,0x000003de,0x000003d6,0x000003dd, + 0x0003003e,0x000003d1,0x000003de,0x0004003d,0x00000019,0x000003e0,0x000000a5,0x00050050, + 0x00000019,0x000003e2,0x000003e1,0x000003e1,0x00050084,0x00000019,0x000003e3,0x000003e0, + 0x000003e2,0x0004007c,0x0000001f,0x000003e4,0x000003e3,0x0004003d,0x00000006,0x000003e5, + 0x000000a3,0x0004007c,0x0000001e,0x000003e6,0x000003e5,0x0004003d,0x00000006,0x000003e7, + 0x000000a4,0x0004007c,0x0000001e,0x000003e8,0x000003e7,0x00050050,0x0000001f,0x000003e9, + 0x000003e6,0x000003e8,0x00050080,0x0000001f,0x000003ea,0x000003e4,0x000003e9,0x0003003e, + 0x000003df,0x000003ea,0x0004003d,0x0000001f,0x000003ee,0x000003d1,0x0004007c,0x00000019, + 0x000003ef,0x000003ee,0x0003003e,0x000003f0,0x000003ef,0x0004003d,0x00000006,0x000003f2, + 0x000000a8,0x0003003e,0x000003f1,0x000003f2,0x00060039,0x0000003a,0x000003f3,0x000000a0, + 0x000003f0,0x000003f1,0x00050041,0x00000040,0x000003f4,0x000003ed,0x00000105,0x0003003e, + 0x000003f4,0x000003f3,0x0004003d,0x0000001f,0x000003f6,0x000003df,0x0003003e,0x000003f5, + 0x000003f6,0x00050041,0x00000040,0x000003f8,0x000003ed,0x00000105,0x0004003d,0x0000003a, + 0x000003f9,0x000003f8,0x0003003e,0x000003f7,0x000003f9,0x0003003e,0x000003fa,0x00000151, + 0x0004003d,0x00000006,0x000003fc,0x000000a8,0x0003003e,0x000003fb,0x000003fc,0x00080039, + 0x00000002,0x000003fd,0x00000061,0x000003f5,0x000003f7,0x000003fa,0x000003fb,0x0004003d, + 0x00000019,0x000003fe,0x000000a5,0x00050050,0x00000019,0x000003ff,0x000003d3,0x000003d3, + 0x00050084,0x00000019,0x00000400,0x000003fe,0x000003ff,0x0004007c,0x0000001f,0x00000401, + 0x00000400,0x0004003d,0x00000006,0x00000402,0x000000a3,0x00050084,0x00000006,0x00000403, + 0x00000402,0x0000010f,0x00050080,0x00000006,0x00000404,0x00000403,0x000003e1,0x0004007c, + 0x0000001e,0x00000405,0x00000404,0x0004003d,0x00000006,0x00000406,0x000000a4,0x00050084, + 0x00000006,0x00000407,0x00000406,0x0000010f,0x0004007c,0x0000001e,0x00000408,0x00000407, + 0x00050050,0x0000001f,0x00000409,0x00000405,0x00000408,0x00050080,0x0000001f,0x0000040a, + 0x00000401,0x00000409,0x0003003e,0x000003d1,0x0000040a,0x0004003d,0x00000019,0x0000040b, + 0x000000a5,0x00050050,0x00000019,0x0000040c,0x000003e1,0x000003e1,0x00050084,0x00000019, + 0x0000040d,0x0000040b,0x0000040c,0x0004007c,0x0000001f,0x0000040e,0x0000040d,0x0004003d, + 0x00000006,0x0000040f,0x000000a3,0x00050080,0x00000006,0x00000410,0x0000040f,0x0000025b, + 0x0004007c,0x0000001e,0x00000411,0x00000410,0x0004003d,0x00000006,0x00000412,0x000000a4, + 0x0004007c,0x0000001e,0x00000413,0x00000412,0x00050050,0x0000001f,0x00000414,0x00000411, + 0x00000413,0x00050080,0x0000001f,0x00000415,0x0000040e,0x00000414,0x0003003e,0x000003df, + 0x00000415,0x0004003d,0x0000001f,0x00000416,0x000003d1,0x0004007c,0x00000019,0x00000417, + 0x00000416,0x0003003e,0x00000418,0x00000417,0x0004003d,0x00000006,0x0000041a,0x000000a8, + 0x0003003e,0x00000419,0x0000041a,0x00060039,0x0000003a,0x0000041b,0x000000a0,0x00000418, + 0x00000419,0x00050041,0x00000040,0x0000041c,0x000003ed,0x00000131,0x0003003e,0x0000041c, + 0x0000041b,0x0004003d,0x0000001f,0x0000041e,0x000003df,0x0003003e,0x0000041d,0x0000041e, + 0x00050041,0x00000040,0x00000420,0x000003ed,0x00000131,0x0004003d,0x0000003a,0x00000421, + 0x00000420,0x0003003e,0x0000041f,0x00000421,0x0003003e,0x00000422,0x00000151,0x0004003d, + 0x00000006,0x00000424,0x000000a8,0x0003003e,0x00000423,0x00000424,0x00080039,0x00000002, + 0x00000425,0x00000061,0x0000041d,0x0000041f,0x00000422,0x00000423,0x0004003d,0x00000019, + 0x00000426,0x000000a5,0x00050050,0x00000019,0x00000427,0x000003d3,0x000003d3,0x00050084, + 0x00000019,0x00000428,0x00000426,0x00000427,0x0004007c,0x0000001f,0x00000429,0x00000428, + 0x0004003d,0x00000006,0x0000042a,0x000000a3,0x00050084,0x00000006,0x0000042b,0x0000042a, + 0x0000010f,0x0004007c,0x0000001e,0x0000042c,0x0000042b,0x0004003d,0x00000006,0x0000042d, + 0x000000a4,0x00050084,0x00000006,0x0000042e,0x0000042d,0x0000010f,0x00050080,0x00000006, + 0x0000042f,0x0000042e,0x000003e1,0x0004007c,0x0000001e,0x00000430,0x0000042f,0x00050050, + 0x0000001f,0x00000431,0x0000042c,0x00000430,0x00050080,0x0000001f,0x00000432,0x00000429, + 0x00000431,0x0003003e,0x000003d1,0x00000432,0x0004003d,0x00000019,0x00000433,0x000000a5, + 0x00050050,0x00000019,0x00000434,0x000003e1,0x000003e1,0x00050084,0x00000019,0x00000435, + 0x00000433,0x00000434,0x0004007c,0x0000001f,0x00000436,0x00000435,0x0004003d,0x00000006, + 0x00000437,0x000000a3,0x0004007c,0x0000001e,0x00000438,0x00000437,0x0004003d,0x00000006, + 0x00000439,0x000000a4,0x00050080,0x00000006,0x0000043a,0x00000439,0x0000025b,0x0004007c, + 0x0000001e,0x0000043b,0x0000043a,0x00050050,0x0000001f,0x0000043c,0x00000438,0x0000043b, + 0x00050080,0x0000001f,0x0000043d,0x00000436,0x0000043c,0x0003003e,0x000003df,0x0000043d, + 0x0004003d,0x0000001f,0x0000043e,0x000003d1,0x0004007c,0x00000019,0x0000043f,0x0000043e, + 0x0003003e,0x00000440,0x0000043f,0x0004003d,0x00000006,0x00000442,0x000000a8,0x0003003e, + 0x00000441,0x00000442,0x00060039,0x0000003a,0x00000443,0x000000a0,0x00000440,0x00000441, + 0x00050041,0x00000040,0x00000444,0x000003ed,0x00000143,0x0003003e,0x00000444,0x00000443, + 0x0004003d,0x0000001f,0x00000446,0x000003df,0x0003003e,0x00000445,0x00000446,0x00050041, + 0x00000040,0x00000448,0x000003ed,0x00000143,0x0004003d,0x0000003a,0x00000449,0x00000448, + 0x0003003e,0x00000447,0x00000449,0x0003003e,0x0000044a,0x00000151,0x0004003d,0x00000006, + 0x0000044c,0x000000a8,0x0003003e,0x0000044b,0x0000044c,0x00080039,0x00000002,0x0000044d, + 0x00000061,0x00000445,0x00000447,0x0000044a,0x0000044b,0x0004003d,0x00000019,0x0000044e, + 0x000000a5,0x00050050,0x00000019,0x0000044f,0x000003d3,0x000003d3,0x00050084,0x00000019, + 0x00000450,0x0000044e,0x0000044f,0x0004007c,0x0000001f,0x00000451,0x00000450,0x0004003d, + 0x00000006,0x00000452,0x000000a3,0x00050084,0x00000006,0x00000453,0x00000452,0x0000010f, + 0x00050080,0x00000006,0x00000454,0x00000453,0x000003e1,0x0004007c,0x0000001e,0x00000455, + 0x00000454,0x0004003d,0x00000006,0x00000456,0x000000a4,0x00050084,0x00000006,0x00000457, + 0x00000456,0x0000010f,0x00050080,0x00000006,0x00000458,0x00000457,0x000003e1,0x0004007c, + 0x0000001e,0x00000459,0x00000458,0x00050050,0x0000001f,0x0000045a,0x00000455,0x00000459, + 0x00050080,0x0000001f,0x0000045b,0x00000451,0x0000045a,0x0003003e,0x000003d1,0x0000045b, + 0x0004003d,0x00000019,0x0000045c,0x000000a5,0x00050050,0x00000019,0x0000045d,0x000003e1, + 0x000003e1,0x00050084,0x00000019,0x0000045e,0x0000045c,0x0000045d,0x0004007c,0x0000001f, + 0x0000045f,0x0000045e,0x0004003d,0x00000006,0x00000460,0x000000a3,0x00050080,0x00000006, + 0x00000461,0x00000460,0x0000025b,0x0004007c,0x0000001e,0x00000462,0x00000461,0x0004003d, + 0x00000006,0x00000463,0x000000a4,0x00050080,0x00000006,0x00000464,0x00000463,0x0000025b, + 0x0004007c,0x0000001e,0x00000465,0x00000464,0x00050050,0x0000001f,0x00000466,0x00000462, + 0x00000465,0x00050080,0x0000001f,0x00000467,0x0000045f,0x00000466,0x0003003e,0x000003df, + 0x00000467,0x0004003d,0x0000001f,0x00000468,0x000003d1,0x0004007c,0x00000019,0x00000469, + 0x00000468,0x0003003e,0x0000046a,0x00000469,0x0004003d,0x00000006,0x0000046c,0x000000a8, + 0x0003003e,0x0000046b,0x0000046c,0x00060039,0x0000003a,0x0000046d,0x000000a0,0x0000046a, + 0x0000046b,0x00050041,0x00000040,0x0000046e,0x000003ed,0x0000026a,0x0003003e,0x0000046e, + 0x0000046d,0x0004003d,0x0000001f,0x00000470,0x000003df,0x0003003e,0x0000046f,0x00000470, + 0x00050041,0x00000040,0x00000472,0x000003ed,0x0000026a,0x0004003d,0x0000003a,0x00000473, + 0x00000472,0x0003003e,0x00000471,0x00000473,0x0003003e,0x00000474,0x00000151,0x0004003d, + 0x00000006,0x00000476,0x000000a8,0x0003003e,0x00000475,0x00000476,0x00080039,0x00000002, + 0x00000477,0x00000061,0x0000046f,0x00000471,0x00000474,0x00000475,0x0004003d,0x00000006, + 0x00000478,0x000000a7,0x000500b2,0x00000047,0x00000479,0x00000478,0x00000116,0x000300f7, + 0x0000047b,0x00000000,0x000400fa,0x00000479,0x0000047a,0x0000047b,0x000200f8,0x0000047a, + 0x000100fd,0x000200f8,0x0000047b,0x00050041,0x00000040,0x0000047e,0x000003ed,0x00000105, + 0x0004003d,0x0000003a,0x0000047f,0x0000047e,0x0003003e,0x0000047d,0x0000047f,0x00050039, + 0x0000003a,0x00000480,0x00000088,0x0000047d,0x00050041,0x00000040,0x00000481,0x000003ed, + 0x00000105,0x0003003e,0x00000481,0x00000480,0x00050041,0x00000040,0x00000483,0x000003ed, + 0x00000131,0x0004003d,0x0000003a,0x00000484,0x00000483,0x0003003e,0x00000482,0x00000484, + 0x00050039,0x0000003a,0x00000485,0x00000088,0x00000482,0x00050041,0x00000040,0x00000486, + 0x000003ed,0x00000131,0x0003003e,0x00000486,0x00000485,0x00050041,0x00000040,0x00000488, + 0x000003ed,0x00000143,0x0004003d,0x0000003a,0x00000489,0x00000488,0x0003003e,0x00000487, + 0x00000489,0x00050039,0x0000003a,0x0000048a,0x00000088,0x00000487,0x00050041,0x00000040, + 0x0000048b,0x000003ed,0x00000143,0x0003003e,0x0000048b,0x0000048a,0x00050041,0x00000040, + 0x0000048d,0x000003ed,0x0000026a,0x0004003d,0x0000003a,0x0000048e,0x0000048d,0x0003003e, + 0x0000048c,0x0000048e,0x00050039,0x0000003a,0x0000048f,0x00000088,0x0000048c,0x00050041, + 0x00000040,0x00000490,0x000003ed,0x0000026a,0x0003003e,0x00000490,0x0000048f,0x0004003d, + 0x00000006,0x00000491,0x000000a6,0x00050089,0x00000006,0x00000492,0x00000491,0x00000190, + 0x000500aa,0x00000047,0x00000493,0x00000492,0x00000151,0x000300f7,0x00000495,0x00000000, + 0x000400fa,0x00000493,0x00000494,0x00000495,0x000200f8,0x00000494,0x0004003d,0x00000019, + 0x00000496,0x000000a5,0x00050050,0x00000019,0x00000497,0x0000025b,0x0000025b,0x00050084, + 0x00000019,0x00000498,0x00000496,0x00000497,0x0004007c,0x0000001f,0x00000499,0x00000498, + 0x0004003d,0x00000006,0x0000049a,0x000000a3,0x00050086,0x00000006,0x0000049b,0x0000049a, + 0x0000010f,0x0004007c,0x0000001e,0x0000049c,0x0000049b,0x0004003d,0x00000006,0x0000049d, + 0x000000a4,0x00050086,0x00000006,0x0000049e,0x0000049d,0x0000010f,0x0004007c,0x0000001e, + 0x0000049f,0x0000049e,0x00050050,0x0000001f,0x000004a0,0x0000049c,0x0000049f,0x00050080, + 0x0000001f,0x000004a1,0x00000499,0x000004a0,0x0003003e,0x000004a2,0x000004a1,0x00050041, + 0x00000040,0x000004a4,0x000003ed,0x00000105,0x0004003d,0x0000003a,0x000004a5,0x000004a4, + 0x0003003e,0x000004a3,0x000004a5,0x0003003e,0x000004a6,0x00000116,0x0004003d,0x00000006, + 0x000004a8,0x000000a8,0x0003003e,0x000004a7,0x000004a8,0x00080039,0x00000002,0x000004a9, + 0x00000061,0x000004a2,0x000004a3,0x000004a6,0x000004a7,0x0004003d,0x00000006,0x000004aa, + 0x000000a3,0x00050086,0x00000006,0x000004ab,0x000004aa,0x0000010f,0x0004003d,0x00000006, + 0x000004ac,0x000000a4,0x00050086,0x00000006,0x000004ad,0x000004ac,0x0000010f,0x0003003e, + 0x000004ae,0x000004ab,0x0003003e,0x000004af,0x000004ad,0x00050041,0x00000040,0x000004b1, + 0x000003ed,0x00000105,0x0004003d,0x0000003a,0x000004b2,0x000004b1,0x0003003e,0x000004b0, + 0x000004b2,0x00070039,0x00000002,0x000004b3,0x00000075,0x000004ae,0x000004af,0x000004b0, + 0x0004003d,0x00000019,0x000004b4,0x000000a5,0x00050050,0x00000019,0x000004b5,0x0000025b, + 0x0000025b,0x00050084,0x00000019,0x000004b6,0x000004b4,0x000004b5,0x0004007c,0x0000001f, + 0x000004b7,0x000004b6,0x0004003d,0x00000006,0x000004b8,0x000000a3,0x00050086,0x00000006, + 0x000004b9,0x000004b8,0x0000010f,0x00050080,0x00000006,0x000004ba,0x000004b9,0x000001b8, + 0x0004007c,0x0000001e,0x000004bb,0x000004ba,0x0004003d,0x00000006,0x000004bc,0x000000a4, + 0x00050086,0x00000006,0x000004bd,0x000004bc,0x0000010f,0x0004007c,0x0000001e,0x000004be, + 0x000004bd,0x00050050,0x0000001f,0x000004bf,0x000004bb,0x000004be,0x00050080,0x0000001f, + 0x000004c0,0x000004b7,0x000004bf,0x0003003e,0x000004c1,0x000004c0,0x00050041,0x00000040, + 0x000004c3,0x000003ed,0x00000131,0x0004003d,0x0000003a,0x000004c4,0x000004c3,0x0003003e, + 0x000004c2,0x000004c4,0x0003003e,0x000004c5,0x00000116,0x0004003d,0x00000006,0x000004c7, + 0x000000a8,0x0003003e,0x000004c6,0x000004c7,0x00080039,0x00000002,0x000004c8,0x00000061, + 0x000004c1,0x000004c2,0x000004c5,0x000004c6,0x0004003d,0x00000006,0x000004c9,0x000000a3, + 0x00050086,0x00000006,0x000004ca,0x000004c9,0x0000010f,0x00050080,0x00000006,0x000004cb, + 0x000004ca,0x000001b8,0x0004003d,0x00000006,0x000004cc,0x000000a4,0x00050086,0x00000006, + 0x000004cd,0x000004cc,0x0000010f,0x0003003e,0x000004ce,0x000004cb,0x0003003e,0x000004cf, + 0x000004cd,0x00050041,0x00000040,0x000004d1,0x000003ed,0x00000131,0x0004003d,0x0000003a, + 0x000004d2,0x000004d1,0x0003003e,0x000004d0,0x000004d2,0x00070039,0x00000002,0x000004d3, + 0x00000075,0x000004ce,0x000004cf,0x000004d0,0x0004003d,0x00000019,0x000004d4,0x000000a5, + 0x00050050,0x00000019,0x000004d5,0x0000025b,0x0000025b,0x00050084,0x00000019,0x000004d6, + 0x000004d4,0x000004d5,0x0004007c,0x0000001f,0x000004d7,0x000004d6,0x0004003d,0x00000006, + 0x000004d8,0x000000a3,0x00050086,0x00000006,0x000004d9,0x000004d8,0x0000010f,0x0004007c, + 0x0000001e,0x000004da,0x000004d9,0x0004003d,0x00000006,0x000004db,0x000000a4,0x00050086, + 0x00000006,0x000004dc,0x000004db,0x0000010f,0x00050080,0x00000006,0x000004dd,0x000004dc, + 0x000001b8,0x0004007c,0x0000001e,0x000004de,0x000004dd,0x00050050,0x0000001f,0x000004df, + 0x000004da,0x000004de,0x00050080,0x0000001f,0x000004e0,0x000004d7,0x000004df,0x0003003e, + 0x000004e1,0x000004e0,0x00050041,0x00000040,0x000004e3,0x000003ed,0x00000143,0x0004003d, + 0x0000003a,0x000004e4,0x000004e3,0x0003003e,0x000004e2,0x000004e4,0x0003003e,0x000004e5, + 0x00000116,0x0004003d,0x00000006,0x000004e7,0x000000a8,0x0003003e,0x000004e6,0x000004e7, + 0x00080039,0x00000002,0x000004e8,0x00000061,0x000004e1,0x000004e2,0x000004e5,0x000004e6, + 0x0004003d,0x00000006,0x000004e9,0x000000a3,0x00050086,0x00000006,0x000004ea,0x000004e9, + 0x0000010f,0x0004003d,0x00000006,0x000004eb,0x000000a4,0x00050086,0x00000006,0x000004ec, + 0x000004eb,0x0000010f,0x00050080,0x00000006,0x000004ed,0x000004ec,0x000001b8,0x0003003e, + 0x000004ee,0x000004ea,0x0003003e,0x000004ef,0x000004ed,0x00050041,0x00000040,0x000004f1, + 0x000003ed,0x00000143,0x0004003d,0x0000003a,0x000004f2,0x000004f1,0x0003003e,0x000004f0, + 0x000004f2,0x00070039,0x00000002,0x000004f3,0x00000075,0x000004ee,0x000004ef,0x000004f0, + 0x0004003d,0x00000019,0x000004f4,0x000000a5,0x00050050,0x00000019,0x000004f5,0x0000025b, + 0x0000025b,0x00050084,0x00000019,0x000004f6,0x000004f4,0x000004f5,0x0004007c,0x0000001f, + 0x000004f7,0x000004f6,0x0004003d,0x00000006,0x000004f8,0x000000a3,0x00050086,0x00000006, + 0x000004f9,0x000004f8,0x0000010f,0x00050080,0x00000006,0x000004fa,0x000004f9,0x000001b8, + 0x0004007c,0x0000001e,0x000004fb,0x000004fa,0x0004003d,0x00000006,0x000004fc,0x000000a4, + 0x00050086,0x00000006,0x000004fd,0x000004fc,0x0000010f,0x00050080,0x00000006,0x000004fe, + 0x000004fd,0x000001b8,0x0004007c,0x0000001e,0x000004ff,0x000004fe,0x00050050,0x0000001f, + 0x00000500,0x000004fb,0x000004ff,0x00050080,0x0000001f,0x00000501,0x000004f7,0x00000500, + 0x0003003e,0x00000502,0x00000501,0x00050041,0x00000040,0x00000504,0x000003ed,0x0000026a, + 0x0004003d,0x0000003a,0x00000505,0x00000504,0x0003003e,0x00000503,0x00000505,0x0003003e, + 0x00000506,0x00000116,0x0004003d,0x00000006,0x00000508,0x000000a8,0x0003003e,0x00000507, + 0x00000508,0x00080039,0x00000002,0x00000509,0x00000061,0x00000502,0x00000503,0x00000506, + 0x00000507,0x0004003d,0x00000006,0x0000050a,0x000000a3,0x00050086,0x00000006,0x0000050b, + 0x0000050a,0x0000010f,0x00050080,0x00000006,0x0000050c,0x0000050b,0x000001b8,0x0004003d, + 0x00000006,0x0000050d,0x000000a4,0x00050086,0x00000006,0x0000050e,0x0000050d,0x0000010f, + 0x00050080,0x00000006,0x0000050f,0x0000050e,0x000001b8,0x0003003e,0x00000510,0x0000050c, + 0x0003003e,0x00000511,0x0000050f,0x00050041,0x00000040,0x00000513,0x000003ed,0x0000026a, + 0x0004003d,0x0000003a,0x00000514,0x00000513,0x0003003e,0x00000512,0x00000514,0x00070039, + 0x00000002,0x00000515,0x00000075,0x00000510,0x00000511,0x00000512,0x000200f9,0x00000495, + 0x000200f8,0x00000495,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b1,0x00000000, + 0x000000a2,0x00030037,0x00000007,0x000000ab,0x00030037,0x00000007,0x000000ac,0x00030037, + 0x0000004c,0x000000ad,0x00030037,0x00000007,0x000000ae,0x00030037,0x00000007,0x000000af, + 0x00030037,0x00000007,0x000000b0,0x000200f8,0x000000b2,0x0004003b,0x00000007,0x00000516, + 0x00000007,0x0004003b,0x00000007,0x00000518,0x00000007,0x0004003b,0x0000004c,0x0000051a, + 0x00000007,0x0004003b,0x00000007,0x0000051c,0x00000007,0x0004003b,0x00000007,0x0000051e, + 0x00000007,0x0004003b,0x00000007,0x00000520,0x00000007,0x0004003d,0x00000006,0x00000517, + 0x000000ab,0x0003003e,0x00000516,0x00000517,0x0004003d,0x00000006,0x00000519,0x000000ac, + 0x0003003e,0x00000518,0x00000519,0x0004003d,0x00000019,0x0000051b,0x000000ad,0x0003003e, + 0x0000051a,0x0000051b,0x0004003d,0x00000006,0x0000051d,0x000000ae,0x0003003e,0x0000051c, + 0x0000051d,0x0004003d,0x00000006,0x0000051f,0x000000af,0x0003003e,0x0000051e,0x0000051f, + 0x0004003d,0x00000006,0x00000521,0x000000b0,0x0003003e,0x00000520,0x00000521,0x000a0039, + 0x00000002,0x00000522,0x000000a9,0x00000516,0x00000518,0x0000051a,0x0000051c,0x0000051e, + 0x00000520,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b9,0x00000000,0x000000a2, + 0x00030037,0x00000007,0x000000b3,0x00030037,0x00000007,0x000000b4,0x00030037,0x0000004c, + 0x000000b5,0x00030037,0x00000007,0x000000b6,0x00030037,0x00000007,0x000000b7,0x00030037, + 0x00000007,0x000000b8,0x000200f8,0x000000ba,0x0004003b,0x00000040,0x00000523,0x00000007, + 0x0004003b,0x00000007,0x00000524,0x00000007,0x0004003b,0x00000007,0x00000526,0x00000007, + 0x0004003b,0x00000040,0x00000529,0x00000007,0x0004003b,0x0000002b,0x0000053d,0x00000007, + 0x0004003b,0x00000040,0x0000053e,0x00000007,0x0004003b,0x00000007,0x00000540,0x00000007, + 0x0004003b,0x00000007,0x00000542,0x00000007,0x0004003b,0x00000007,0x0000054a,0x00000007, + 0x0004003b,0x00000007,0x0000054b,0x00000007,0x0004003b,0x00000040,0x0000054d,0x00000007, + 0x0004003d,0x00000006,0x00000525,0x000000b3,0x0003003e,0x00000524,0x00000525,0x0004003d, + 0x00000006,0x00000527,0x000000b4,0x0003003e,0x00000526,0x00000527,0x00060039,0x0000003a, + 0x00000528,0x0000006f,0x00000524,0x00000526,0x0003003e,0x00000523,0x00000528,0x0004003d, + 0x0000003a,0x0000052a,0x00000523,0x0003003e,0x00000529,0x0000052a,0x00050039,0x0000003a, + 0x0000052b,0x00000088,0x00000529,0x0003003e,0x00000523,0x0000052b,0x0004003d,0x00000006, + 0x0000052c,0x000000b6,0x00050089,0x00000006,0x0000052d,0x0000052c,0x00000190,0x000500aa, + 0x00000047,0x0000052e,0x0000052d,0x00000151,0x000300f7,0x00000530,0x00000000,0x000400fa, + 0x0000052e,0x0000052f,0x00000530,0x000200f8,0x0000052f,0x0004003d,0x00000019,0x00000531, + 0x000000b5,0x00050050,0x00000019,0x00000532,0x000001b8,0x000001b8,0x00050084,0x00000019, + 0x00000533,0x00000531,0x00000532,0x0004007c,0x0000001f,0x00000534,0x00000533,0x0004003d, + 0x00000006,0x00000535,0x000000b3,0x00050086,0x00000006,0x00000536,0x00000535,0x0000010f, + 0x0004007c,0x0000001e,0x00000537,0x00000536,0x0004003d,0x00000006,0x00000538,0x000000b4, + 0x00050086,0x00000006,0x00000539,0x00000538,0x0000010f,0x0004007c,0x0000001e,0x0000053a, + 0x00000539,0x00050050,0x0000001f,0x0000053b,0x00000537,0x0000053a,0x00050080,0x0000001f, + 0x0000053c,0x00000534,0x0000053b,0x0003003e,0x0000053d,0x0000053c,0x0004003d,0x0000003a, + 0x0000053f,0x00000523,0x0003003e,0x0000053e,0x0000053f,0x0004003d,0x00000006,0x00000541, + 0x000000b7,0x0003003e,0x00000540,0x00000541,0x0004003d,0x00000006,0x00000543,0x000000b8, + 0x0003003e,0x00000542,0x00000543,0x00080039,0x00000002,0x00000544,0x00000061,0x0000053d, + 0x0000053e,0x00000540,0x00000542,0x0004003d,0x00000006,0x00000545,0x000000b3,0x0004003d, + 0x00000006,0x00000546,0x000000b4,0x00050086,0x00000006,0x00000547,0x00000546,0x0000010f, + 0x00050089,0x00000006,0x00000548,0x00000547,0x0000010f,0x00050080,0x00000006,0x00000549, + 0x00000545,0x00000548,0x0003003e,0x0000054a,0x00000549,0x0004003d,0x00000006,0x0000054c, + 0x000000b4,0x0003003e,0x0000054b,0x0000054c,0x0004003d,0x0000003a,0x0000054e,0x00000523, + 0x0003003e,0x0000054d,0x0000054e,0x00070039,0x00000002,0x0000054f,0x00000075,0x0000054a, + 0x0000054b,0x0000054d,0x000200f9,0x00000530,0x000200f8,0x00000530,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000c1,0x00000000,0x000000a2,0x00030037,0x00000007,0x000000bb, + 0x00030037,0x00000007,0x000000bc,0x00030037,0x0000004c,0x000000bd,0x00030037,0x00000007, + 0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007,0x000000c0,0x000200f8, + 0x000000c2,0x0004003b,0x00000040,0x00000554,0x00000007,0x0004003b,0x00000007,0x0000055c, + 0x00000007,0x0004003b,0x00000007,0x0000055d,0x00000007,0x0004003b,0x00000040,0x0000055f, + 0x00000007,0x0004003b,0x0000002b,0x00000573,0x00000007,0x0004003b,0x00000040,0x00000574, + 0x00000007,0x0004003b,0x00000007,0x00000576,0x00000007,0x0004003b,0x00000007,0x00000578, + 0x00000007,0x0004003b,0x00000007,0x00000582,0x00000007,0x0004003b,0x00000007,0x00000583, + 0x00000007,0x0004003b,0x00000040,0x00000584,0x00000007,0x0004003d,0x00000006,0x00000550, + 0x000000be,0x000500b0,0x00000047,0x00000551,0x00000550,0x000003d3,0x000300f7,0x00000553, + 0x00000000,0x000400fa,0x00000551,0x00000552,0x00000553,0x000200f8,0x00000552,0x0004003d, + 0x00000006,0x00000555,0x000000bb,0x00050084,0x00000006,0x00000556,0x00000555,0x0000010f, + 0x0004003d,0x00000006,0x00000557,0x000000bc,0x00050089,0x00000006,0x00000558,0x00000557, + 0x0000010f,0x00050080,0x00000006,0x00000559,0x00000556,0x00000558,0x0004003d,0x00000006, + 0x0000055a,0x000000bc,0x00050084,0x00000006,0x0000055b,0x0000055a,0x0000010f,0x0003003e, + 0x0000055c,0x00000559,0x0003003e,0x0000055d,0x0000055b,0x00060039,0x0000003a,0x0000055e, + 0x0000006f,0x0000055c,0x0000055d,0x0003003e,0x00000554,0x0000055e,0x0004003d,0x0000003a, + 0x00000560,0x00000554,0x0003003e,0x0000055f,0x00000560,0x00050039,0x0000003a,0x00000561, + 0x00000088,0x0000055f,0x0003003e,0x00000554,0x00000561,0x0004003d,0x00000006,0x00000562, + 0x000000be,0x00050089,0x00000006,0x00000563,0x00000562,0x00000190,0x000500aa,0x00000047, + 0x00000564,0x00000563,0x00000151,0x000300f7,0x00000566,0x00000000,0x000400fa,0x00000564, + 0x00000565,0x00000566,0x000200f8,0x00000565,0x0004003d,0x00000019,0x00000567,0x000000bd, + 0x00050050,0x00000019,0x00000568,0x00000190,0x00000190,0x00050084,0x00000019,0x00000569, + 0x00000567,0x00000568,0x0004007c,0x0000001f,0x0000056a,0x00000569,0x0004003d,0x00000006, + 0x0000056b,0x000000bb,0x00050086,0x00000006,0x0000056c,0x0000056b,0x0000010f,0x0004007c, + 0x0000001e,0x0000056d,0x0000056c,0x0004003d,0x00000006,0x0000056e,0x000000bc,0x00050086, + 0x00000006,0x0000056f,0x0000056e,0x0000010f,0x0004007c,0x0000001e,0x00000570,0x0000056f, + 0x00050050,0x0000001f,0x00000571,0x0000056d,0x00000570,0x00050080,0x0000001f,0x00000572, + 0x0000056a,0x00000571,0x0003003e,0x00000573,0x00000572,0x0004003d,0x0000003a,0x00000575, + 0x00000554,0x0003003e,0x00000574,0x00000575,0x0004003d,0x00000006,0x00000577,0x000000bf, + 0x0003003e,0x00000576,0x00000577,0x0004003d,0x00000006,0x00000579,0x000000c0,0x0003003e, + 0x00000578,0x00000579,0x00080039,0x00000002,0x0000057a,0x00000061,0x00000573,0x00000574, + 0x00000576,0x00000578,0x0004003d,0x00000006,0x0000057b,0x000000bb,0x00050084,0x00000006, + 0x0000057c,0x0000057b,0x0000010f,0x0004003d,0x00000006,0x0000057d,0x000000bc,0x00050086, + 0x00000006,0x0000057e,0x0000057d,0x0000010f,0x00050080,0x00000006,0x0000057f,0x0000057c, + 0x0000057e,0x0004003d,0x00000006,0x00000580,0x000000bc,0x00050084,0x00000006,0x00000581, + 0x00000580,0x0000010f,0x0003003e,0x00000582,0x0000057f,0x0003003e,0x00000583,0x00000581, + 0x0004003d,0x0000003a,0x00000585,0x00000554,0x0003003e,0x00000584,0x00000585,0x00070039, + 0x00000002,0x00000586,0x00000075,0x00000582,0x00000583,0x00000584,0x000200f9,0x00000566, + 0x000200f8,0x00000566,0x000200f9,0x00000553,0x000200f8,0x00000553,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000c9,0x00000000,0x000000a2,0x00030037,0x00000007,0x000000c3, + 0x00030037,0x00000007,0x000000c4,0x00030037,0x0000004c,0x000000c5,0x00030037,0x00000007, + 0x000000c6,0x00030037,0x00000007,0x000000c7,0x00030037,0x00000007,0x000000c8,0x000200f8, + 0x000000ca,0x0004003b,0x00000040,0x0000058b,0x00000007,0x0004003b,0x00000007,0x00000592, + 0x00000007,0x0004003b,0x00000007,0x00000593,0x00000007,0x0004003b,0x00000040,0x00000595, + 0x00000007,0x0004003b,0x0000002b,0x000005a9,0x00000007,0x0004003b,0x00000040,0x000005aa, + 0x00000007,0x0004003b,0x00000007,0x000005ac,0x00000007,0x0004003b,0x00000007,0x000005ae, + 0x00000007,0x0004003b,0x00000007,0x000005b5,0x00000007,0x0004003b,0x00000007,0x000005b6, + 0x00000007,0x0004003b,0x00000040,0x000005b7,0x00000007,0x0004003d,0x00000006,0x00000587, + 0x000000c6,0x000500b0,0x00000047,0x00000588,0x00000587,0x0000025b,0x000300f7,0x0000058a, + 0x00000000,0x000400fa,0x00000588,0x00000589,0x0000058a,0x000200f8,0x00000589,0x0004003d, + 0x00000006,0x0000058c,0x000000c3,0x00050084,0x00000006,0x0000058d,0x0000058c,0x00000190, + 0x0004003d,0x00000006,0x0000058e,0x000000c4,0x00050080,0x00000006,0x0000058f,0x0000058d, + 0x0000058e,0x0004003d,0x00000006,0x00000590,0x000000c4,0x00050084,0x00000006,0x00000591, + 0x00000590,0x00000190,0x0003003e,0x00000592,0x0000058f,0x0003003e,0x00000593,0x00000591, + 0x00060039,0x0000003a,0x00000594,0x0000006f,0x00000592,0x00000593,0x0003003e,0x0000058b, + 0x00000594,0x0004003d,0x0000003a,0x00000596,0x0000058b,0x0003003e,0x00000595,0x00000596, + 0x00050039,0x0000003a,0x00000597,0x00000088,0x00000595,0x0003003e,0x0000058b,0x00000597, + 0x0004003d,0x00000006,0x00000598,0x000000c6,0x00050089,0x00000006,0x00000599,0x00000598, + 0x00000190,0x000500aa,0x00000047,0x0000059a,0x00000599,0x00000151,0x000300f7,0x0000059c, + 0x00000000,0x000400fa,0x0000059a,0x0000059b,0x0000059c,0x000200f8,0x0000059b,0x0004003d, + 0x00000019,0x0000059d,0x000000c5,0x00050050,0x00000019,0x0000059e,0x0000010f,0x0000010f, + 0x00050084,0x00000019,0x0000059f,0x0000059d,0x0000059e,0x0004007c,0x0000001f,0x000005a0, + 0x0000059f,0x0004003d,0x00000006,0x000005a1,0x000000c3,0x00050086,0x00000006,0x000005a2, + 0x000005a1,0x0000010f,0x0004007c,0x0000001e,0x000005a3,0x000005a2,0x0004003d,0x00000006, + 0x000005a4,0x000000c4,0x00050086,0x00000006,0x000005a5,0x000005a4,0x0000010f,0x0004007c, + 0x0000001e,0x000005a6,0x000005a5,0x00050050,0x0000001f,0x000005a7,0x000005a3,0x000005a6, + 0x00050080,0x0000001f,0x000005a8,0x000005a0,0x000005a7,0x0003003e,0x000005a9,0x000005a8, + 0x0004003d,0x0000003a,0x000005ab,0x0000058b,0x0003003e,0x000005aa,0x000005ab,0x0004003d, + 0x00000006,0x000005ad,0x000000c7,0x0003003e,0x000005ac,0x000005ad,0x0004003d,0x00000006, + 0x000005af,0x000000c8,0x0003003e,0x000005ae,0x000005af,0x00080039,0x00000002,0x000005b0, + 0x00000061,0x000005a9,0x000005aa,0x000005ac,0x000005ae,0x0004003d,0x00000006,0x000005b1, + 0x000000c3,0x00050086,0x00000006,0x000005b2,0x000005b1,0x0000010f,0x0004003d,0x00000006, + 0x000005b3,0x000000c4,0x00050080,0x00000006,0x000005b4,0x000005b2,0x000005b3,0x0003003e, + 0x000005b5,0x000005b4,0x0003003e,0x000005b6,0x00000151,0x0004003d,0x0000003a,0x000005b8, + 0x0000058b,0x0003003e,0x000005b7,0x000005b8,0x00070039,0x00000002,0x000005b9,0x00000075, + 0x000005b5,0x000005b6,0x000005b7,0x000200f9,0x0000059c,0x000200f8,0x0000059c,0x000200f9, + 0x0000058a,0x000200f8,0x0000058a,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d0, + 0x00000000,0x000000cb,0x00030037,0x0000004c,0x000000cc,0x00030037,0x00000007,0x000000cd, + 0x00030037,0x00000007,0x000000ce,0x00030037,0x00000007,0x000000cf,0x000200f8,0x000000d1, + 0x0004003b,0x00000040,0x000005be,0x00000007,0x0004003b,0x00000007,0x000005bf,0x00000007, + 0x0004003b,0x00000007,0x000005c1,0x00000007,0x0004003b,0x00000040,0x000005c3,0x00000007, + 0x0004003b,0x0000002b,0x000005cd,0x00000007,0x0004003b,0x00000040,0x000005ce,0x00000007, + 0x0004003b,0x00000007,0x000005d0,0x00000007,0x0004003b,0x00000007,0x000005d2,0x00000007, + 0x0004003d,0x00000006,0x000005ba,0x000000cd,0x000500b0,0x00000047,0x000005bb,0x000005ba, + 0x00000190,0x000300f7,0x000005bd,0x00000000,0x000400fa,0x000005bb,0x000005bc,0x000005bd, + 0x000200f8,0x000005bc,0x0004003d,0x00000006,0x000005c0,0x000000cd,0x0003003e,0x000005bf, + 0x000005c0,0x0003003e,0x000005c1,0x00000151,0x00060039,0x0000003a,0x000005c2,0x0000006f, + 0x000005bf,0x000005c1,0x0003003e,0x000005be,0x000005c2,0x0004003d,0x0000003a,0x000005c4, + 0x000005be,0x0003003e,0x000005c3,0x000005c4,0x00050039,0x0000003a,0x000005c5,0x00000088, + 0x000005c3,0x0003003e,0x000005be,0x000005c5,0x0004003d,0x00000006,0x000005c6,0x000000cd, + 0x00050089,0x00000006,0x000005c7,0x000005c6,0x00000190,0x000500aa,0x00000047,0x000005c8, + 0x000005c7,0x00000151,0x000300f7,0x000005ca,0x00000000,0x000400fa,0x000005c8,0x000005c9, + 0x000005ca,0x000200f8,0x000005c9,0x0004003d,0x00000019,0x000005cb,0x000000cc,0x0004007c, + 0x0000001f,0x000005cc,0x000005cb,0x0003003e,0x000005cd,0x000005cc,0x0004003d,0x0000003a, + 0x000005cf,0x000005be,0x0003003e,0x000005ce,0x000005cf,0x0004003d,0x00000006,0x000005d1, + 0x000000ce,0x0003003e,0x000005d0,0x000005d1,0x0004003d,0x00000006,0x000005d3,0x000000cf, + 0x0003003e,0x000005d2,0x000005d3,0x00080039,0x00000002,0x000005d4,0x00000061,0x000005cd, + 0x000005ce,0x000005d0,0x000005d2,0x000200f9,0x000005ca,0x000200f8,0x000005ca,0x000200f9, + 0x000005bd,0x000200f8,0x000005bd,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d7, + 0x00000000,0x000000d2,0x00030037,0x00000007,0x000000d3,0x00030037,0x00000007,0x000000d4, + 0x00030037,0x00000007,0x000000d5,0x00030037,0x00000007,0x000000d6,0x000200f8,0x000000d8, + 0x0004003b,0x0000002b,0x000005d5,0x00000007,0x0004003b,0x0000002b,0x000005df,0x00000007, + 0x0004003b,0x00000040,0x000005e9,0x00000007,0x0004003b,0x0000004c,0x000005ec,0x00000007, + 0x0004003b,0x00000007,0x000005ed,0x00000007,0x0004003b,0x0000002b,0x000005f0,0x00000007, + 0x0004003b,0x00000040,0x000005f2,0x00000007,0x0004003b,0x00000007,0x000005f4,0x00000007, + 0x0004003b,0x00000007,0x000005f5,0x00000007,0x0004003b,0x00000040,0x0000060a,0x00000007, + 0x0004003b,0x0000004c,0x0000060d,0x00000007,0x0004003b,0x00000007,0x0000060e,0x00000007, + 0x0004003b,0x0000002b,0x00000611,0x00000007,0x0004003b,0x00000040,0x00000613,0x00000007, + 0x0004003b,0x00000007,0x00000615,0x00000007,0x0004003b,0x00000007,0x00000616,0x00000007, + 0x0004003b,0x00000040,0x0000062b,0x00000007,0x0004003b,0x0000004c,0x0000062e,0x00000007, + 0x0004003b,0x00000007,0x0000062f,0x00000007,0x0004003b,0x0000002b,0x00000632,0x00000007, + 0x0004003b,0x00000040,0x00000634,0x00000007,0x0004003b,0x00000007,0x00000636,0x00000007, + 0x0004003b,0x00000007,0x00000637,0x00000007,0x0004003b,0x00000040,0x0000064c,0x00000007, + 0x0004003b,0x0000004c,0x0000064f,0x00000007,0x0004003b,0x00000007,0x00000650,0x00000007, + 0x0004003b,0x0000002b,0x00000653,0x00000007,0x0004003b,0x00000040,0x00000655,0x00000007, + 0x0004003b,0x00000007,0x00000657,0x00000007,0x0004003b,0x00000007,0x00000658,0x00000007, + 0x0004003b,0x00000040,0x00000660,0x00000007,0x0004003b,0x00000040,0x00000661,0x00000007, + 0x0004003b,0x00000040,0x00000663,0x00000007,0x0004003b,0x00000040,0x00000665,0x00000007, + 0x0004003b,0x00000040,0x00000667,0x00000007,0x0004003b,0x0000002b,0x0000066f,0x00000007, + 0x0004003b,0x00000040,0x00000670,0x00000007,0x0004003b,0x00000007,0x00000672,0x00000007, + 0x0004003b,0x00000007,0x00000673,0x00000007,0x0004003b,0x00000007,0x00000676,0x00000007, + 0x0004003b,0x00000007,0x00000678,0x00000007,0x0004003b,0x00000040,0x0000067a,0x00000007, + 0x0004003d,0x00000006,0x000005d6,0x000000d3,0x00050084,0x00000006,0x000005d7,0x000005d6, + 0x00000190,0x00050080,0x00000006,0x000005d8,0x000005d7,0x00000151,0x0004007c,0x0000001e, + 0x000005d9,0x000005d8,0x0004003d,0x00000006,0x000005da,0x000000d4,0x00050084,0x00000006, + 0x000005db,0x000005da,0x00000190,0x00050080,0x00000006,0x000005dc,0x000005db,0x00000151, + 0x0004007c,0x0000001e,0x000005dd,0x000005dc,0x00050050,0x0000001f,0x000005de,0x000005d9, + 0x000005dd,0x0003003e,0x000005d5,0x000005de,0x0004003d,0x00000006,0x000005e0,0x000000d3, + 0x00050084,0x00000006,0x000005e1,0x000005e0,0x0000010f,0x00050080,0x00000006,0x000005e2, + 0x000005e1,0x00000151,0x0004007c,0x0000001e,0x000005e3,0x000005e2,0x0004003d,0x00000006, + 0x000005e4,0x000000d4,0x00050084,0x00000006,0x000005e5,0x000005e4,0x0000010f,0x00050080, + 0x00000006,0x000005e6,0x000005e5,0x00000151,0x0004007c,0x0000001e,0x000005e7,0x000005e6, + 0x00050050,0x0000001f,0x000005e8,0x000005e3,0x000005e7,0x0003003e,0x000005df,0x000005e8, + 0x0004003d,0x0000001f,0x000005ea,0x000005d5,0x0004007c,0x00000019,0x000005eb,0x000005ea, + 0x0003003e,0x000005ec,0x000005eb,0x0004003d,0x00000006,0x000005ee,0x000000d6,0x0003003e, + 0x000005ed,0x000005ee,0x00060039,0x0000003a,0x000005ef,0x00000095,0x000005ec,0x000005ed, + 0x0003003e,0x000005e9,0x000005ef,0x0004003d,0x0000001f,0x000005f1,0x000005df,0x0003003e, + 0x000005f0,0x000005f1,0x0004003d,0x0000003a,0x000005f3,0x000005e9,0x0003003e,0x000005f2, + 0x000005f3,0x0003003e,0x000005f4,0x000001a4,0x0004003d,0x00000006,0x000005f6,0x000000d6, + 0x0003003e,0x000005f5,0x000005f6,0x00080039,0x00000002,0x000005f7,0x00000061,0x000005f0, + 0x000005f2,0x000005f4,0x000005f5,0x0004003d,0x00000006,0x000005f8,0x000000d3,0x00050084, + 0x00000006,0x000005f9,0x000005f8,0x00000190,0x00050080,0x00000006,0x000005fa,0x000005f9, + 0x0000010f,0x0004007c,0x0000001e,0x000005fb,0x000005fa,0x0004003d,0x00000006,0x000005fc, + 0x000000d4,0x00050084,0x00000006,0x000005fd,0x000005fc,0x00000190,0x00050080,0x00000006, + 0x000005fe,0x000005fd,0x00000151,0x0004007c,0x0000001e,0x000005ff,0x000005fe,0x00050050, + 0x0000001f,0x00000600,0x000005fb,0x000005ff,0x0003003e,0x000005d5,0x00000600,0x0004003d, + 0x00000006,0x00000601,0x000000d3,0x00050084,0x00000006,0x00000602,0x00000601,0x0000010f, + 0x00050080,0x00000006,0x00000603,0x00000602,0x00000116,0x0004007c,0x0000001e,0x00000604, + 0x00000603,0x0004003d,0x00000006,0x00000605,0x000000d4,0x00050084,0x00000006,0x00000606, + 0x00000605,0x0000010f,0x00050080,0x00000006,0x00000607,0x00000606,0x00000151,0x0004007c, + 0x0000001e,0x00000608,0x00000607,0x00050050,0x0000001f,0x00000609,0x00000604,0x00000608, + 0x0003003e,0x000005df,0x00000609,0x0004003d,0x0000001f,0x0000060b,0x000005d5,0x0004007c, + 0x00000019,0x0000060c,0x0000060b,0x0003003e,0x0000060d,0x0000060c,0x0004003d,0x00000006, + 0x0000060f,0x000000d6,0x0003003e,0x0000060e,0x0000060f,0x00060039,0x0000003a,0x00000610, + 0x00000095,0x0000060d,0x0000060e,0x0003003e,0x0000060a,0x00000610,0x0004003d,0x0000001f, + 0x00000612,0x000005df,0x0003003e,0x00000611,0x00000612,0x0004003d,0x0000003a,0x00000614, + 0x0000060a,0x0003003e,0x00000613,0x00000614,0x0003003e,0x00000615,0x000001a4,0x0004003d, + 0x00000006,0x00000617,0x000000d6,0x0003003e,0x00000616,0x00000617,0x00080039,0x00000002, + 0x00000618,0x00000061,0x00000611,0x00000613,0x00000615,0x00000616,0x0004003d,0x00000006, + 0x00000619,0x000000d3,0x00050084,0x00000006,0x0000061a,0x00000619,0x00000190,0x00050080, + 0x00000006,0x0000061b,0x0000061a,0x00000151,0x0004007c,0x0000001e,0x0000061c,0x0000061b, + 0x0004003d,0x00000006,0x0000061d,0x000000d4,0x00050084,0x00000006,0x0000061e,0x0000061d, + 0x00000190,0x00050080,0x00000006,0x0000061f,0x0000061e,0x0000010f,0x0004007c,0x0000001e, + 0x00000620,0x0000061f,0x00050050,0x0000001f,0x00000621,0x0000061c,0x00000620,0x0003003e, + 0x000005d5,0x00000621,0x0004003d,0x00000006,0x00000622,0x000000d3,0x00050084,0x00000006, + 0x00000623,0x00000622,0x0000010f,0x00050080,0x00000006,0x00000624,0x00000623,0x00000151, + 0x0004007c,0x0000001e,0x00000625,0x00000624,0x0004003d,0x00000006,0x00000626,0x000000d4, + 0x00050084,0x00000006,0x00000627,0x00000626,0x0000010f,0x00050080,0x00000006,0x00000628, + 0x00000627,0x00000116,0x0004007c,0x0000001e,0x00000629,0x00000628,0x00050050,0x0000001f, + 0x0000062a,0x00000625,0x00000629,0x0003003e,0x000005df,0x0000062a,0x0004003d,0x0000001f, + 0x0000062c,0x000005d5,0x0004007c,0x00000019,0x0000062d,0x0000062c,0x0003003e,0x0000062e, + 0x0000062d,0x0004003d,0x00000006,0x00000630,0x000000d6,0x0003003e,0x0000062f,0x00000630, + 0x00060039,0x0000003a,0x00000631,0x00000095,0x0000062e,0x0000062f,0x0003003e,0x0000062b, + 0x00000631,0x0004003d,0x0000001f,0x00000633,0x000005df,0x0003003e,0x00000632,0x00000633, + 0x0004003d,0x0000003a,0x00000635,0x0000062b,0x0003003e,0x00000634,0x00000635,0x0003003e, + 0x00000636,0x000001a4,0x0004003d,0x00000006,0x00000638,0x000000d6,0x0003003e,0x00000637, + 0x00000638,0x00080039,0x00000002,0x00000639,0x00000061,0x00000632,0x00000634,0x00000636, + 0x00000637,0x0004003d,0x00000006,0x0000063a,0x000000d3,0x00050084,0x00000006,0x0000063b, + 0x0000063a,0x00000190,0x00050080,0x00000006,0x0000063c,0x0000063b,0x0000010f,0x0004007c, + 0x0000001e,0x0000063d,0x0000063c,0x0004003d,0x00000006,0x0000063e,0x000000d4,0x00050084, + 0x00000006,0x0000063f,0x0000063e,0x00000190,0x00050080,0x00000006,0x00000640,0x0000063f, + 0x0000010f,0x0004007c,0x0000001e,0x00000641,0x00000640,0x00050050,0x0000001f,0x00000642, + 0x0000063d,0x00000641,0x0003003e,0x000005d5,0x00000642,0x0004003d,0x00000006,0x00000643, + 0x000000d3,0x00050084,0x00000006,0x00000644,0x00000643,0x0000010f,0x00050080,0x00000006, + 0x00000645,0x00000644,0x00000116,0x0004007c,0x0000001e,0x00000646,0x00000645,0x0004003d, + 0x00000006,0x00000647,0x000000d4,0x00050084,0x00000006,0x00000648,0x00000647,0x0000010f, + 0x00050080,0x00000006,0x00000649,0x00000648,0x00000116,0x0004007c,0x0000001e,0x0000064a, + 0x00000649,0x00050050,0x0000001f,0x0000064b,0x00000646,0x0000064a,0x0003003e,0x000005df, + 0x0000064b,0x0004003d,0x0000001f,0x0000064d,0x000005d5,0x0004007c,0x00000019,0x0000064e, + 0x0000064d,0x0003003e,0x0000064f,0x0000064e,0x0004003d,0x00000006,0x00000651,0x000000d6, + 0x0003003e,0x00000650,0x00000651,0x00060039,0x0000003a,0x00000652,0x00000095,0x0000064f, + 0x00000650,0x0003003e,0x0000064c,0x00000652,0x0004003d,0x0000001f,0x00000654,0x000005df, + 0x0003003e,0x00000653,0x00000654,0x0004003d,0x0000003a,0x00000656,0x0000064c,0x0003003e, + 0x00000655,0x00000656,0x0003003e,0x00000657,0x000001a4,0x0004003d,0x00000006,0x00000659, + 0x000000d6,0x0003003e,0x00000658,0x00000659,0x00080039,0x00000002,0x0000065a,0x00000061, + 0x00000653,0x00000655,0x00000657,0x00000658,0x0004003d,0x00000006,0x0000065b,0x000000d5, + 0x000500b2,0x00000047,0x0000065c,0x0000065b,0x000001ae,0x000300f7,0x0000065e,0x00000000, + 0x000400fa,0x0000065c,0x0000065d,0x0000065e,0x000200f8,0x0000065d,0x000100fd,0x000200f8, + 0x0000065e,0x0004003d,0x0000003a,0x00000662,0x000005e9,0x0003003e,0x00000661,0x00000662, + 0x0004003d,0x0000003a,0x00000664,0x0000060a,0x0003003e,0x00000663,0x00000664,0x0004003d, + 0x0000003a,0x00000666,0x0000062b,0x0003003e,0x00000665,0x00000666,0x0004003d,0x0000003a, + 0x00000668,0x0000064c,0x0003003e,0x00000667,0x00000668,0x00080039,0x0000003a,0x00000669, + 0x0000007c,0x00000661,0x00000663,0x00000665,0x00000667,0x0003003e,0x00000660,0x00000669, + 0x0004003d,0x00000006,0x0000066a,0x000000d3,0x0004007c,0x0000001e,0x0000066b,0x0000066a, + 0x0004003d,0x00000006,0x0000066c,0x000000d4,0x0004007c,0x0000001e,0x0000066d,0x0000066c, + 0x00050050,0x0000001f,0x0000066e,0x0000066b,0x0000066d,0x0003003e,0x0000066f,0x0000066e, + 0x0004003d,0x0000003a,0x00000671,0x00000660,0x0003003e,0x00000670,0x00000671,0x0003003e, + 0x00000672,0x000001ae,0x0004003d,0x00000006,0x00000674,0x000000d6,0x0003003e,0x00000673, + 0x00000674,0x00080039,0x00000002,0x00000675,0x00000061,0x0000066f,0x00000670,0x00000672, + 0x00000673,0x0004003d,0x00000006,0x00000677,0x000000d3,0x0003003e,0x00000676,0x00000677, + 0x0004003d,0x00000006,0x00000679,0x000000d4,0x0003003e,0x00000678,0x00000679,0x0004003d, + 0x0000003a,0x0000067b,0x00000660,0x0003003e,0x0000067a,0x0000067b,0x00070039,0x00000002, + 0x0000067c,0x00000075,0x00000676,0x00000678,0x0000067a,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000e1,0x00000000,0x000000d9,0x00030037,0x00000007,0x000000da,0x00030037, + 0x00000007,0x000000db,0x00030037,0x0000004c,0x000000dc,0x00030037,0x00000007,0x000000dd, + 0x00030037,0x00000007,0x000000de,0x00030037,0x00000007,0x000000df,0x00030037,0x00000007, + 0x000000e0,0x000200f8,0x000000e2,0x0004003b,0x00000007,0x00000684,0x00000007,0x0004003b, + 0x00000007,0x00000686,0x00000007,0x0004003b,0x0000004c,0x00000688,0x00000007,0x0004003b, + 0x00000007,0x0000068a,0x00000007,0x0004003b,0x00000007,0x0000068c,0x00000007,0x0004003b, + 0x00000007,0x0000068e,0x00000007,0x0004003b,0x00000007,0x0000069b,0x00000007,0x0004003b, + 0x00000007,0x0000069d,0x00000007,0x0004003b,0x0000004c,0x0000069f,0x00000007,0x0004003b, + 0x00000007,0x000006a1,0x00000007,0x0004003b,0x00000007,0x000006a3,0x00000007,0x0004003b, + 0x00000007,0x000006a4,0x00000007,0x0004003b,0x00000007,0x000006b1,0x00000007,0x0004003b, + 0x00000007,0x000006b3,0x00000007,0x0004003b,0x0000004c,0x000006b5,0x00000007,0x0004003b, + 0x00000007,0x000006b7,0x00000007,0x0004003b,0x00000007,0x000006b9,0x00000007,0x0004003b, + 0x00000007,0x000006ba,0x00000007,0x0004003b,0x0000004c,0x000006c7,0x00000007,0x0004003b, + 0x00000007,0x000006c9,0x00000007,0x0004003b,0x00000007,0x000006cb,0x00000007,0x0004003b, + 0x00000007,0x000006cc,0x00000007,0x0004003d,0x00000006,0x0000067d,0x000000df,0x0004003d, + 0x00000006,0x0000067e,0x000000de,0x000500b2,0x00000047,0x0000067f,0x0000067d,0x0000067e, + 0x000300f7,0x00000681,0x00000000,0x000400fa,0x0000067f,0x00000680,0x00000681,0x000200f8, + 0x00000680,0x000100fd,0x000200f8,0x00000681,0x00040039,0x00000002,0x00000683,0x0000007e, + 0x0004003d,0x00000006,0x00000685,0x000000da,0x0003003e,0x00000684,0x00000685,0x0004003d, + 0x00000006,0x00000687,0x000000db,0x0003003e,0x00000686,0x00000687,0x0004003d,0x00000019, + 0x00000689,0x000000dc,0x0003003e,0x00000688,0x00000689,0x0004003d,0x00000006,0x0000068b, + 0x000000dd,0x0003003e,0x0000068a,0x0000068b,0x0004003d,0x00000006,0x0000068d,0x000000de, + 0x0003003e,0x0000068c,0x0000068d,0x0004003d,0x00000006,0x0000068f,0x000000e0,0x0003003e, + 0x0000068e,0x0000068f,0x000a0039,0x00000002,0x00000690,0x000000b9,0x00000684,0x00000686, + 0x00000688,0x0000068a,0x0000068c,0x0000068e,0x0004003d,0x00000006,0x00000691,0x000000df, + 0x0004003d,0x00000006,0x00000692,0x000000de,0x00050080,0x00000006,0x00000693,0x00000692, + 0x00000116,0x000500b2,0x00000047,0x00000694,0x00000691,0x00000693,0x000300f7,0x00000696, + 0x00000000,0x000400fa,0x00000694,0x00000695,0x00000696,0x000200f8,0x00000695,0x000100fd, + 0x000200f8,0x00000696,0x00040039,0x00000002,0x00000698,0x0000007e,0x0004003d,0x00000006, + 0x00000699,0x000000de,0x00050080,0x00000006,0x0000069a,0x00000699,0x00000116,0x0004003d, + 0x00000006,0x0000069c,0x000000da,0x0003003e,0x0000069b,0x0000069c,0x0004003d,0x00000006, + 0x0000069e,0x000000db,0x0003003e,0x0000069d,0x0000069e,0x0004003d,0x00000019,0x000006a0, + 0x000000dc,0x0003003e,0x0000069f,0x000006a0,0x0004003d,0x00000006,0x000006a2,0x000000dd, + 0x0003003e,0x000006a1,0x000006a2,0x0003003e,0x000006a3,0x0000069a,0x0004003d,0x00000006, + 0x000006a5,0x000000e0,0x0003003e,0x000006a4,0x000006a5,0x000a0039,0x00000002,0x000006a6, + 0x000000c1,0x0000069b,0x0000069d,0x0000069f,0x000006a1,0x000006a3,0x000006a4,0x0004003d, + 0x00000006,0x000006a7,0x000000df,0x0004003d,0x00000006,0x000006a8,0x000000de,0x00050080, + 0x00000006,0x000006a9,0x000006a8,0x0000010f,0x000500b2,0x00000047,0x000006aa,0x000006a7, + 0x000006a9,0x000300f7,0x000006ac,0x00000000,0x000400fa,0x000006aa,0x000006ab,0x000006ac, + 0x000200f8,0x000006ab,0x000100fd,0x000200f8,0x000006ac,0x00040039,0x00000002,0x000006ae, + 0x0000007e,0x0004003d,0x00000006,0x000006af,0x000000de,0x00050080,0x00000006,0x000006b0, + 0x000006af,0x0000010f,0x0004003d,0x00000006,0x000006b2,0x000000da,0x0003003e,0x000006b1, + 0x000006b2,0x0004003d,0x00000006,0x000006b4,0x000000db,0x0003003e,0x000006b3,0x000006b4, + 0x0004003d,0x00000019,0x000006b6,0x000000dc,0x0003003e,0x000006b5,0x000006b6,0x0004003d, + 0x00000006,0x000006b8,0x000000dd,0x0003003e,0x000006b7,0x000006b8,0x0003003e,0x000006b9, + 0x000006b0,0x0004003d,0x00000006,0x000006bb,0x000000e0,0x0003003e,0x000006ba,0x000006bb, + 0x000a0039,0x00000002,0x000006bc,0x000000c9,0x000006b1,0x000006b3,0x000006b5,0x000006b7, + 0x000006b9,0x000006ba,0x0004003d,0x00000006,0x000006bd,0x000000df,0x0004003d,0x00000006, + 0x000006be,0x000000de,0x00050080,0x00000006,0x000006bf,0x000006be,0x00000110,0x000500b2, + 0x00000047,0x000006c0,0x000006bd,0x000006bf,0x000300f7,0x000006c2,0x00000000,0x000400fa, + 0x000006c0,0x000006c1,0x000006c2,0x000200f8,0x000006c1,0x000100fd,0x000200f8,0x000006c2, + 0x00040039,0x00000002,0x000006c4,0x0000007e,0x0004003d,0x00000006,0x000006c5,0x000000de, + 0x00050080,0x00000006,0x000006c6,0x000006c5,0x00000110,0x0004003d,0x00000019,0x000006c8, + 0x000000dc,0x0003003e,0x000006c7,0x000006c8,0x0004003d,0x00000006,0x000006ca,0x000000dd, + 0x0003003e,0x000006c9,0x000006ca,0x0003003e,0x000006cb,0x000006c6,0x0004003d,0x00000006, + 0x000006cd,0x000000e0,0x0003003e,0x000006cc,0x000006cd,0x00080039,0x00000002,0x000006ce, + 0x000000d0,0x000006c7,0x000006c9,0x000006cb,0x000006cc,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000e9,0x00000000,0x000000e3,0x00030037,0x0000004c,0x000000e4,0x00030037, + 0x00000007,0x000000e5,0x00030037,0x00000007,0x000000e6,0x00030037,0x00000007,0x000000e7, + 0x00030037,0x00000007,0x000000e8,0x000200f8,0x000000ea,0x0004003b,0x0000004c,0x000006cf, + 0x00000007,0x0004003b,0x00000007,0x000006d2,0x00000007,0x0004003b,0x00000007,0x000006d4, + 0x00000007,0x0004003b,0x00000007,0x000006dc,0x00000007,0x0004003b,0x00000007,0x000006e4, + 0x00000007,0x0004003b,0x00000007,0x000006e6,0x00000007,0x0004003b,0x0000004c,0x000006e8, + 0x00000007,0x0004003b,0x00000007,0x000006ea,0x00000007,0x0004003b,0x00000007,0x000006ec, + 0x00000007,0x0004003b,0x00000007,0x000006ee,0x00000007,0x0004003b,0x00000007,0x000006f1, + 0x00000007,0x0004003b,0x00000007,0x000006f3,0x00000007,0x0004003b,0x0000004c,0x000006f5, + 0x00000007,0x0004003b,0x00000007,0x000006f7,0x00000007,0x0004003b,0x00000007,0x000006f9, + 0x00000007,0x0004003b,0x00000007,0x000006fa,0x00000007,0x0004003b,0x00000007,0x000006fc, + 0x00000007,0x0004003b,0x00000007,0x00000704,0x00000007,0x0004003b,0x00000007,0x00000706, + 0x00000007,0x0004003b,0x00000007,0x00000708,0x00000007,0x0004003b,0x00000007,0x0000070e, + 0x00000007,0x0004003b,0x00000007,0x00000711,0x00000007,0x0004003b,0x00000007,0x00000713, + 0x00000007,0x0004003b,0x00000007,0x00000715,0x00000007,0x0004003b,0x00000007,0x00000717, + 0x00000007,0x0004003b,0x00000007,0x0000071a,0x00000007,0x0004003b,0x00000007,0x0000071c, + 0x00000007,0x0004003b,0x0000004c,0x0000071e,0x00000007,0x0004003b,0x00000007,0x0000071f, + 0x00000007,0x0004003b,0x00000007,0x00000721,0x00000007,0x0004003b,0x00000007,0x00000722, + 0x00000007,0x0004003b,0x00000007,0x00000724,0x00000007,0x0004003d,0x00000006,0x000006d0, + 0x000000e5,0x00050089,0x00000006,0x000006d1,0x000006d0,0x000003d3,0x0003003e,0x000006d2, + 0x000006d1,0x00050039,0x00000019,0x000006d3,0x0000001c,0x000006d2,0x0003003e,0x000006cf, + 0x000006d3,0x00050041,0x00000007,0x000006d5,0x000006cf,0x00000151,0x0004003d,0x00000006, + 0x000006d6,0x000006d5,0x0004003d,0x00000006,0x000006d7,0x000000e5,0x000500c2,0x00000006, + 0x000006d8,0x000006d7,0x0000028e,0x00050089,0x00000006,0x000006d9,0x000006d8,0x0000010f, + 0x00050084,0x00000006,0x000006da,0x000001b8,0x000006d9,0x00050080,0x00000006,0x000006db, + 0x000006d6,0x000006da,0x0003003e,0x000006d4,0x000006db,0x00050041,0x00000007,0x000006dd, + 0x000006cf,0x00000116,0x0004003d,0x00000006,0x000006de,0x000006dd,0x0004003d,0x00000006, + 0x000006df,0x000000e5,0x000500c2,0x00000006,0x000006e1,0x000006df,0x000006e0,0x00050084, + 0x00000006,0x000006e2,0x000001b8,0x000006e1,0x00050080,0x00000006,0x000006e3,0x000006de, + 0x000006e2,0x0003003e,0x000006dc,0x000006e3,0x0004003d,0x00000006,0x000006e5,0x000006d4, + 0x0003003e,0x000006e4,0x000006e5,0x0004003d,0x00000006,0x000006e7,0x000006dc,0x0003003e, + 0x000006e6,0x000006e7,0x0004003d,0x00000019,0x000006e9,0x000000e4,0x0003003e,0x000006e8, + 0x000006e9,0x0004003d,0x00000006,0x000006eb,0x000000e5,0x0003003e,0x000006ea,0x000006eb, + 0x0004003d,0x00000006,0x000006ed,0x000000e6,0x0003003e,0x000006ec,0x000006ed,0x0004003d, + 0x00000006,0x000006ef,0x000000e8,0x0003003e,0x000006ee,0x000006ef,0x000a0039,0x00000002, + 0x000006f0,0x000000b1,0x000006e4,0x000006e6,0x000006e8,0x000006ea,0x000006ec,0x000006ee, + 0x0004003d,0x00000006,0x000006f2,0x000006d4,0x0003003e,0x000006f1,0x000006f2,0x0004003d, + 0x00000006,0x000006f4,0x000006dc,0x0003003e,0x000006f3,0x000006f4,0x0004003d,0x00000019, + 0x000006f6,0x000000e4,0x0003003e,0x000006f5,0x000006f6,0x0004003d,0x00000006,0x000006f8, + 0x000000e5,0x0003003e,0x000006f7,0x000006f8,0x0003003e,0x000006f9,0x0000010f,0x0004003d, + 0x00000006,0x000006fb,0x000000e6,0x0003003e,0x000006fa,0x000006fb,0x0004003d,0x00000006, + 0x000006fd,0x000000e8,0x0003003e,0x000006fc,0x000006fd,0x000b0039,0x00000002,0x000006fe, + 0x000000e1,0x000006f1,0x000006f3,0x000006f5,0x000006f7,0x000006f9,0x000006fa,0x000006fc, + 0x0004003d,0x00000006,0x000006ff,0x000000e6,0x000500b2,0x00000047,0x00000700,0x000006ff, + 0x000001a4,0x000300f7,0x00000702,0x00000000,0x000400fa,0x00000700,0x00000701,0x00000702, + 0x000200f8,0x00000701,0x000100fd,0x000200f8,0x00000702,0x0004003d,0x00000006,0x00000705, + 0x000000e7,0x0003003e,0x00000704,0x00000705,0x0004003d,0x00000006,0x00000707,0x000000e5, + 0x0003003e,0x00000706,0x00000707,0x0004003d,0x00000006,0x00000709,0x000000e8,0x0003003e, + 0x00000708,0x00000709,0x00070039,0x00000047,0x0000070a,0x00000084,0x00000704,0x00000706, + 0x00000708,0x000300f7,0x0000070c,0x00000000,0x000400fa,0x0000070a,0x0000070b,0x0000070c, + 0x000200f8,0x0000070b,0x000100fd,0x000200f8,0x0000070c,0x0004003d,0x00000006,0x0000070f, + 0x000000e8,0x0003003e,0x0000070e,0x0000070f,0x00050039,0x00000002,0x00000710,0x0000006a, + 0x0000070e,0x0004003d,0x00000006,0x00000712,0x000006d4,0x0003003e,0x00000711,0x00000712, + 0x0004003d,0x00000006,0x00000714,0x000006dc,0x0003003e,0x00000713,0x00000714,0x0004003d, + 0x00000006,0x00000716,0x000000e6,0x0003003e,0x00000715,0x00000716,0x0004003d,0x00000006, + 0x00000718,0x000000e8,0x0003003e,0x00000717,0x00000718,0x00080039,0x00000002,0x00000719, + 0x000000d7,0x00000711,0x00000713,0x00000715,0x00000717,0x0004003d,0x00000006,0x0000071b, + 0x000006d4,0x0003003e,0x0000071a,0x0000071b,0x0004003d,0x00000006,0x0000071d,0x000006dc, + 0x0003003e,0x0000071c,0x0000071d,0x0003003e,0x0000071e,0x00000385,0x0004003d,0x00000006, + 0x00000720,0x000000e5,0x0003003e,0x0000071f,0x00000720,0x0003003e,0x00000721,0x000001b8, + 0x0004003d,0x00000006,0x00000723,0x000000e6,0x0003003e,0x00000722,0x00000723,0x0004003d, + 0x00000006,0x00000725,0x000000e8,0x0003003e,0x00000724,0x00000725,0x000b0039,0x00000002, + 0x00000726,0x000000e1,0x0000071a,0x0000071c,0x0000071e,0x0000071f,0x00000721,0x00000722, + 0x00000724,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f2,0x00000000,0x000000eb, + 0x00030037,0x0000004c,0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007, + 0x000000ee,0x00030037,0x00000007,0x000000ef,0x00030037,0x00000007,0x000000f0,0x00030037, + 0x0000004c,0x000000f1,0x000200f8,0x000000f3,0x0004003b,0x0000004c,0x0000072a,0x00000007, + 0x0004003b,0x00000007,0x0000072b,0x00000007,0x0004003b,0x00000007,0x0000072d,0x00000007, + 0x0004003b,0x00000007,0x0000072f,0x00000007,0x0004003b,0x00000007,0x00000731,0x00000007, + 0x0004003d,0x00000019,0x00000727,0x000000ec,0x0004003d,0x00000019,0x00000728,0x000000f1, + 0x00050080,0x00000019,0x00000729,0x00000727,0x00000728,0x0003003e,0x0000072a,0x00000729, + 0x0004003d,0x00000006,0x0000072c,0x000000ed,0x0003003e,0x0000072b,0x0000072c,0x0004003d, + 0x00000006,0x0000072e,0x000000ee,0x0003003e,0x0000072d,0x0000072e,0x0004003d,0x00000006, + 0x00000730,0x000000ef,0x0003003e,0x0000072f,0x00000730,0x0004003d,0x00000006,0x00000732, + 0x000000f0,0x0003003e,0x00000731,0x00000732,0x00090039,0x00000002,0x00000733,0x000000e9, + 0x0000072a,0x0000072b,0x0000072d,0x0000072f,0x00000731,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000f9,0x00000000,0x000000f6,0x00030037,0x000000f5,0x000000f7,0x00030037, + 0x00000030,0x000000f8,0x000200f8,0x000000fa,0x0004003b,0x0000004c,0x0000073f,0x00000007, + 0x0004003b,0x00000007,0x00000740,0x00000007,0x0004003b,0x00000007,0x00000741,0x00000007, + 0x0004003b,0x00000007,0x00000742,0x00000007,0x0004003b,0x00000007,0x00000743,0x00000007, + 0x0004003b,0x0000004c,0x00000744,0x00000007,0x0004003d,0x000000f4,0x00000734,0x000000f7, + 0x0007004f,0x0000001f,0x00000735,0x00000734,0x00000734,0x00000000,0x00000001,0x0004007c, + 0x00000019,0x00000736,0x00000735,0x0004003d,0x0000001e,0x00000737,0x000000f8,0x0004007c, + 0x00000006,0x00000738,0x00000737,0x00040039,0x00000006,0x00000739,0x00000024,0x00040039, + 0x00000006,0x0000073a,0x00000026,0x00050041,0x00000030,0x0000073b,0x000000f7,0x0000010f, + 0x0004003d,0x0000001e,0x0000073c,0x0000073b,0x0004007c,0x00000006,0x0000073d,0x0000073c, + 0x00040039,0x00000019,0x0000073e,0x00000029,0x0003003e,0x0000073f,0x00000736,0x0003003e, + 0x00000740,0x00000738,0x0003003e,0x00000741,0x00000739,0x0003003e,0x00000742,0x0000073a, + 0x0003003e,0x00000743,0x0000073d,0x0003003e,0x00000744,0x0000073e,0x000a0039,0x00000002, + 0x00000745,0x000000f2,0x0000073f,0x00000740,0x00000741,0x00000742,0x00000743,0x00000744, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h b/gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h new file mode 100644 index 000000000..54494dace --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h @@ -0,0 +1,748 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_INPAINTING_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000003af,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000037,0x00020011,0x00000038,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000397,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c, + 0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461,0x00003b31,0x00030005, + 0x0000000a,0x00000078,0x00070005,0x00000011,0x42786666,0x64616f72,0x74736163,0x31662833, + 0x0000003b,0x00040005,0x00000010,0x756c6176,0x00000065,0x00070005,0x00000018,0x4c786666, + 0x28707265,0x3b336676,0x3b336676,0x003b3166,0x00030005,0x00000015,0x00000078,0x00030005, + 0x00000016,0x00000079,0x00030005,0x00000017,0x00000074,0x00060005,0x0000001c,0x53786666, + 0x72757461,0x28657461,0x003b3166,0x00030005,0x0000001b,0x00000078,0x00070005,0x00000020, + 0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000,0x00030005,0x0000001f,0x00000078, + 0x00060005,0x00000026,0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000025, + 0x00000078,0x00060005,0x0000002b,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005, + 0x00000029,0x00000078,0x00030005,0x0000002a,0x00000079,0x00060005,0x0000002f,0x4d786666, + 0x66287861,0x31663b31,0x0000003b,0x00030005,0x0000002d,0x00000078,0x00030005,0x0000002e, + 0x00000079,0x00060005,0x00000033,0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005, + 0x00000031,0x00000078,0x00030005,0x00000032,0x00000079,0x000a0005,0x00000039,0x5a786666, + 0x4f6f7265,0x6553656e,0x7463656c,0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005, + 0x00000036,0x00000078,0x00030005,0x00000037,0x00000079,0x00030005,0x00000038,0x0000007a, + 0x00080005,0x0000003c,0x5a786666,0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366, + 0x00030005,0x0000003b,0x00000078,0x00080005,0x0000003f,0x4c786666,0x61656e69,0x6f724672, + 0x2851506d,0x3b336676,0x00000000,0x00040005,0x0000003e,0x756c6176,0x00000065,0x00080005, + 0x00000042,0x4c786666,0x61656e69,0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005, + 0x00000041,0x756c6176,0x00000065,0x00060005,0x00000047,0x70736944,0x5379616c,0x28657a69, + 0x00000000,0x00040005,0x0000004b,0x65736552,0x00002874,0x00090005,0x0000004e,0x48746547, + 0x654c4455,0x74417373,0x68636174,0x61466465,0x726f7463,0x00000028,0x00070005,0x00000051, + 0x44746547,0x61707369,0x46686374,0x7367616c,0x00000028,0x00070005,0x00000054,0x44746547, + 0x67756265,0x43726142,0x726f6c6f,0x00000028,0x00090005,0x00000056,0x6b636142,0x66667542, + 0x72547265,0x66736e61,0x75467265,0x6974636e,0x00286e6f,0x00060005,0x00000059,0x4c6e694d, + 0x6e696d75,0x65636e61,0x00000028,0x00060005,0x0000005b,0x4c78614d,0x6e696d75,0x65636e61, + 0x00000028,0x00090005,0x00000060,0x64616f4c,0x72727543,0x42746e65,0x626b6361,0x65666675, + 0x69762872,0x00003b32,0x00040005,0x0000005f,0x50785069,0x0000736f,0x00070005,0x00000062, + 0x53736148,0x656e6563,0x6e616843,0x28646567,0x00000000,0x000a0005,0x0000006b,0x64616f4c, + 0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x31692864,0x3275763b,0x0000003b,0x00050005, + 0x00000069,0x4c70696d,0x6c657665,0x00000000,0x00050005,0x0000006a,0x49785069,0x7475706e, + 0x00000000,0x00090005,0x0000006f,0x64616f4c,0x73657250,0x42746e65,0x626b6361,0x65666675, + 0x69762872,0x00003b32,0x00050005,0x0000006e,0x49785069,0x7475706e,0x00000000,0x000b0005, + 0x00000072,0x6f4c5752,0x72466461,0x69656d61,0x7265746e,0x616c6f70,0x6e6f6974,0x7074754f, + 0x76287475,0x003b3269,0x00040005,0x00000071,0x50785069,0x0000736f,0x000c0005,0x00000078, + 0x726f7453,0x61724665,0x6e69656d,0x70726574,0x74616c6f,0x4f6e6f69,0x75707475,0x69762874, + 0x66763b32,0x00003b34,0x00040005,0x00000076,0x50785069,0x0000736f,0x00030005,0x00000077, + 0x006c6176,0x00090005,0x0000007e,0x73786666,0x42475263,0x694c6f54,0x7261656e,0x33667628, + 0x3b31663b,0x003b3166,0x00040005,0x0000007b,0x756c6176,0x00000065,0x00060005,0x0000007c, + 0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x0000007d,0x4c78616d,0x6e696d75, + 0x65636e61,0x00000000,0x00070005,0x00000081,0x52776152,0x6f544247,0x656e694c,0x76287261, + 0x003b3366,0x00040005,0x00000080,0x77615266,0x00626752,0x00080005,0x00000086,0x696c6942, + 0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006,0x00000086,0x00000000, + 0x66664f69,0x73746573,0x00000000,0x00060006,0x00000086,0x00000001,0x69655766,0x73746867, + 0x00000000,0x00060006,0x00000086,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005, + 0x0000008a,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676, + 0x3b326976,0x00000000,0x00030005,0x00000088,0x00765566,0x00040005,0x00000089,0x7a695369, + 0x00000065,0x00070005,0x0000008f,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x0000008d,0x00736f70,0x00040005,0x0000008e,0x657a6973,0x00000000,0x00080005, + 0x00000094,0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31,0x00030005, + 0x00000092,0x00003076,0x00030005,0x00000093,0x00003176,0x000c0005,0x00000099,0x636c6143, + 0x74616c75,0x61745365,0x43636974,0x65746e6f,0x6146746e,0x726f7463,0x33667628,0x3366763b, + 0x0000003b,0x00090005,0x00000097,0x72754366,0x746e6572,0x65746e49,0x6c6f7072,0x6f697461, + 0x756f536e,0x00656372,0x00060005,0x00000098,0x65725066,0x746e6573,0x6f6c6f43,0x00000072, + 0x000b0005,0x0000009f,0x706d6f43,0x49657475,0x6961706e,0x6e69746e,0x76654c67,0x76286c65, + 0x693b3266,0x69763b31,0x00003b32,0x00030005,0x0000009c,0x00765566,0x00050005,0x0000009d, + 0x70694d69,0x6576654c,0x0000006c,0x00050005,0x0000009e,0x78655469,0x657a6953,0x00000000, + 0x00080005,0x000000a2,0x706d6f43,0x49657475,0x6961706e,0x6e69746e,0x69762867,0x00003b32, + 0x00040005,0x000000a1,0x50785069,0x0000736f,0x000a0005,0x000000a9,0x77617264,0x75626544, + 0x61655467,0x6e694c72,0x76287365,0x763b3269,0x623b3366,0x00003b31,0x00040005,0x000000a6, + 0x50785069,0x0000736f,0x00040005,0x000000a7,0x6c6f4366,0x0000726f,0x00050005,0x000000a8, + 0x69725762,0x6f436574,0x00726f6c,0x000c0005,0x000000ae,0x77617264,0x75626544,0x73655267, + 0x6e497465,0x61636964,0x73726f74,0x32697628,0x3366763b,0x3b31623b,0x00000000,0x00040005, + 0x000000ab,0x50785069,0x0000736f,0x00040005,0x000000ac,0x6c6f4366,0x0000726f,0x00050005, + 0x000000ad,0x69725762,0x6f436574,0x00726f6c,0x00080005,0x000000b2,0x706d6f63,0x49657475, + 0x6961706e,0x6e69746e,0x69762867,0x00003b32,0x00040005,0x000000b1,0x50785069,0x0000736f, + 0x00040005,0x000000ca,0x61726170,0x0000006d,0x00040005,0x000000cc,0x61726170,0x0000006d, + 0x00030005,0x000000e4,0x00000072,0x00040005,0x000000f4,0x61726170,0x0000006d,0x00040005, + 0x000000f6,0x61726170,0x0000006d,0x00040005,0x000000f9,0x61726170,0x0000006d,0x00030005, + 0x000000fd,0x00000070,0x00040005,0x00000100,0x61726170,0x0000006d,0x00040005,0x00000105, + 0x61726170,0x0000006d,0x00040005,0x00000108,0x61726170,0x0000006d,0x00040005,0x0000010b, + 0x61726170,0x0000006d,0x00040005,0x0000010e,0x61726170,0x0000006d,0x00040005,0x00000115, + 0x61726170,0x0000006d,0x00030005,0x0000011a,0x0000006a,0x00030005,0x0000011f,0x0000006b, + 0x00040005,0x00000127,0x61726170,0x0000006d,0x00040005,0x00000137,0x61726170,0x0000006d, + 0x00040005,0x00000138,0x61726170,0x0000006d,0x00040005,0x00000139,0x61726170,0x0000006d, + 0x00040005,0x0000013d,0x49466263,0x0000745f,0x00060006,0x0000013d,0x00000000,0x646e6572, + 0x69537265,0x0000657a,0x00060006,0x0000013d,0x00000001,0x70736964,0x5379616c,0x00657a69, + 0x00070006,0x0000013d,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006, + 0x0000013d,0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x0000013d,0x00000004, + 0x656d6163,0x61466172,0x00000072,0x00080006,0x0000013d,0x00000005,0x63737075,0x72656c61, + 0x67726154,0x69537465,0x0000657a,0x00050006,0x0000013d,0x00000006,0x65646f4d,0x00000000, + 0x00050006,0x0000013d,0x00000007,0x65736572,0x00000074,0x00080006,0x0000013d,0x00000008, + 0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x0000013d,0x00000009, + 0x746c6564,0x6d695461,0x00000065,0x00090006,0x0000013d,0x0000000a,0x4c445548,0x41737365, + 0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006,0x0000013d,0x0000000b,0x74736964, + 0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x0000013d,0x0000000c,0x6974706f, + 0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006,0x0000013d,0x0000000d,0x6974706f, + 0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x0000013d,0x0000000e, + 0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006,0x0000013d,0x0000000f,0x5278616d, + 0x65646e65,0x7a695372,0x00000065,0x00090006,0x0000013d,0x00000010,0x6974706f,0x466c6163, + 0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x0000013d,0x00000011,0x496d754e, + 0x6174736e,0x7365636e,0x00000000,0x00090006,0x0000013d,0x00000012,0x65746e69,0x6c6f7072, + 0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006,0x0000013d,0x00000013,0x65746e69, + 0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x0000013d,0x00000014, + 0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x0000013d,0x00000015,0x6b636162, + 0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000013d, + 0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x0000013d,0x00000017, + 0x6e615466,0x666c6148,0x00564f46,0x00050006,0x0000013d,0x00000018,0x6461705f,0x00000031, + 0x00050006,0x0000013d,0x00000019,0x74694a66,0x00726574,0x00080006,0x0000013d,0x0000001a, + 0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000013f,0x49466263, + 0x00000000,0x000a0005,0x00000171,0x75635f72,0x6e657272,0x6e695f74,0x70726574,0x74616c6f, + 0x5f6e6f69,0x72756f73,0x00006563,0x00070005,0x0000017b,0x706f5f72,0x61636974,0x6c665f6c, + 0x735f776f,0x00006463,0x00080005,0x00000186,0x6e695f72,0x6e696170,0x676e6974,0x7279705f, + 0x64696d61,0x00000000,0x00080005,0x0000018e,0x72705f72,0x6e657365,0x61625f74,0x75626b63, + 0x72656666,0x00000000,0x00050005,0x00000196,0x6f5f7772,0x75707475,0x00000074,0x00030005, + 0x0000019f,0x00000070,0x00040005,0x000001a4,0x61726170,0x0000006d,0x00040005,0x000001ac, + 0x61726170,0x0000006d,0x00050005,0x000001b6,0x6e694c66,0x52726165,0x00006267,0x00040005, + 0x000001b7,0x61726170,0x0000006d,0x00040005,0x000001bb,0x61726170,0x0000006d,0x00040005, + 0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001c7,0x61726170,0x0000006d,0x00040005, + 0x000001c8,0x61726170,0x0000006d,0x00050005,0x000001cf,0x53785066,0x6c706d61,0x00000065, + 0x00040005,0x000001d8,0x61746164,0x00000000,0x00040005,0x000001de,0x46785066,0x00636172, + 0x00040005,0x000001df,0x61726170,0x0000006d,0x00030005,0x00000212,0x0000006d,0x00040005, + 0x00000213,0x61726170,0x0000006d,0x00040005,0x00000214,0x61726170,0x0000006d,0x00040005, + 0x0000021b,0x61726170,0x0000006d,0x00040005,0x0000021c,0x61726170,0x0000006d,0x00040005, + 0x00000224,0x63614666,0x00726f74,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00040005, + 0x00000236,0x61726170,0x0000006d,0x00040005,0x00000240,0x61726170,0x0000006d,0x00040005, + 0x00000243,0x61726170,0x0000006d,0x00060005,0x0000024f,0x696c6962,0x7261656e,0x6f666e49, + 0x00000000,0x00040005,0x00000250,0x61726170,0x0000006d,0x00040005,0x00000252,0x61726170, + 0x0000006d,0x00040005,0x00000254,0x6c6f4366,0x0000726f,0x00060005,0x00000256,0x6d615369, + 0x49656c70,0x7865646e,0x00000000,0x00040005,0x0000025f,0x66664f69,0x00746573,0x00050005, + 0x00000263,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x00000268,0x61726170,0x0000006d, + 0x00040005,0x0000026a,0x61726170,0x0000006d,0x00040005,0x0000026e,0x6d615366,0x00656c70, + 0x00040005,0x00000271,0x61726170,0x0000006d,0x00040005,0x00000272,0x61726170,0x0000006d, + 0x00040005,0x00000274,0x69655766,0x00746867,0x00030005,0x0000028e,0x00765566,0x00040005, + 0x00000296,0x6c6f4366,0x0000726f,0x00050005,0x00000297,0x69655766,0x53746867,0x00006d75, + 0x00050005,0x00000298,0x78655469,0x657a6953,0x00000000,0x00050005,0x0000029a,0x70694d69, + 0x6576654c,0x0000006c,0x00050005,0x000002a5,0x70694d66,0x6f6c6f43,0x00000072,0x00040005, + 0x000002a8,0x61726170,0x0000006d,0x00070005,0x000002b0,0x726f4e66,0x696c616d,0x4d64657a, + 0x6f437069,0x00726f6c,0x00050005,0x000002b7,0x70694d66,0x67696557,0x00007468,0x00040005, + 0x000002be,0x61726170,0x0000006d,0x00040005,0x000002bf,0x61726170,0x0000006d,0x00050005, + 0x00000308,0x69725762,0x6f436574,0x00726f6c,0x00070005,0x0000030a,0x746e4966,0x6f707265, + 0x6574616c,0x6c6f4364,0x0000726f,0x00040005,0x0000030b,0x61726170,0x0000006d,0x00070005, + 0x0000030e,0x506e4966,0x746e6961,0x57676e69,0x68676965,0x00000074,0x00040005,0x00000316, + 0x61726170,0x0000006d,0x00040005,0x0000031e,0x61726170,0x0000006d,0x00040005,0x00000321, + 0x61726170,0x0000006d,0x00040005,0x00000322,0x61726170,0x0000006d,0x00090005,0x0000032f, + 0x72754366,0x746e6572,0x65746e49,0x6c6f7072,0x6f697461,0x756f536e,0x00656372,0x00040005, + 0x00000330,0x61726170,0x0000006d,0x00060005,0x00000333,0x65725066,0x746e6573,0x6f6c6f43, + 0x00000072,0x00040005,0x00000334,0x61726170,0x0000006d,0x00060005,0x00000342,0x61745366, + 0x46636974,0x6f746361,0x00000072,0x00040005,0x00000343,0x61726170,0x0000006d,0x00040005, + 0x00000346,0x61726170,0x0000006d,0x00040005,0x00000349,0x61726170,0x0000006d,0x00040005, + 0x0000034a,0x61726170,0x0000006d,0x00040005,0x00000350,0x61726170,0x0000006d,0x00040005, + 0x00000353,0x61726170,0x0000006d,0x00040005,0x00000355,0x61726170,0x0000006d,0x00040005, + 0x00000363,0x61726170,0x0000006d,0x00040005,0x00000365,0x61726170,0x0000006d,0x00040005, + 0x00000368,0x61726170,0x0000006d,0x00040005,0x00000378,0x61726170,0x0000006d,0x00040005, + 0x0000037a,0x61726170,0x0000006d,0x00040005,0x0000037d,0x61726170,0x0000006d,0x00040005, + 0x00000391,0x61726170,0x0000006d,0x00040005,0x00000393,0x61726170,0x0000006d,0x00080005, + 0x00000397,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x0000039b,0x61726170,0x0000006d,0x00060005,0x000003a2,0x694c5f73,0x7261656e,0x6d616c43, + 0x00000070,0x00030047,0x0000013d,0x00000002,0x00050048,0x0000013d,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000013d,0x00000001,0x00000023,0x00000008,0x00050048,0x0000013d, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000013d,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000013d,0x00000004,0x00000023,0x0000001c,0x00050048,0x0000013d,0x00000005, + 0x00000023,0x00000020,0x00050048,0x0000013d,0x00000006,0x00000023,0x00000028,0x00050048, + 0x0000013d,0x00000007,0x00000023,0x0000002c,0x00050048,0x0000013d,0x00000008,0x00000023, + 0x00000030,0x00050048,0x0000013d,0x00000009,0x00000023,0x00000040,0x00050048,0x0000013d, + 0x0000000a,0x00000023,0x00000044,0x00050048,0x0000013d,0x0000000b,0x00000023,0x00000048, + 0x00050048,0x0000013d,0x0000000c,0x00000023,0x00000050,0x00050048,0x0000013d,0x0000000d, + 0x00000023,0x00000058,0x00050048,0x0000013d,0x0000000e,0x00000023,0x0000005c,0x00050048, + 0x0000013d,0x0000000f,0x00000023,0x00000060,0x00050048,0x0000013d,0x00000010,0x00000023, + 0x00000068,0x00050048,0x0000013d,0x00000011,0x00000023,0x0000006c,0x00050048,0x0000013d, + 0x00000012,0x00000023,0x00000070,0x00050048,0x0000013d,0x00000013,0x00000023,0x00000078, + 0x00050048,0x0000013d,0x00000014,0x00000023,0x00000080,0x00050048,0x0000013d,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000013d,0x00000016,0x00000023,0x00000090,0x00050048, + 0x0000013d,0x00000017,0x00000023,0x00000098,0x00050048,0x0000013d,0x00000018,0x00000023, + 0x0000009c,0x00050048,0x0000013d,0x00000019,0x00000023,0x000000a0,0x00050048,0x0000013d, + 0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000013f,0x00000021,0x00000008,0x00040047, + 0x0000013f,0x00000022,0x00000000,0x00040047,0x00000171,0x00000021,0x00000003,0x00040047, + 0x00000171,0x00000022,0x00000000,0x00040047,0x0000017b,0x00000021,0x00000000,0x00040047, + 0x0000017b,0x00000022,0x00000000,0x00040047,0x00000186,0x00000021,0x00000001,0x00040047, + 0x00000186,0x00000022,0x00000000,0x00040047,0x0000018e,0x00000021,0x00000002,0x00040047, + 0x0000018e,0x00000022,0x00000000,0x00040047,0x00000196,0x00000021,0x00000007,0x00040047, + 0x00000196,0x00000022,0x00000000,0x00040047,0x00000397,0x0000000b,0x0000001c,0x00040047, + 0x000003a2,0x00000021,0x000003e8,0x00040047,0x000003a2,0x00000022,0x00000000,0x00040047, + 0x000003ae,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040020, + 0x0000000d,0x00000007,0x00000008,0x00040017,0x0000000e,0x00000008,0x00000003,0x00040021, + 0x0000000f,0x0000000e,0x0000000d,0x00040020,0x00000013,0x00000007,0x0000000e,0x00060021, + 0x00000014,0x0000000e,0x00000013,0x00000013,0x0000000d,0x00040021,0x0000001a,0x00000008, + 0x0000000d,0x00040021,0x0000001e,0x0000000e,0x00000013,0x00040017,0x00000022,0x00000008, + 0x00000002,0x00040020,0x00000023,0x00000007,0x00000022,0x00040021,0x00000024,0x00000022, + 0x00000023,0x00050021,0x00000028,0x00000008,0x0000000d,0x0000000d,0x00060021,0x00000035, + 0x0000000e,0x00000013,0x00000013,0x00000013,0x00040015,0x00000044,0x00000020,0x00000001, + 0x00040017,0x00000045,0x00000044,0x00000002,0x00030021,0x00000046,0x00000045,0x00020014, + 0x00000049,0x00030021,0x0000004a,0x00000049,0x00030021,0x0000004d,0x00000044,0x00030021, + 0x00000050,0x00000006,0x00030021,0x00000053,0x0000000e,0x00030021,0x00000058,0x00000008, + 0x00040020,0x0000005d,0x00000007,0x00000045,0x00040021,0x0000005e,0x0000000e,0x0000005d, + 0x00040020,0x00000064,0x00000007,0x00000044,0x00040017,0x00000065,0x00000006,0x00000002, + 0x00040020,0x00000066,0x00000007,0x00000065,0x00040017,0x00000067,0x00000008,0x00000004, + 0x00050021,0x00000068,0x00000067,0x00000064,0x00000066,0x00040021,0x0000006d,0x00000067, + 0x0000005d,0x00040020,0x00000074,0x00000007,0x00000067,0x00050021,0x00000075,0x00000002, + 0x0000005d,0x00000074,0x00060021,0x0000007a,0x0000000e,0x00000013,0x0000000d,0x0000000d, + 0x0004002b,0x00000006,0x00000083,0x00000004,0x0004001c,0x00000084,0x00000045,0x00000083, + 0x0004001c,0x00000085,0x00000008,0x00000083,0x0005001e,0x00000086,0x00000084,0x00000085, + 0x00000045,0x00050021,0x00000087,0x00000086,0x00000023,0x0000005d,0x00050021,0x0000008c, + 0x00000049,0x0000005d,0x0000005d,0x00050021,0x00000091,0x00000008,0x00000008,0x00000008, + 0x00050021,0x00000096,0x00000008,0x00000013,0x00000013,0x00060021,0x0000009b,0x00000067, + 0x00000023,0x00000044,0x00000045,0x00040020,0x000000a4,0x00000007,0x00000049,0x00060021, + 0x000000a5,0x00000002,0x0000005d,0x00000013,0x000000a4,0x00040021,0x000000b0,0x00000002, + 0x0000005d,0x0004002b,0x00000008,0x000000c4,0x00000000,0x0004002b,0x00000008,0x000000c5, + 0x3f800000,0x0004002b,0x00000006,0x000000f3,0xff800000,0x0004002b,0x00000008,0x000000ff, + 0x3c4fcd9e,0x0004002b,0x00000008,0x00000104,0x3f560008,0x0004002b,0x00000008,0x0000010a, + 0x4196d014,0x0004002b,0x00000008,0x0000010d,0x41958000,0x0004002b,0x00000008,0x00000114, + 0x40c8e061,0x0004002b,0x00000008,0x0000011b,0x3d25aee6,0x0004002b,0x00000008,0x0000011c, + 0x3d9e8391,0x0004002b,0x00000008,0x0000011d,0x4019999a,0x0006002c,0x0000000e,0x0000011e, + 0x0000011b,0x0000011c,0x0000011d,0x0004002b,0x00000008,0x00000120,0x3f72a76e,0x0004002b, + 0x00000008,0x00000121,0x3d558919,0x0005002c,0x00000022,0x00000122,0x00000120,0x00000121, + 0x001d001e,0x0000013d,0x00000045,0x00000045,0x00000022,0x00000008,0x00000008,0x00000045, + 0x00000044,0x00000044,0x00000067,0x00000008,0x00000044,0x00000045,0x00000022,0x00000044, + 0x00000006,0x00000045,0x00000044,0x00000044,0x00000045,0x00000045,0x0000000e,0x00000006, + 0x00000022,0x00000008,0x00000044,0x00000022,0x00000022,0x00040020,0x0000013e,0x00000002, + 0x0000013d,0x0004003b,0x0000013e,0x0000013f,0x00000002,0x0004002b,0x00000044,0x00000140, + 0x00000001,0x00040020,0x00000141,0x00000002,0x00000045,0x0004002b,0x00000044,0x00000146, + 0x00000007,0x00040020,0x00000147,0x00000002,0x00000044,0x0004002b,0x00000044,0x0000014d, + 0x0000000a,0x0004002b,0x00000044,0x00000152,0x0000000e,0x00040020,0x00000153,0x00000002, + 0x00000006,0x0004002b,0x00000044,0x00000158,0x00000014,0x00040020,0x00000159,0x00000002, + 0x0000000e,0x0004002b,0x00000044,0x0000015e,0x00000015,0x0004002b,0x00000044,0x00000163, + 0x00000016,0x0004002b,0x00000006,0x00000164,0x00000000,0x00040020,0x00000165,0x00000002, + 0x00000008,0x0004002b,0x00000006,0x0000016a,0x00000001,0x00090019,0x0000016f,0x00000008, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000170, + 0x00000000,0x0000016f,0x0004003b,0x00000170,0x00000171,0x00000000,0x0004002b,0x00000044, + 0x00000174,0x00000000,0x00090019,0x00000179,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x0000017a,0x00000000,0x00000179,0x0004003b, + 0x0000017a,0x0000017b,0x00000000,0x0005002c,0x00000045,0x0000017d,0x00000140,0x00000174, + 0x00040017,0x0000017e,0x00000006,0x00000004,0x0004002b,0x00000006,0x00000181,0x0000000f, + 0x0004003b,0x00000170,0x00000186,0x00000000,0x0004003b,0x00000170,0x0000018e,0x00000000, + 0x00090019,0x00000194,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x00000195,0x00000000,0x00000194,0x0004003b,0x00000195,0x00000196, + 0x00000000,0x0004002b,0x00000008,0x000001a2,0x42a00000,0x0004002b,0x00000008,0x000001be, + 0x461c4000,0x0004002b,0x00000008,0x000001d4,0x3f000000,0x0005002c,0x00000022,0x000001d5, + 0x000001d4,0x000001d4,0x00040020,0x000001d7,0x00000007,0x00000086,0x0004002b,0x00000044, + 0x000001d9,0x00000002,0x0005002c,0x00000045,0x000001e2,0x00000174,0x00000174,0x0005002c, + 0x00000045,0x000001e5,0x00000174,0x00000140,0x0004002b,0x00000044,0x000001e7,0x00000003, + 0x0005002c,0x00000045,0x000001e8,0x00000140,0x00000140,0x00040017,0x0000020d,0x00000049, + 0x00000002,0x0004002b,0x00000008,0x0000022b,0x3dcccccd,0x0004002b,0x00000006,0x00000238, + 0x00000002,0x0007002c,0x00000067,0x00000255,0x000000c4,0x000000c4,0x000000c4,0x000000c4, + 0x0004002b,0x00000044,0x0000025d,0x00000004,0x0004002b,0x00000006,0x00000278,0x00000003, + 0x0004002b,0x00000008,0x000002ba,0x41200000,0x0004002b,0x00000008,0x000002bd,0x40400000, + 0x0004002b,0x00000044,0x000002d9,0x00000010,0x00030029,0x00000049,0x000002de,0x0004002b, + 0x00000044,0x000002ed,0x00000020,0x0004002b,0x00000044,0x000002fe,0x00000040,0x0003002a, + 0x00000049,0x00000309,0x0004002b,0x00000008,0x00000312,0x3a83126f,0x0006002c,0x0000000e, + 0x0000033c,0x000000c4,0x000000c4,0x000000c4,0x00040017,0x0000033d,0x00000049,0x00000003, + 0x00040017,0x00000395,0x00000006,0x00000003,0x00040020,0x00000396,0x00000001,0x00000395, + 0x0004003b,0x00000396,0x00000397,0x00000001,0x0004002b,0x00000008,0x0000039d,0x387fda40, + 0x0004002b,0x00000008,0x0000039e,0x477fe000,0x0004002b,0x00000008,0x0000039f,0x37801002, + 0x0002001a,0x000003a0,0x00040020,0x000003a1,0x00000000,0x000003a0,0x0004003b,0x000003a1, + 0x000003a2,0x00000000,0x0004002b,0x00000008,0x000003a3,0x7f7fffff,0x0004002b,0x00000008, + 0x000003a4,0x00800000,0x0004002b,0x00000006,0x000003a5,0x00000020,0x0004002b,0x00000006, + 0x000003a6,0x00000010,0x0004002b,0x00000006,0x000003a7,0x00000005,0x0004002b,0x00000006, + 0x000003a8,0x0000000a,0x0004002b,0x00000006,0x000003a9,0x80000000,0x0004002b,0x00000006, + 0x000003aa,0x0000001f,0x0004002b,0x00000006,0x000003ab,0x000003ff,0x0004002b,0x00000006, + 0x000003ac,0x00000015,0x0004002b,0x00000006,0x000003ad,0x00000008,0x0006002c,0x00000395, + 0x000003ae,0x000003ad,0x000003ad,0x0000016a,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000005d,0x0000039b,0x00000007,0x0004003d, + 0x00000395,0x00000398,0x00000397,0x0007004f,0x00000065,0x00000399,0x00000398,0x00000398, + 0x00000000,0x00000001,0x0004007c,0x00000045,0x0000039a,0x00000399,0x0003003e,0x0000039b, + 0x0000039a,0x00050039,0x00000002,0x0000039c,0x000000b2,0x0000039b,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x000000b4,0x0000000a,0x0004007c,0x00000008, + 0x000000b5,0x000000b4,0x000200fe,0x000000b5,0x00010038,0x00050036,0x0000000e,0x00000011, + 0x00000000,0x0000000f,0x00030037,0x0000000d,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x00000008,0x000000b8,0x00000010,0x00060050,0x0000000e,0x000000b9,0x000000b8,0x000000b8, + 0x000000b8,0x000200fe,0x000000b9,0x00010038,0x00050036,0x0000000e,0x00000018,0x00000000, + 0x00000014,0x00030037,0x00000013,0x00000015,0x00030037,0x00000013,0x00000016,0x00030037, + 0x0000000d,0x00000017,0x000200f8,0x00000019,0x0004003d,0x0000000e,0x000000bc,0x00000015, + 0x0004003d,0x0000000e,0x000000bd,0x00000016,0x0004003d,0x00000008,0x000000be,0x00000017, + 0x00060050,0x0000000e,0x000000bf,0x000000be,0x000000be,0x000000be,0x0008000c,0x0000000e, + 0x000000c0,0x00000001,0x0000002e,0x000000bc,0x000000bd,0x000000bf,0x000200fe,0x000000c0, + 0x00010038,0x00050036,0x00000008,0x0000001c,0x00000000,0x0000001a,0x00030037,0x0000000d, + 0x0000001b,0x000200f8,0x0000001d,0x0004003d,0x00000008,0x000000c3,0x0000001b,0x0008000c, + 0x00000008,0x000000c6,0x00000001,0x0000002b,0x000000c3,0x000000c4,0x000000c5,0x000200fe, + 0x000000c6,0x00010038,0x00050036,0x0000000e,0x00000020,0x00000000,0x0000001e,0x00030037, + 0x00000013,0x0000001f,0x000200f8,0x00000021,0x0004003b,0x0000000d,0x000000ca,0x00000007, + 0x0004003b,0x0000000d,0x000000cc,0x00000007,0x0004003d,0x0000000e,0x000000c9,0x0000001f, + 0x0003003e,0x000000ca,0x000000c4,0x00050039,0x0000000e,0x000000cb,0x00000011,0x000000ca, + 0x0003003e,0x000000cc,0x000000c5,0x00050039,0x0000000e,0x000000cd,0x00000011,0x000000cc, + 0x0008000c,0x0000000e,0x000000ce,0x00000001,0x0000002b,0x000000c9,0x000000cb,0x000000cd, + 0x000200fe,0x000000ce,0x00010038,0x00050036,0x00000022,0x00000026,0x00000000,0x00000024, + 0x00030037,0x00000023,0x00000025,0x000200f8,0x00000027,0x0004003d,0x00000022,0x000000d1, + 0x00000025,0x0006000c,0x00000022,0x000000d2,0x00000001,0x0000000a,0x000000d1,0x000200fe, + 0x000000d2,0x00010038,0x00050036,0x00000008,0x0000002b,0x00000000,0x00000028,0x00030037, + 0x0000000d,0x00000029,0x00030037,0x0000000d,0x0000002a,0x000200f8,0x0000002c,0x0004003d, + 0x00000008,0x000000d5,0x00000029,0x0004003d,0x00000008,0x000000d6,0x0000002a,0x0007000c, + 0x00000008,0x000000d7,0x00000001,0x00000025,0x000000d5,0x000000d6,0x000200fe,0x000000d7, + 0x00010038,0x00050036,0x00000008,0x0000002f,0x00000000,0x00000028,0x00030037,0x0000000d, + 0x0000002d,0x00030037,0x0000000d,0x0000002e,0x000200f8,0x00000030,0x0004003d,0x00000008, + 0x000000da,0x0000002d,0x0004003d,0x00000008,0x000000db,0x0000002e,0x0007000c,0x00000008, + 0x000000dc,0x00000001,0x00000028,0x000000da,0x000000db,0x000200fe,0x000000dc,0x00010038, + 0x00050036,0x00000008,0x00000033,0x00000000,0x00000028,0x00030037,0x0000000d,0x00000031, + 0x00030037,0x0000000d,0x00000032,0x000200f8,0x00000034,0x0004003d,0x00000008,0x000000df, + 0x00000031,0x0004003d,0x00000008,0x000000e0,0x00000032,0x0007000c,0x00000008,0x000000e1, + 0x00000001,0x0000001a,0x000000df,0x000000e0,0x000200fe,0x000000e1,0x00010038,0x00050036, + 0x0000000e,0x00000039,0x00000000,0x00000035,0x00030037,0x00000013,0x00000036,0x00030037, + 0x00000013,0x00000037,0x00030037,0x00000013,0x00000038,0x000200f8,0x0000003a,0x0004003b, + 0x00000013,0x000000e4,0x00000007,0x0004003d,0x0000000e,0x000000e5,0x00000036,0x0004007f, + 0x0000000e,0x000000e6,0x000000e5,0x0004003d,0x0000000e,0x000000e7,0x00000038,0x00050085, + 0x0000000e,0x000000e8,0x000000e6,0x000000e7,0x0004003d,0x0000000e,0x000000e9,0x00000038, + 0x00050081,0x0000000e,0x000000ea,0x000000e8,0x000000e9,0x0003003e,0x000000e4,0x000000ea, + 0x0004003d,0x0000000e,0x000000eb,0x00000036,0x0004003d,0x0000000e,0x000000ec,0x00000037, + 0x00050085,0x0000000e,0x000000ed,0x000000eb,0x000000ec,0x0004003d,0x0000000e,0x000000ee, + 0x000000e4,0x00050081,0x0000000e,0x000000ef,0x000000ed,0x000000ee,0x000200fe,0x000000ef, + 0x00010038,0x00050036,0x0000000e,0x0000003c,0x00000000,0x0000001e,0x00030037,0x00000013, + 0x0000003b,0x000200f8,0x0000003d,0x0004003b,0x00000007,0x000000f4,0x00000007,0x0004003b, + 0x0000000d,0x000000f6,0x00000007,0x0004003b,0x00000013,0x000000f9,0x00000007,0x0004003d, + 0x0000000e,0x000000f2,0x0000003b,0x0003003e,0x000000f4,0x000000f3,0x00050039,0x00000008, + 0x000000f5,0x0000000b,0x000000f4,0x0003003e,0x000000f6,0x000000f5,0x00050039,0x0000000e, + 0x000000f7,0x00000011,0x000000f6,0x00050085,0x0000000e,0x000000f8,0x000000f2,0x000000f7, + 0x0003003e,0x000000f9,0x000000f8,0x00050039,0x0000000e,0x000000fa,0x00000020,0x000000f9, + 0x000200fe,0x000000fa,0x00010038,0x00050036,0x0000000e,0x0000003f,0x00000000,0x0000001e, + 0x00030037,0x00000013,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x00000013,0x000000fd, + 0x00000007,0x0004003b,0x0000000d,0x00000100,0x00000007,0x0004003b,0x0000000d,0x00000105, + 0x00000007,0x0004003b,0x00000013,0x00000108,0x00000007,0x0004003b,0x0000000d,0x0000010b, + 0x00000007,0x0004003b,0x0000000d,0x0000010e,0x00000007,0x0004003b,0x0000000d,0x00000115, + 0x00000007,0x0004003d,0x0000000e,0x000000fe,0x0000003e,0x0003003e,0x00000100,0x000000ff, + 0x00050039,0x0000000e,0x00000101,0x00000011,0x00000100,0x0007000c,0x0000000e,0x00000102, + 0x00000001,0x0000001a,0x000000fe,0x00000101,0x0003003e,0x000000fd,0x00000102,0x0004003d, + 0x0000000e,0x00000103,0x000000fd,0x0003003e,0x00000105,0x00000104,0x00050039,0x0000000e, + 0x00000106,0x00000011,0x00000105,0x00050083,0x0000000e,0x00000107,0x00000103,0x00000106, + 0x0003003e,0x00000108,0x00000107,0x00050039,0x0000000e,0x00000109,0x00000020,0x00000108, + 0x0003003e,0x0000010b,0x0000010a,0x00050039,0x0000000e,0x0000010c,0x00000011,0x0000010b, + 0x0003003e,0x0000010e,0x0000010d,0x00050039,0x0000000e,0x0000010f,0x00000011,0x0000010e, + 0x0004003d,0x0000000e,0x00000110,0x000000fd,0x00050085,0x0000000e,0x00000111,0x0000010f, + 0x00000110,0x00050083,0x0000000e,0x00000112,0x0000010c,0x00000111,0x00050088,0x0000000e, + 0x00000113,0x00000109,0x00000112,0x0003003e,0x00000115,0x00000114,0x00050039,0x0000000e, + 0x00000116,0x00000011,0x00000115,0x0007000c,0x0000000e,0x00000117,0x00000001,0x0000001a, + 0x00000113,0x00000116,0x000200fe,0x00000117,0x00010038,0x00050036,0x0000000e,0x00000042, + 0x00000000,0x0000001e,0x00030037,0x00000013,0x00000041,0x000200f8,0x00000043,0x0004003b, + 0x00000013,0x0000011a,0x00000007,0x0004003b,0x00000023,0x0000011f,0x00000007,0x0004003b, + 0x00000013,0x00000127,0x00000007,0x0004003b,0x00000013,0x00000137,0x00000007,0x0004003b, + 0x00000013,0x00000138,0x00000007,0x0004003b,0x00000013,0x00000139,0x00000007,0x0003003e, + 0x0000011a,0x0000011e,0x0003003e,0x0000011f,0x00000122,0x0004003d,0x0000000e,0x00000123, + 0x00000041,0x0004003d,0x0000000e,0x00000124,0x0000011a,0x0008004f,0x0000000e,0x00000125, + 0x00000124,0x00000124,0x00000000,0x00000000,0x00000000,0x00050083,0x0000000e,0x00000126, + 0x00000123,0x00000125,0x0003003e,0x00000127,0x00000126,0x00050039,0x0000000e,0x00000128, + 0x0000003c,0x00000127,0x0004003d,0x0000000e,0x00000129,0x00000041,0x0004003d,0x0000000e, + 0x0000012a,0x0000011a,0x0008004f,0x0000000e,0x0000012b,0x0000012a,0x0000012a,0x00000001, + 0x00000001,0x00000001,0x00050085,0x0000000e,0x0000012c,0x00000129,0x0000012b,0x0004003d, + 0x0000000e,0x0000012d,0x00000041,0x0004003d,0x00000022,0x0000012e,0x0000011f,0x0008004f, + 0x0000000e,0x0000012f,0x0000012e,0x0000012e,0x00000000,0x00000000,0x00000000,0x00050085, + 0x0000000e,0x00000130,0x0000012d,0x0000012f,0x0004003d,0x00000022,0x00000131,0x0000011f, + 0x0008004f,0x0000000e,0x00000132,0x00000131,0x00000131,0x00000001,0x00000001,0x00000001, + 0x00050081,0x0000000e,0x00000133,0x00000130,0x00000132,0x0004003d,0x0000000e,0x00000134, + 0x0000011a,0x0008004f,0x0000000e,0x00000135,0x00000134,0x00000134,0x00000002,0x00000002, + 0x00000002,0x0007000c,0x0000000e,0x00000136,0x00000001,0x0000001a,0x00000133,0x00000135, + 0x0003003e,0x00000137,0x00000128,0x0003003e,0x00000138,0x0000012c,0x0003003e,0x00000139, + 0x00000136,0x00070039,0x0000000e,0x0000013a,0x00000039,0x00000137,0x00000138,0x00000139, + 0x000200fe,0x0000013a,0x00010038,0x00050036,0x00000045,0x00000047,0x00000000,0x00000046, + 0x000200f8,0x00000048,0x00050041,0x00000141,0x00000142,0x0000013f,0x00000140,0x0004003d, + 0x00000045,0x00000143,0x00000142,0x000200fe,0x00000143,0x00010038,0x00050036,0x00000049, + 0x0000004b,0x00000000,0x0000004a,0x000200f8,0x0000004c,0x00050041,0x00000147,0x00000148, + 0x0000013f,0x00000146,0x0004003d,0x00000044,0x00000149,0x00000148,0x000500aa,0x00000049, + 0x0000014a,0x00000149,0x00000140,0x000200fe,0x0000014a,0x00010038,0x00050036,0x00000044, + 0x0000004e,0x00000000,0x0000004d,0x000200f8,0x0000004f,0x00050041,0x00000147,0x0000014e, + 0x0000013f,0x0000014d,0x0004003d,0x00000044,0x0000014f,0x0000014e,0x000200fe,0x0000014f, + 0x00010038,0x00050036,0x00000006,0x00000051,0x00000000,0x00000050,0x000200f8,0x00000052, + 0x00050041,0x00000153,0x00000154,0x0000013f,0x00000152,0x0004003d,0x00000006,0x00000155, + 0x00000154,0x000200fe,0x00000155,0x00010038,0x00050036,0x0000000e,0x00000054,0x00000000, + 0x00000053,0x000200f8,0x00000055,0x00050041,0x00000159,0x0000015a,0x0000013f,0x00000158, + 0x0004003d,0x0000000e,0x0000015b,0x0000015a,0x000200fe,0x0000015b,0x00010038,0x00050036, + 0x00000006,0x00000056,0x00000000,0x00000050,0x000200f8,0x00000057,0x00050041,0x00000153, + 0x0000015f,0x0000013f,0x0000015e,0x0004003d,0x00000006,0x00000160,0x0000015f,0x000200fe, + 0x00000160,0x00010038,0x00050036,0x00000008,0x00000059,0x00000000,0x00000058,0x000200f8, + 0x0000005a,0x00060041,0x00000165,0x00000166,0x0000013f,0x00000163,0x00000164,0x0004003d, + 0x00000008,0x00000167,0x00000166,0x000200fe,0x00000167,0x00010038,0x00050036,0x00000008, + 0x0000005b,0x00000000,0x00000058,0x000200f8,0x0000005c,0x00060041,0x00000165,0x0000016b, + 0x0000013f,0x00000163,0x0000016a,0x0004003d,0x00000008,0x0000016c,0x0000016b,0x000200fe, + 0x0000016c,0x00010038,0x00050036,0x0000000e,0x00000060,0x00000000,0x0000005e,0x00030037, + 0x0000005d,0x0000005f,0x000200f8,0x00000061,0x0004003d,0x0000016f,0x00000172,0x00000171, + 0x0004003d,0x00000045,0x00000173,0x0000005f,0x0007005f,0x00000067,0x00000175,0x00000172, + 0x00000173,0x00000002,0x00000174,0x0008004f,0x0000000e,0x00000176,0x00000175,0x00000175, + 0x00000000,0x00000001,0x00000002,0x000200fe,0x00000176,0x00010038,0x00050036,0x00000049, + 0x00000062,0x00000000,0x0000004a,0x000200f8,0x00000063,0x0004003d,0x00000179,0x0000017c, + 0x0000017b,0x0007005f,0x0000017e,0x0000017f,0x0000017c,0x0000017d,0x00000002,0x00000174, + 0x00050051,0x00000006,0x00000180,0x0000017f,0x00000000,0x000500c7,0x00000006,0x00000182, + 0x00000180,0x00000181,0x000500ab,0x00000049,0x00000183,0x00000182,0x00000164,0x000200fe, + 0x00000183,0x00010038,0x00050036,0x00000067,0x0000006b,0x00000000,0x00000068,0x00030037, + 0x00000064,0x00000069,0x00030037,0x00000066,0x0000006a,0x000200f8,0x0000006c,0x0004003d, + 0x0000016f,0x00000187,0x00000186,0x0004003d,0x00000065,0x00000188,0x0000006a,0x0004007c, + 0x00000045,0x00000189,0x00000188,0x0004003d,0x00000044,0x0000018a,0x00000069,0x0007005f, + 0x00000067,0x0000018b,0x00000187,0x00000189,0x00000002,0x0000018a,0x000200fe,0x0000018b, + 0x00010038,0x00050036,0x00000067,0x0000006f,0x00000000,0x0000006d,0x00030037,0x0000005d, + 0x0000006e,0x000200f8,0x00000070,0x0004003d,0x0000016f,0x0000018f,0x0000018e,0x0004003d, + 0x00000045,0x00000190,0x0000006e,0x0007005f,0x00000067,0x00000191,0x0000018f,0x00000190, + 0x00000002,0x00000174,0x000200fe,0x00000191,0x00010038,0x00050036,0x00000067,0x00000072, + 0x00000000,0x0000006d,0x00030037,0x0000005d,0x00000071,0x000200f8,0x00000073,0x0004003d, + 0x00000194,0x00000197,0x00000196,0x0004003d,0x00000045,0x00000198,0x00000071,0x00050062, + 0x00000067,0x00000199,0x00000197,0x00000198,0x000200fe,0x00000199,0x00010038,0x00050036, + 0x00000002,0x00000078,0x00000000,0x00000075,0x00030037,0x0000005d,0x00000076,0x00030037, + 0x00000074,0x00000077,0x000200f8,0x00000079,0x0004003d,0x00000194,0x0000019c,0x00000196, + 0x0004003d,0x00000045,0x0000019d,0x00000076,0x0004003d,0x00000067,0x0000019e,0x00000077, + 0x00040063,0x0000019c,0x0000019d,0x0000019e,0x000100fd,0x00010038,0x00050036,0x0000000e, + 0x0000007e,0x00000000,0x0000007a,0x00030037,0x00000013,0x0000007b,0x00030037,0x0000000d, + 0x0000007c,0x00030037,0x0000000d,0x0000007d,0x000200f8,0x0000007f,0x0004003b,0x00000013, + 0x0000019f,0x00000007,0x0004003b,0x0000000d,0x000001a4,0x00000007,0x0004003b,0x0000000d, + 0x000001ac,0x00000007,0x0004003d,0x0000000e,0x000001a0,0x0000007b,0x0004003d,0x00000008, + 0x000001a1,0x0000007c,0x00050088,0x00000008,0x000001a3,0x000001a1,0x000001a2,0x0003003e, + 0x000001a4,0x000001a3,0x00050039,0x0000000e,0x000001a5,0x00000011,0x000001a4,0x00050083, + 0x0000000e,0x000001a6,0x000001a0,0x000001a5,0x0003003e,0x0000019f,0x000001a6,0x0004003d, + 0x0000000e,0x000001a7,0x0000019f,0x0004003d,0x00000008,0x000001a8,0x0000007d,0x0004003d, + 0x00000008,0x000001a9,0x0000007c,0x00050083,0x00000008,0x000001aa,0x000001a8,0x000001a9, + 0x00050088,0x00000008,0x000001ab,0x000001aa,0x000001a2,0x0003003e,0x000001ac,0x000001ab, + 0x00050039,0x0000000e,0x000001ad,0x00000011,0x000001ac,0x00050088,0x0000000e,0x000001ae, + 0x000001a7,0x000001ad,0x000200fe,0x000001ae,0x00010038,0x00050036,0x0000000e,0x00000081, + 0x00000000,0x0000001e,0x00030037,0x00000013,0x00000080,0x000200f8,0x00000082,0x0004003b, + 0x00000013,0x000001b6,0x00000007,0x0004003b,0x00000013,0x000001b7,0x00000007,0x0004003b, + 0x00000013,0x000001bb,0x00000007,0x0004003b,0x00000013,0x000001c5,0x00000007,0x0004003b, + 0x0000000d,0x000001c7,0x00000007,0x0004003b,0x0000000d,0x000001c8,0x00000007,0x00040039, + 0x00000006,0x000001b1,0x00000056,0x000300f7,0x000001b5,0x00000000,0x000900fb,0x000001b1, + 0x000001b5,0x00000000,0x000001b2,0x00000001,0x000001b3,0x00000002,0x000001b4,0x000200f8, + 0x000001b2,0x0004003d,0x0000000e,0x000001b8,0x00000080,0x0003003e,0x000001b7,0x000001b8, + 0x00050039,0x0000000e,0x000001b9,0x00000042,0x000001b7,0x0003003e,0x000001b6,0x000001b9, + 0x000200f9,0x000001b5,0x000200f8,0x000001b3,0x0004003d,0x0000000e,0x000001bc,0x00000080, + 0x0003003e,0x000001bb,0x000001bc,0x00050039,0x0000000e,0x000001bd,0x0000003f,0x000001bb, + 0x00040039,0x00000008,0x000001bf,0x0000005b,0x00050088,0x00000008,0x000001c0,0x000001be, + 0x000001bf,0x0005008e,0x0000000e,0x000001c1,0x000001bd,0x000001c0,0x0003003e,0x000001b6, + 0x000001c1,0x000200f9,0x000001b5,0x000200f8,0x000001b4,0x00040039,0x00000008,0x000001c3, + 0x00000059,0x00040039,0x00000008,0x000001c4,0x0000005b,0x0004003d,0x0000000e,0x000001c6, + 0x00000080,0x0003003e,0x000001c5,0x000001c6,0x0003003e,0x000001c7,0x000001c3,0x0003003e, + 0x000001c8,0x000001c4,0x00070039,0x0000000e,0x000001c9,0x0000007e,0x000001c5,0x000001c7, + 0x000001c8,0x0003003e,0x000001b6,0x000001c9,0x000200f9,0x000001b5,0x000200f8,0x000001b5, + 0x0004003d,0x0000000e,0x000001cc,0x000001b6,0x000200fe,0x000001cc,0x00010038,0x00050036, + 0x00000086,0x0000008a,0x00000000,0x00000087,0x00030037,0x00000023,0x00000088,0x00030037, + 0x0000005d,0x00000089,0x000200f8,0x0000008b,0x0004003b,0x00000023,0x000001cf,0x00000007, + 0x0004003b,0x000001d7,0x000001d8,0x00000007,0x0004003b,0x00000023,0x000001de,0x00000007, + 0x0004003b,0x00000023,0x000001df,0x00000007,0x0004003d,0x00000022,0x000001d0,0x00000088, + 0x0004003d,0x00000045,0x000001d1,0x00000089,0x0004006f,0x00000022,0x000001d2,0x000001d1, + 0x00050085,0x00000022,0x000001d3,0x000001d0,0x000001d2,0x00050083,0x00000022,0x000001d6, + 0x000001d3,0x000001d5,0x0003003e,0x000001cf,0x000001d6,0x0004003d,0x00000022,0x000001da, + 0x000001cf,0x0006000c,0x00000022,0x000001db,0x00000001,0x00000008,0x000001da,0x0004006e, + 0x00000045,0x000001dc,0x000001db,0x00050041,0x0000005d,0x000001dd,0x000001d8,0x000001d9, + 0x0003003e,0x000001dd,0x000001dc,0x0004003d,0x00000022,0x000001e0,0x000001cf,0x0003003e, + 0x000001df,0x000001e0,0x00050039,0x00000022,0x000001e1,0x00000026,0x000001df,0x0003003e, + 0x000001de,0x000001e1,0x00060041,0x0000005d,0x000001e3,0x000001d8,0x00000174,0x00000174, + 0x0003003e,0x000001e3,0x000001e2,0x00060041,0x0000005d,0x000001e4,0x000001d8,0x00000174, + 0x00000140,0x0003003e,0x000001e4,0x0000017d,0x00060041,0x0000005d,0x000001e6,0x000001d8, + 0x00000174,0x000001d9,0x0003003e,0x000001e6,0x000001e5,0x00060041,0x0000005d,0x000001e9, + 0x000001d8,0x00000174,0x000001e7,0x0003003e,0x000001e9,0x000001e8,0x00050041,0x0000000d, + 0x000001ea,0x000001de,0x00000164,0x0004003d,0x00000008,0x000001eb,0x000001ea,0x00050083, + 0x00000008,0x000001ec,0x000000c5,0x000001eb,0x00050041,0x0000000d,0x000001ed,0x000001de, + 0x0000016a,0x0004003d,0x00000008,0x000001ee,0x000001ed,0x00050083,0x00000008,0x000001ef, + 0x000000c5,0x000001ee,0x00050085,0x00000008,0x000001f0,0x000001ec,0x000001ef,0x00060041, + 0x0000000d,0x000001f1,0x000001d8,0x00000140,0x00000174,0x0003003e,0x000001f1,0x000001f0, + 0x00050041,0x0000000d,0x000001f2,0x000001de,0x00000164,0x0004003d,0x00000008,0x000001f3, + 0x000001f2,0x00050041,0x0000000d,0x000001f4,0x000001de,0x0000016a,0x0004003d,0x00000008, + 0x000001f5,0x000001f4,0x00050083,0x00000008,0x000001f6,0x000000c5,0x000001f5,0x00050085, + 0x00000008,0x000001f7,0x000001f3,0x000001f6,0x00060041,0x0000000d,0x000001f8,0x000001d8, + 0x00000140,0x00000140,0x0003003e,0x000001f8,0x000001f7,0x00050041,0x0000000d,0x000001f9, + 0x000001de,0x00000164,0x0004003d,0x00000008,0x000001fa,0x000001f9,0x00050083,0x00000008, + 0x000001fb,0x000000c5,0x000001fa,0x00050041,0x0000000d,0x000001fc,0x000001de,0x0000016a, + 0x0004003d,0x00000008,0x000001fd,0x000001fc,0x00050085,0x00000008,0x000001fe,0x000001fb, + 0x000001fd,0x00060041,0x0000000d,0x000001ff,0x000001d8,0x00000140,0x000001d9,0x0003003e, + 0x000001ff,0x000001fe,0x00050041,0x0000000d,0x00000200,0x000001de,0x00000164,0x0004003d, + 0x00000008,0x00000201,0x00000200,0x00050041,0x0000000d,0x00000202,0x000001de,0x0000016a, + 0x0004003d,0x00000008,0x00000203,0x00000202,0x00050085,0x00000008,0x00000204,0x00000201, + 0x00000203,0x00060041,0x0000000d,0x00000205,0x000001d8,0x00000140,0x000001e7,0x0003003e, + 0x00000205,0x00000204,0x0004003d,0x00000086,0x00000206,0x000001d8,0x000200fe,0x00000206, + 0x00010038,0x00050036,0x00000049,0x0000008f,0x00000000,0x0000008c,0x00030037,0x0000005d, + 0x0000008d,0x00030037,0x0000005d,0x0000008e,0x000200f8,0x00000090,0x0004003d,0x00000045, + 0x00000209,0x0000008d,0x0004007c,0x00000065,0x0000020a,0x00000209,0x0004003d,0x00000045, + 0x0000020b,0x0000008e,0x0004007c,0x00000065,0x0000020c,0x0000020b,0x000500b0,0x0000020d, + 0x0000020e,0x0000020a,0x0000020c,0x0004009b,0x00000049,0x0000020f,0x0000020e,0x000200fe, + 0x0000020f,0x00010038,0x00050036,0x00000008,0x00000094,0x00000000,0x00000091,0x00030037, + 0x00000008,0x00000092,0x00030037,0x00000008,0x00000093,0x000200f8,0x00000095,0x0004003b, + 0x0000000d,0x00000212,0x00000007,0x0004003b,0x0000000d,0x00000213,0x00000007,0x0004003b, + 0x0000000d,0x00000214,0x00000007,0x0004003b,0x0000000d,0x00000218,0x00000007,0x0004003b, + 0x0000000d,0x0000021b,0x00000007,0x0004003b,0x0000000d,0x0000021c,0x00000007,0x0003003e, + 0x00000213,0x00000092,0x0003003e,0x00000214,0x00000093,0x00060039,0x00000008,0x00000215, + 0x0000002f,0x00000213,0x00000214,0x0003003e,0x00000212,0x00000215,0x0004003d,0x00000008, + 0x00000216,0x00000212,0x000500b7,0x00000049,0x00000217,0x00000216,0x000000c4,0x000300f7, + 0x0000021a,0x00000000,0x000400fa,0x00000217,0x00000219,0x00000220,0x000200f8,0x00000219, + 0x0003003e,0x0000021b,0x00000092,0x0003003e,0x0000021c,0x00000093,0x00060039,0x00000008, + 0x0000021d,0x0000002b,0x0000021b,0x0000021c,0x0004003d,0x00000008,0x0000021e,0x00000212, + 0x00050088,0x00000008,0x0000021f,0x0000021d,0x0000021e,0x0003003e,0x00000218,0x0000021f, + 0x000200f9,0x0000021a,0x000200f8,0x00000220,0x0003003e,0x00000218,0x000000c4,0x000200f9, + 0x0000021a,0x000200f8,0x0000021a,0x0004003d,0x00000008,0x00000221,0x00000218,0x000200fe, + 0x00000221,0x00010038,0x00050036,0x00000008,0x00000099,0x00000000,0x00000096,0x00030037, + 0x00000013,0x00000097,0x00030037,0x00000013,0x00000098,0x000200f8,0x0000009a,0x0004003b, + 0x00000013,0x00000224,0x00000007,0x0004003b,0x0000000d,0x0000022d,0x00000007,0x0004003b, + 0x0000000d,0x00000236,0x00000007,0x0004003b,0x0000000d,0x00000240,0x00000007,0x0004003b, + 0x00000013,0x00000243,0x00000007,0x00050041,0x0000000d,0x00000225,0x00000097,0x00000164, + 0x0004003d,0x00000008,0x00000226,0x00000225,0x00050041,0x0000000d,0x00000227,0x00000098, + 0x00000164,0x0004003d,0x00000008,0x00000228,0x00000227,0x00060039,0x00000008,0x00000229, + 0x00000094,0x00000226,0x00000228,0x00050083,0x00000008,0x0000022a,0x000000c5,0x00000229, + 0x00050088,0x00000008,0x0000022c,0x0000022a,0x0000022b,0x0003003e,0x0000022d,0x0000022c, + 0x00050039,0x00000008,0x0000022e,0x0000001c,0x0000022d,0x00050041,0x0000000d,0x0000022f, + 0x00000097,0x0000016a,0x0004003d,0x00000008,0x00000230,0x0000022f,0x00050041,0x0000000d, + 0x00000231,0x00000098,0x0000016a,0x0004003d,0x00000008,0x00000232,0x00000231,0x00060039, + 0x00000008,0x00000233,0x00000094,0x00000230,0x00000232,0x00050083,0x00000008,0x00000234, + 0x000000c5,0x00000233,0x00050088,0x00000008,0x00000235,0x00000234,0x0000022b,0x0003003e, + 0x00000236,0x00000235,0x00050039,0x00000008,0x00000237,0x0000001c,0x00000236,0x00050041, + 0x0000000d,0x00000239,0x00000097,0x00000238,0x0004003d,0x00000008,0x0000023a,0x00000239, + 0x00050041,0x0000000d,0x0000023b,0x00000098,0x00000238,0x0004003d,0x00000008,0x0000023c, + 0x0000023b,0x00060039,0x00000008,0x0000023d,0x00000094,0x0000023a,0x0000023c,0x00050083, + 0x00000008,0x0000023e,0x000000c5,0x0000023d,0x00050088,0x00000008,0x0000023f,0x0000023e, + 0x0000022b,0x0003003e,0x00000240,0x0000023f,0x00050039,0x00000008,0x00000241,0x0000001c, + 0x00000240,0x00060050,0x0000000e,0x00000242,0x0000022e,0x00000237,0x00000241,0x0003003e, + 0x00000243,0x00000242,0x00050039,0x0000000e,0x00000244,0x00000020,0x00000243,0x0003003e, + 0x00000224,0x00000244,0x00050041,0x0000000d,0x00000245,0x00000224,0x00000164,0x0004003d, + 0x00000008,0x00000246,0x00000245,0x00050041,0x0000000d,0x00000247,0x00000224,0x0000016a, + 0x0004003d,0x00000008,0x00000248,0x00000247,0x00050041,0x0000000d,0x00000249,0x00000224, + 0x00000238,0x0004003d,0x00000008,0x0000024a,0x00000249,0x0007000c,0x00000008,0x0000024b, + 0x00000001,0x00000028,0x00000248,0x0000024a,0x0007000c,0x00000008,0x0000024c,0x00000001, + 0x00000028,0x00000246,0x0000024b,0x000200fe,0x0000024c,0x00010038,0x00050036,0x00000067, + 0x0000009f,0x00000000,0x0000009b,0x00030037,0x00000023,0x0000009c,0x00030037,0x00000044, + 0x0000009d,0x00030037,0x00000045,0x0000009e,0x000200f8,0x000000a0,0x0004003b,0x000001d7, + 0x0000024f,0x00000007,0x0004003b,0x00000023,0x00000250,0x00000007,0x0004003b,0x0000005d, + 0x00000252,0x00000007,0x0004003b,0x00000074,0x00000254,0x00000007,0x0004003b,0x00000064, + 0x00000256,0x00000007,0x0004003b,0x0000005d,0x0000025f,0x00000007,0x0004003b,0x0000005d, + 0x00000263,0x00000007,0x0004003b,0x0000005d,0x00000268,0x00000007,0x0004003b,0x0000005d, + 0x0000026a,0x00000007,0x0004003b,0x00000074,0x0000026e,0x00000007,0x0004003b,0x00000064, + 0x00000271,0x00000007,0x0004003b,0x00000066,0x00000272,0x00000007,0x0004003b,0x0000000d, + 0x00000274,0x00000007,0x0004003d,0x00000022,0x00000251,0x0000009c,0x0003003e,0x00000250, + 0x00000251,0x0003003e,0x00000252,0x0000009e,0x00060039,0x00000086,0x00000253,0x0000008a, + 0x00000250,0x00000252,0x0003003e,0x0000024f,0x00000253,0x0003003e,0x00000254,0x00000255, + 0x0003003e,0x00000256,0x00000174,0x000200f9,0x00000257,0x000200f8,0x00000257,0x000400f6, + 0x00000259,0x0000025a,0x00000000,0x000200f9,0x0000025b,0x000200f8,0x0000025b,0x0004003d, + 0x00000044,0x0000025c,0x00000256,0x000500b1,0x00000049,0x0000025e,0x0000025c,0x0000025d, + 0x000400fa,0x0000025e,0x00000258,0x00000259,0x000200f8,0x00000258,0x0004003d,0x00000044, + 0x00000260,0x00000256,0x00060041,0x0000005d,0x00000261,0x0000024f,0x00000174,0x00000260, + 0x0004003d,0x00000045,0x00000262,0x00000261,0x0003003e,0x0000025f,0x00000262,0x00050041, + 0x0000005d,0x00000264,0x0000024f,0x000001d9,0x0004003d,0x00000045,0x00000265,0x00000264, + 0x0004003d,0x00000045,0x00000266,0x0000025f,0x00050080,0x00000045,0x00000267,0x00000265, + 0x00000266,0x0003003e,0x00000263,0x00000267,0x0004003d,0x00000045,0x00000269,0x00000263, + 0x0003003e,0x00000268,0x00000269,0x0003003e,0x0000026a,0x0000009e,0x00060039,0x00000049, + 0x0000026b,0x0000008f,0x00000268,0x0000026a,0x000300f7,0x0000026d,0x00000000,0x000400fa, + 0x0000026b,0x0000026c,0x0000026d,0x000200f8,0x0000026c,0x0004003d,0x00000045,0x0000026f, + 0x00000263,0x0004007c,0x00000065,0x00000270,0x0000026f,0x0003003e,0x00000271,0x0000009d, + 0x0003003e,0x00000272,0x00000270,0x00060039,0x00000067,0x00000273,0x0000006b,0x00000271, + 0x00000272,0x0003003e,0x0000026e,0x00000273,0x0004003d,0x00000044,0x00000275,0x00000256, + 0x00060041,0x0000000d,0x00000276,0x0000024f,0x00000140,0x00000275,0x0004003d,0x00000008, + 0x00000277,0x00000276,0x00050041,0x0000000d,0x00000279,0x0000026e,0x00000278,0x0004003d, + 0x00000008,0x0000027a,0x00000279,0x000500ba,0x00000049,0x0000027b,0x0000027a,0x000000c4, + 0x000600a9,0x00000008,0x0000027c,0x0000027b,0x000000c5,0x000000c4,0x00050085,0x00000008, + 0x0000027d,0x00000277,0x0000027c,0x0003003e,0x00000274,0x0000027d,0x0004003d,0x00000067, + 0x0000027e,0x0000026e,0x0008004f,0x0000000e,0x0000027f,0x0000027e,0x0000027e,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000280,0x00000274,0x0005008e,0x0000000e, + 0x00000281,0x0000027f,0x00000280,0x0004003d,0x00000008,0x00000282,0x00000274,0x00050051, + 0x00000008,0x00000283,0x00000281,0x00000000,0x00050051,0x00000008,0x00000284,0x00000281, + 0x00000001,0x00050051,0x00000008,0x00000285,0x00000281,0x00000002,0x00070050,0x00000067, + 0x00000286,0x00000283,0x00000284,0x00000285,0x00000282,0x0004003d,0x00000067,0x00000287, + 0x00000254,0x00050081,0x00000067,0x00000288,0x00000287,0x00000286,0x0003003e,0x00000254, + 0x00000288,0x000200f9,0x0000026d,0x000200f8,0x0000026d,0x000200f9,0x0000025a,0x000200f8, + 0x0000025a,0x0004003d,0x00000044,0x00000289,0x00000256,0x00050080,0x00000044,0x0000028a, + 0x00000289,0x00000140,0x0003003e,0x00000256,0x0000028a,0x000200f9,0x00000257,0x000200f8, + 0x00000259,0x0004003d,0x00000067,0x0000028b,0x00000254,0x000200fe,0x0000028b,0x00010038, + 0x00050036,0x0000000e,0x000000a2,0x00000000,0x0000005e,0x00030037,0x0000005d,0x000000a1, + 0x000200f8,0x000000a3,0x0004003b,0x00000023,0x0000028e,0x00000007,0x0004003b,0x00000074, + 0x00000296,0x00000007,0x0004003b,0x0000000d,0x00000297,0x00000007,0x0004003b,0x0000005d, + 0x00000298,0x00000007,0x0004003b,0x00000064,0x0000029a,0x00000007,0x0004003b,0x00000074, + 0x000002a5,0x00000007,0x0004003b,0x00000023,0x000002a8,0x00000007,0x0004003b,0x00000013, + 0x000002b0,0x00000007,0x0004003b,0x0000000d,0x000002b7,0x00000007,0x0004003b,0x0000000d, + 0x000002be,0x00000007,0x0004003b,0x0000000d,0x000002bf,0x00000007,0x0004003d,0x00000045, + 0x0000028f,0x000000a1,0x0004006f,0x00000022,0x00000290,0x0000028f,0x00050050,0x00000022, + 0x00000291,0x000001d4,0x000001d4,0x00050081,0x00000022,0x00000292,0x00000290,0x00000291, + 0x00040039,0x00000045,0x00000293,0x00000047,0x0004006f,0x00000022,0x00000294,0x00000293, + 0x00050088,0x00000022,0x00000295,0x00000292,0x00000294,0x0003003e,0x0000028e,0x00000295, + 0x0003003e,0x00000296,0x00000255,0x0003003e,0x00000297,0x000000c4,0x00040039,0x00000045, + 0x00000299,0x00000047,0x0003003e,0x00000298,0x00000299,0x0003003e,0x0000029a,0x00000174, + 0x000200f9,0x0000029b,0x000200f8,0x0000029b,0x000400f6,0x0000029d,0x0000029e,0x00000000, + 0x000200f9,0x0000029f,0x000200f8,0x0000029f,0x0004003d,0x00000044,0x000002a0,0x0000029a, + 0x000500b1,0x00000049,0x000002a1,0x000002a0,0x0000014d,0x000400fa,0x000002a1,0x0000029c, + 0x0000029d,0x000200f8,0x0000029c,0x0004003d,0x00000045,0x000002a2,0x00000298,0x00050050, + 0x00000045,0x000002a3,0x000001d9,0x000001d9,0x00050087,0x00000045,0x000002a4,0x000002a2, + 0x000002a3,0x0003003e,0x00000298,0x000002a4,0x0004003d,0x00000044,0x000002a6,0x0000029a, + 0x0004003d,0x00000045,0x000002a7,0x00000298,0x0004003d,0x00000022,0x000002a9,0x0000028e, + 0x0003003e,0x000002a8,0x000002a9,0x00070039,0x00000067,0x000002aa,0x0000009f,0x000002a8, + 0x000002a6,0x000002a7,0x0003003e,0x000002a5,0x000002aa,0x00050041,0x0000000d,0x000002ab, + 0x000002a5,0x00000278,0x0004003d,0x00000008,0x000002ac,0x000002ab,0x000500ba,0x00000049, + 0x000002ad,0x000002ac,0x000000c4,0x000300f7,0x000002af,0x00000000,0x000400fa,0x000002ad, + 0x000002ae,0x000002af,0x000200f8,0x000002ae,0x0004003d,0x00000067,0x000002b1,0x000002a5, + 0x0008004f,0x0000000e,0x000002b2,0x000002b1,0x000002b1,0x00000000,0x00000001,0x00000002, + 0x00050041,0x0000000d,0x000002b3,0x000002a5,0x00000278,0x0004003d,0x00000008,0x000002b4, + 0x000002b3,0x00060050,0x0000000e,0x000002b5,0x000002b4,0x000002b4,0x000002b4,0x00050088, + 0x0000000e,0x000002b6,0x000002b2,0x000002b5,0x0003003e,0x000002b0,0x000002b6,0x0004003d, + 0x00000044,0x000002b8,0x0000029a,0x0004006f,0x00000008,0x000002b9,0x000002b8,0x00050088, + 0x00000008,0x000002bb,0x000002b9,0x000002ba,0x00050083,0x00000008,0x000002bc,0x000000c5, + 0x000002bb,0x0003003e,0x000002be,0x000002bc,0x0003003e,0x000002bf,0x000002bd,0x00060039, + 0x00000008,0x000002c0,0x00000033,0x000002be,0x000002bf,0x00050041,0x0000000d,0x000002c1, + 0x000002a5,0x00000278,0x0004003d,0x00000008,0x000002c2,0x000002c1,0x00050085,0x00000008, + 0x000002c3,0x000002c0,0x000002c2,0x0003003e,0x000002b7,0x000002c3,0x0004003d,0x0000000e, + 0x000002c4,0x000002b0,0x00050051,0x00000008,0x000002c5,0x000002c4,0x00000000,0x00050051, + 0x00000008,0x000002c6,0x000002c4,0x00000001,0x00050051,0x00000008,0x000002c7,0x000002c4, + 0x00000002,0x00070050,0x00000067,0x000002c8,0x000002c5,0x000002c6,0x000002c7,0x000000c5, + 0x0004003d,0x00000008,0x000002c9,0x000002b7,0x0005008e,0x00000067,0x000002ca,0x000002c8, + 0x000002c9,0x0004003d,0x00000067,0x000002cb,0x00000296,0x00050081,0x00000067,0x000002cc, + 0x000002cb,0x000002ca,0x0003003e,0x00000296,0x000002cc,0x000200f9,0x000002af,0x000200f8, + 0x000002af,0x000200f9,0x0000029e,0x000200f8,0x0000029e,0x0004003d,0x00000044,0x000002cd, + 0x0000029a,0x00050080,0x00000044,0x000002ce,0x000002cd,0x00000140,0x0003003e,0x0000029a, + 0x000002ce,0x000200f9,0x0000029b,0x000200f8,0x0000029d,0x0004003d,0x00000067,0x000002cf, + 0x00000296,0x0008004f,0x0000000e,0x000002d0,0x000002cf,0x000002cf,0x00000000,0x00000001, + 0x00000002,0x00050041,0x0000000d,0x000002d1,0x00000296,0x00000278,0x0004003d,0x00000008, + 0x000002d2,0x000002d1,0x00060050,0x0000000e,0x000002d3,0x000002d2,0x000002d2,0x000002d2, + 0x00050088,0x0000000e,0x000002d4,0x000002d0,0x000002d3,0x000200fe,0x000002d4,0x00010038, + 0x00050036,0x00000002,0x000000a9,0x00000000,0x000000a5,0x00030037,0x0000005d,0x000000a6, + 0x00030037,0x00000013,0x000000a7,0x00030037,0x000000a4,0x000000a8,0x000200f8,0x000000aa, + 0x00050041,0x00000064,0x000002d7,0x000000a6,0x00000164,0x0004003d,0x00000044,0x000002d8, + 0x000002d7,0x000500b1,0x00000049,0x000002da,0x000002d8,0x000002d9,0x000300f7,0x000002dc, + 0x00000000,0x000400fa,0x000002da,0x000002db,0x000002df,0x000200f8,0x000002db,0x00050041, + 0x0000000d,0x000002dd,0x000000a7,0x0000016a,0x0003003e,0x000002dd,0x000000c5,0x0003003e, + 0x000000a8,0x000002de,0x000200f9,0x000002dc,0x000200f8,0x000002df,0x00050041,0x00000064, + 0x000002e0,0x000000a6,0x00000164,0x0004003d,0x00000044,0x000002e1,0x000002e0,0x00040039, + 0x00000045,0x000002e2,0x00000047,0x00050051,0x00000044,0x000002e3,0x000002e2,0x00000000, + 0x00050082,0x00000044,0x000002e4,0x000002e3,0x000002d9,0x000500ad,0x00000049,0x000002e5, + 0x000002e1,0x000002e4,0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002e5,0x000002e6, + 0x000002e7,0x000200f8,0x000002e6,0x00040039,0x0000000e,0x000002e8,0x00000054,0x0004003d, + 0x0000000e,0x000002e9,0x000000a7,0x00050081,0x0000000e,0x000002ea,0x000002e9,0x000002e8, + 0x0003003e,0x000000a7,0x000002ea,0x0003003e,0x000000a8,0x000002de,0x000200f9,0x000002e7, + 0x000200f8,0x000002e7,0x000200f9,0x000002dc,0x000200f8,0x000002dc,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000ae,0x00000000,0x000000a5,0x00030037,0x0000005d,0x000000ab, + 0x00030037,0x00000013,0x000000ac,0x00030037,0x000000a4,0x000000ad,0x000200f8,0x000000af, + 0x00050041,0x00000064,0x000002eb,0x000000ab,0x0000016a,0x0004003d,0x00000044,0x000002ec, + 0x000002eb,0x000500b1,0x00000049,0x000002ee,0x000002ec,0x000002ed,0x000300f7,0x000002f0, + 0x00000000,0x000400fa,0x000002ee,0x000002ef,0x000002f0,0x000200f8,0x000002ef,0x00040039, + 0x00000049,0x000002f1,0x0000004b,0x000200f9,0x000002f0,0x000200f8,0x000002f0,0x000700f5, + 0x00000049,0x000002f2,0x000002ee,0x000000af,0x000002f1,0x000002ef,0x000300f7,0x000002f4, + 0x00000000,0x000400fa,0x000002f2,0x000002f3,0x000002f6,0x000200f8,0x000002f3,0x00050041, + 0x0000000d,0x000002f5,0x000000ac,0x00000164,0x0003003e,0x000002f5,0x000000c5,0x0003003e, + 0x000000ad,0x000002de,0x000200f9,0x000002f4,0x000200f8,0x000002f6,0x00050041,0x00000064, + 0x000002f7,0x000000ab,0x0000016a,0x0004003d,0x00000044,0x000002f8,0x000002f7,0x000500ad, + 0x00000049,0x000002f9,0x000002f8,0x000002ed,0x000300f7,0x000002fb,0x00000000,0x000400fa, + 0x000002f9,0x000002fa,0x000002fb,0x000200f8,0x000002fa,0x00050041,0x00000064,0x000002fc, + 0x000000ab,0x0000016a,0x0004003d,0x00000044,0x000002fd,0x000002fc,0x000500b1,0x00000049, + 0x000002ff,0x000002fd,0x000002fe,0x000200f9,0x000002fb,0x000200f8,0x000002fb,0x000700f5, + 0x00000049,0x00000300,0x000002f9,0x000002f6,0x000002ff,0x000002fa,0x000300f7,0x00000302, + 0x00000000,0x000400fa,0x00000300,0x00000301,0x00000302,0x000200f8,0x00000301,0x00040039, + 0x00000049,0x00000303,0x00000062,0x000200f9,0x00000302,0x000200f8,0x00000302,0x000700f5, + 0x00000049,0x00000304,0x00000300,0x000002fb,0x00000303,0x00000301,0x000300f7,0x00000306, + 0x00000000,0x000400fa,0x00000304,0x00000305,0x00000306,0x000200f8,0x00000305,0x00050041, + 0x0000000d,0x00000307,0x000000ac,0x00000238,0x0003003e,0x00000307,0x000000c5,0x0003003e, + 0x000000ad,0x000002de,0x000200f9,0x00000306,0x000200f8,0x00000306,0x000200f9,0x000002f4, + 0x000200f8,0x000002f4,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b2,0x00000000, + 0x000000b0,0x00030037,0x0000005d,0x000000b1,0x000200f8,0x000000b3,0x0004003b,0x000000a4, + 0x00000308,0x00000007,0x0004003b,0x00000074,0x0000030a,0x00000007,0x0004003b,0x0000005d, + 0x0000030b,0x00000007,0x0004003b,0x0000000d,0x0000030e,0x00000007,0x0004003b,0x0000005d, + 0x00000316,0x00000007,0x0004003b,0x00000013,0x0000031e,0x00000007,0x0004003b,0x00000013, + 0x00000321,0x00000007,0x0004003b,0x0000000d,0x00000322,0x00000007,0x0004003b,0x00000013, + 0x0000032f,0x00000007,0x0004003b,0x0000005d,0x00000330,0x00000007,0x0004003b,0x00000013, + 0x00000333,0x00000007,0x0004003b,0x0000005d,0x00000334,0x00000007,0x0004003b,0x0000000d, + 0x00000342,0x00000007,0x0004003b,0x00000013,0x00000343,0x00000007,0x0004003b,0x00000013, + 0x00000346,0x00000007,0x0004003b,0x00000013,0x00000349,0x00000007,0x0004003b,0x00000013, + 0x0000034a,0x00000007,0x0004003b,0x00000013,0x00000350,0x00000007,0x0004003b,0x00000013, + 0x00000353,0x00000007,0x0004003b,0x0000000d,0x00000355,0x00000007,0x0004003b,0x0000005d, + 0x00000363,0x00000007,0x0004003b,0x00000013,0x00000365,0x00000007,0x0004003b,0x000000a4, + 0x00000368,0x00000007,0x0004003b,0x0000005d,0x00000378,0x00000007,0x0004003b,0x00000013, + 0x0000037a,0x00000007,0x0004003b,0x000000a4,0x0000037d,0x00000007,0x0004003b,0x0000005d, + 0x00000391,0x00000007,0x0004003b,0x00000074,0x00000393,0x00000007,0x0003003e,0x00000308, + 0x00000309,0x0004003d,0x00000045,0x0000030c,0x000000b1,0x0003003e,0x0000030b,0x0000030c, + 0x00050039,0x00000067,0x0000030d,0x00000072,0x0000030b,0x0003003e,0x0000030a,0x0000030d, + 0x00050041,0x0000000d,0x0000030f,0x0000030a,0x00000278,0x0004003d,0x00000008,0x00000310, + 0x0000030f,0x0003003e,0x0000030e,0x00000310,0x0004003d,0x00000008,0x00000311,0x0000030e, + 0x000500ba,0x00000049,0x00000313,0x00000311,0x00000312,0x000300f7,0x00000315,0x00000000, + 0x000400fa,0x00000313,0x00000314,0x00000315,0x000200f8,0x00000314,0x0004003d,0x00000045, + 0x00000317,0x000000b1,0x0003003e,0x00000316,0x00000317,0x00050039,0x0000000e,0x00000318, + 0x000000a2,0x00000316,0x00040039,0x00000045,0x00000319,0x00000047,0x00050051,0x00000044, + 0x0000031a,0x00000319,0x00000000,0x000500ad,0x00000049,0x0000031b,0x0000031a,0x00000174, + 0x000600a9,0x00000008,0x0000031c,0x0000031b,0x000000c5,0x000000c4,0x0005008e,0x0000000e, + 0x0000031d,0x00000318,0x0000031c,0x0004003d,0x00000067,0x0000031f,0x0000030a,0x0008004f, + 0x0000000e,0x00000320,0x0000031f,0x0000031f,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x0000031e,0x00000320,0x0003003e,0x00000321,0x0000031d,0x0004003d,0x00000008,0x00000323, + 0x0000030e,0x0003003e,0x00000322,0x00000323,0x00070039,0x0000000e,0x00000324,0x00000018, + 0x0000031e,0x00000321,0x00000322,0x00050041,0x0000000d,0x00000325,0x0000030a,0x00000164, + 0x00050051,0x00000008,0x00000326,0x00000324,0x00000000,0x0003003e,0x00000325,0x00000326, + 0x00050041,0x0000000d,0x00000327,0x0000030a,0x0000016a,0x00050051,0x00000008,0x00000328, + 0x00000324,0x00000001,0x0003003e,0x00000327,0x00000328,0x00050041,0x0000000d,0x00000329, + 0x0000030a,0x00000238,0x00050051,0x00000008,0x0000032a,0x00000324,0x00000002,0x0003003e, + 0x00000329,0x0000032a,0x0003003e,0x00000308,0x000002de,0x000200f9,0x00000315,0x000200f8, + 0x00000315,0x00040039,0x00000044,0x0000032b,0x0000004e,0x000500aa,0x00000049,0x0000032c, + 0x0000032b,0x00000140,0x000300f7,0x0000032e,0x00000000,0x000400fa,0x0000032c,0x0000032d, + 0x0000032e,0x000200f8,0x0000032d,0x0004003d,0x00000045,0x00000331,0x000000b1,0x0003003e, + 0x00000330,0x00000331,0x00050039,0x0000000e,0x00000332,0x00000060,0x00000330,0x0003003e, + 0x0000032f,0x00000332,0x0004003d,0x00000045,0x00000335,0x000000b1,0x0003003e,0x00000334, + 0x00000335,0x00050039,0x00000067,0x00000336,0x0000006f,0x00000334,0x0008004f,0x0000000e, + 0x00000337,0x00000336,0x00000336,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000333, + 0x00000337,0x0004003d,0x0000000e,0x00000338,0x0000032f,0x0004003d,0x0000000e,0x00000339, + 0x00000333,0x00050083,0x0000000e,0x0000033a,0x00000338,0x00000339,0x0006000c,0x0000000e, + 0x0000033b,0x00000001,0x00000004,0x0000033a,0x000500ba,0x0000033d,0x0000033e,0x0000033b, + 0x0000033c,0x0004009a,0x00000049,0x0000033f,0x0000033e,0x000300f7,0x00000341,0x00000000, + 0x000400fa,0x0000033f,0x00000340,0x00000341,0x000200f8,0x00000340,0x0004003d,0x0000000e, + 0x00000344,0x0000032f,0x0003003e,0x00000343,0x00000344,0x00050039,0x0000000e,0x00000345, + 0x00000081,0x00000343,0x0004003d,0x0000000e,0x00000347,0x00000333,0x0003003e,0x00000346, + 0x00000347,0x00050039,0x0000000e,0x00000348,0x00000081,0x00000346,0x0003003e,0x00000349, + 0x00000345,0x0003003e,0x0000034a,0x00000348,0x00060039,0x00000008,0x0000034b,0x00000099, + 0x00000349,0x0000034a,0x0003003e,0x00000342,0x0000034b,0x0004003d,0x00000008,0x0000034c, + 0x00000342,0x000500ba,0x00000049,0x0000034d,0x0000034c,0x00000312,0x000300f7,0x0000034f, + 0x00000000,0x000400fa,0x0000034d,0x0000034e,0x0000034f,0x000200f8,0x0000034e,0x0004003d, + 0x00000067,0x00000351,0x0000030a,0x0008004f,0x0000000e,0x00000352,0x00000351,0x00000351, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000350,0x00000352,0x0004003d,0x0000000e, + 0x00000354,0x00000333,0x0003003e,0x00000353,0x00000354,0x0004003d,0x00000008,0x00000356, + 0x00000342,0x0003003e,0x00000355,0x00000356,0x00070039,0x0000000e,0x00000357,0x00000018, + 0x00000350,0x00000353,0x00000355,0x00050041,0x0000000d,0x00000358,0x0000030a,0x00000164, + 0x00050051,0x00000008,0x00000359,0x00000357,0x00000000,0x0003003e,0x00000358,0x00000359, + 0x00050041,0x0000000d,0x0000035a,0x0000030a,0x0000016a,0x00050051,0x00000008,0x0000035b, + 0x00000357,0x00000001,0x0003003e,0x0000035a,0x0000035b,0x00050041,0x0000000d,0x0000035c, + 0x0000030a,0x00000238,0x00050051,0x00000008,0x0000035d,0x00000357,0x00000002,0x0003003e, + 0x0000035c,0x0000035d,0x0003003e,0x00000308,0x000002de,0x000200f9,0x0000034f,0x000200f8, + 0x0000034f,0x000200f9,0x00000341,0x000200f8,0x00000341,0x000200f9,0x0000032e,0x000200f8, + 0x0000032e,0x00040039,0x00000006,0x0000035e,0x00000051,0x000500c7,0x00000006,0x0000035f, + 0x0000035e,0x0000016a,0x000500ab,0x00000049,0x00000360,0x0000035f,0x00000164,0x000300f7, + 0x00000362,0x00000000,0x000400fa,0x00000360,0x00000361,0x00000362,0x000200f8,0x00000361, + 0x0004003d,0x00000045,0x00000364,0x000000b1,0x0003003e,0x00000363,0x00000364,0x0004003d, + 0x00000067,0x00000366,0x0000030a,0x0008004f,0x0000000e,0x00000367,0x00000366,0x00000366, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000365,0x00000367,0x0004003d,0x00000049, + 0x00000369,0x00000308,0x0003003e,0x00000368,0x00000369,0x00070039,0x00000002,0x0000036a, + 0x000000a9,0x00000363,0x00000365,0x00000368,0x0004003d,0x0000000e,0x0000036b,0x00000365, + 0x00050041,0x0000000d,0x0000036c,0x0000030a,0x00000164,0x00050051,0x00000008,0x0000036d, + 0x0000036b,0x00000000,0x0003003e,0x0000036c,0x0000036d,0x00050041,0x0000000d,0x0000036e, + 0x0000030a,0x0000016a,0x00050051,0x00000008,0x0000036f,0x0000036b,0x00000001,0x0003003e, + 0x0000036e,0x0000036f,0x00050041,0x0000000d,0x00000370,0x0000030a,0x00000238,0x00050051, + 0x00000008,0x00000371,0x0000036b,0x00000002,0x0003003e,0x00000370,0x00000371,0x0004003d, + 0x00000049,0x00000372,0x00000368,0x0003003e,0x00000308,0x00000372,0x000200f9,0x00000362, + 0x000200f8,0x00000362,0x00040039,0x00000006,0x00000373,0x00000051,0x000500c7,0x00000006, + 0x00000374,0x00000373,0x00000238,0x000500ab,0x00000049,0x00000375,0x00000374,0x00000164, + 0x000300f7,0x00000377,0x00000000,0x000400fa,0x00000375,0x00000376,0x00000377,0x000200f8, + 0x00000376,0x0004003d,0x00000045,0x00000379,0x000000b1,0x0003003e,0x00000378,0x00000379, + 0x0004003d,0x00000067,0x0000037b,0x0000030a,0x0008004f,0x0000000e,0x0000037c,0x0000037b, + 0x0000037b,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000037a,0x0000037c,0x0004003d, + 0x00000049,0x0000037e,0x00000308,0x0003003e,0x0000037d,0x0000037e,0x00070039,0x00000002, + 0x0000037f,0x000000ae,0x00000378,0x0000037a,0x0000037d,0x0004003d,0x0000000e,0x00000380, + 0x0000037a,0x00050041,0x0000000d,0x00000381,0x0000030a,0x00000164,0x00050051,0x00000008, + 0x00000382,0x00000380,0x00000000,0x0003003e,0x00000381,0x00000382,0x00050041,0x0000000d, + 0x00000383,0x0000030a,0x0000016a,0x00050051,0x00000008,0x00000384,0x00000380,0x00000001, + 0x0003003e,0x00000383,0x00000384,0x00050041,0x0000000d,0x00000385,0x0000030a,0x00000238, + 0x00050051,0x00000008,0x00000386,0x00000380,0x00000002,0x0003003e,0x00000385,0x00000386, + 0x0004003d,0x00000049,0x00000387,0x0000037d,0x0003003e,0x00000308,0x00000387,0x000200f9, + 0x00000377,0x000200f8,0x00000377,0x0004003d,0x00000049,0x00000388,0x00000308,0x000300f7, + 0x0000038a,0x00000000,0x000400fa,0x00000388,0x00000389,0x0000038a,0x000200f8,0x00000389, + 0x0004003d,0x00000067,0x0000038b,0x0000030a,0x0008004f,0x0000000e,0x0000038c,0x0000038b, + 0x0000038b,0x00000000,0x00000001,0x00000002,0x00050051,0x00000008,0x0000038d,0x0000038c, + 0x00000000,0x00050051,0x00000008,0x0000038e,0x0000038c,0x00000001,0x00050051,0x00000008, + 0x0000038f,0x0000038c,0x00000002,0x00070050,0x00000067,0x00000390,0x0000038d,0x0000038e, + 0x0000038f,0x000000c5,0x0004003d,0x00000045,0x00000392,0x000000b1,0x0003003e,0x00000391, + 0x00000392,0x0003003e,0x00000393,0x00000390,0x00060039,0x00000002,0x00000394,0x00000078, + 0x00000391,0x00000393,0x000200f9,0x0000038a,0x000200f8,0x0000038a,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h new file mode 100644 index 000000000..1ce0de0d1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h @@ -0,0 +1,1488 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_INPAINTING_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000726,0x00000000,0x00020011,0x00000001,0x00020011, + 0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x0000070d,0x00000711,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001, + 0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004, + 0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d, + 0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47,0x735f5248,0x65646168, + 0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a, + 0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666, + 0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005, + 0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962, + 0x00000000,0x00060005,0x00000017,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x00000016,0x00000078,0x000a0005,0x0000001c,0x52786666,0x70616d65,0x57726f46,0x52657661, + 0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000001b,0x00000061,0x00080005, + 0x00000021,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00002865,0x00080005, + 0x00000023,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00002865,0x00060005, + 0x00000025,0x70736944,0x5379616c,0x28657a69,0x00000000,0x00050005,0x00000028,0x4d6d754e, + 0x28737069,0x00000000,0x00060005,0x0000002a,0x576d754e,0x476b726f,0x70756f72,0x00002873, + 0x00070005,0x0000002d,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000,0x000b0005, + 0x00000033,0x64616f4c,0x6d617246,0x746e4965,0x6f707265,0x6974616c,0x754f6e6f,0x74757074, + 0x32697628,0x0000003b,0x00050005,0x00000032,0x49785069,0x7475706e,0x00000000,0x00070005, + 0x00000039,0x726f7453,0x756f4365,0x7265746e,0x3b316928,0x003b3175,0x00040005,0x00000037, + 0x50785069,0x0000736f,0x00040005,0x00000038,0x6e756f63,0x00726574,0x000a0005,0x0000003d, + 0x6d6f7441,0x6e496369,0x61657263,0x6f436573,0x65746e75,0x31692872,0x3b31753b,0x00000000, + 0x00040005,0x0000003b,0x50785069,0x0000736f,0x00040005,0x0000003c,0x56646c6f,0x00006c61, + 0x000a0005,0x00000042,0x6f4c5752,0x6e496461,0x6e696170,0x676e6974,0x61727950,0x2864696d, + 0x3b326976,0x003b3175,0x00040005,0x00000040,0x50785069,0x0000736f,0x00040005,0x00000041, + 0x65646e69,0x00000078,0x000b0005,0x00000049,0x726f7453,0x706e4965,0x746e6961,0x50676e69, + 0x6d617279,0x76286469,0x763b3269,0x753b3466,0x00003b31,0x00040005,0x00000046,0x50785069, + 0x0000736f,0x00050005,0x00000047,0x5674756f,0x65756c61,0x00000000,0x00040005,0x00000048, + 0x65646e69,0x00000078,0x00090005,0x0000004d,0x4c647053,0x5364616f,0x6372756f,0x616d4965, + 0x76286567,0x753b3269,0x00003b31,0x00030005,0x0000004b,0x00786574,0x00040005,0x0000004c, + 0x63696c73,0x00000065,0x00060005,0x00000051,0x4c647053,0x2864616f,0x3b326976,0x003b3175, + 0x00030005,0x0000004f,0x00786574,0x00040005,0x00000050,0x63696c73,0x00000065,0x00080005, + 0x00000058,0x53647053,0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005, + 0x00000054,0x00786970,0x00050005,0x00000055,0x5674756f,0x65756c61,0x00000000,0x00040005, + 0x00000056,0x65646e69,0x00000078,0x00040005,0x00000057,0x63696c73,0x00000065,0x000a0005, + 0x0000005c,0x49647053,0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528, + 0x00000000,0x00040005,0x0000005b,0x63696c73,0x00000065,0x00080005,0x0000005e,0x47647053, + 0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000,0x00090005,0x00000061,0x52647053, + 0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000060, + 0x63696c73,0x00000065,0x00090005,0x00000066,0x4c647053,0x4964616f,0x7265746e,0x6964656d, + 0x28657461,0x753b3175,0x00003b31,0x00030005,0x00000064,0x00000078,0x00030005,0x00000065, + 0x00000079,0x000a0005,0x0000006c,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169, + 0x3b317528,0x763b3175,0x003b3466,0x00030005,0x00000069,0x00000078,0x00030005,0x0000006a, + 0x00000079,0x00040005,0x0000006b,0x756c6176,0x00000065,0x00090005,0x00000073,0x52647053, + 0x63756465,0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x0000006f, + 0x00003076,0x00030005,0x00000070,0x00003176,0x00030005,0x00000071,0x00003276,0x00030005, + 0x00000072,0x00003376,0x000a0005,0x00000075,0x53786666,0x6f576470,0x72676b72,0x5370756f, + 0x66667568,0x6142656c,0x65697272,0x00002872,0x00090005,0x0000007c,0x45647053,0x57746978, + 0x676b726f,0x70756f72,0x3b317528,0x753b3175,0x00003b31,0x00060005,0x00000079,0x576d756e, + 0x476b726f,0x70756f72,0x00000073,0x00080005,0x0000007a,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x0000007b,0x63696c73,0x00000065,0x00070005, + 0x00000080,0x52647053,0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005,0x0000007f, + 0x00000076,0x000b0005,0x00000089,0x52647053,0x63756465,0x616f4c65,0x76283464,0x763b3275, + 0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x00000084,0x00003069,0x00030005, + 0x00000085,0x00003169,0x00030005,0x00000086,0x00003269,0x00030005,0x00000087,0x00003369, + 0x00040005,0x00000088,0x63696c73,0x00000065,0x00080005,0x0000008e,0x52647053,0x63756465, + 0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x0000008c,0x65736162,0x00000000, + 0x00040005,0x0000008d,0x63696c73,0x00000065,0x000e0005,0x00000095,0x52647053,0x63756465, + 0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32,0x75763b32, + 0x31753b32,0x0000003b,0x00030005,0x00000090,0x00003069,0x00030005,0x00000091,0x00003169, + 0x00030005,0x00000092,0x00003269,0x00030005,0x00000093,0x00003369,0x00040005,0x00000094, + 0x63696c73,0x00000065,0x000b0005,0x00000099,0x52647053,0x63756465,0x616f4c65,0x756f5364, + 0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005,0x00000097,0x65736162, + 0x00000000,0x00040005,0x00000098,0x63696c73,0x00000065,0x00100005,0x000000a2,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973,0x3b317528, + 0x763b3175,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x0000009c,0x00000078, + 0x00030005,0x0000009d,0x00000079,0x00050005,0x0000009e,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x0000009f,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000a0,0x0070696d,0x00040005,0x000000a1,0x63696c73,0x00000065,0x000d0005, + 0x000000aa,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b, + 0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000a4,0x00000078,0x00030005, + 0x000000a5,0x00000079,0x00050005,0x000000a6,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000a7,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000a8,0x0070696d,0x00040005,0x000000a9,0x63696c73,0x00000065,0x000c0005,0x000000b2, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000ac,0x00000078,0x00030005,0x000000ad,0x00000079, + 0x00050005,0x000000ae,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000af,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000b0,0x0070696d, + 0x00040005,0x000000b1,0x63696c73,0x00000065,0x000c0005,0x000000ba,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000b4,0x00000078,0x00030005,0x000000b5,0x00000079,0x00050005,0x000000b6, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000b7,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000b8,0x0070696d,0x00040005,0x000000b9, + 0x63696c73,0x00000065,0x000c0005,0x000000c2,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000bc, + 0x00000078,0x00030005,0x000000bd,0x00000079,0x00050005,0x000000be,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000bf,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000c0,0x0070696d,0x00040005,0x000000c1,0x63696c73,0x00000065, + 0x000b0005,0x000000c9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00050005,0x000000c5,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000c6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000c7,0x0070696d,0x00040005,0x000000c8,0x63696c73,0x00000065,0x000b0005, + 0x000000d0,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000cc,0x00000078,0x00030005,0x000000cd,0x00000079, + 0x00040005,0x000000ce,0x7370696d,0x00000000,0x00040005,0x000000cf,0x63696c73,0x00000065, + 0x000e0005,0x000000da,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000d3, + 0x00000078,0x00030005,0x000000d4,0x00000079,0x00050005,0x000000d5,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000d6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x000000d7,0x65736162,0x0070694d,0x00040005,0x000000d8,0x7370696d, + 0x00000000,0x00040005,0x000000d9,0x63696c73,0x00000065,0x000a0005,0x000000e2,0x44647053, + 0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005, + 0x000000dd,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000de,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x000000df,0x7370696d,0x00000000, + 0x00060005,0x000000e0,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000e1, + 0x63696c73,0x00000065,0x000b0005,0x000000eb,0x44647053,0x736e776f,0x6c706d61,0x75762865, + 0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x000000e5,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000e6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000e7,0x7370696d,0x00000000,0x00060005,0x000000e8, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000e9,0x63696c73,0x00000065, + 0x00060005,0x000000ea,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x000f0005,0x000000f2, + 0x706d6f63,0x46657475,0x656d6172,0x65746e69,0x6c6f7072,0x6f697461,0x706e496e,0x746e6961, + 0x50676e69,0x6d617279,0x76286469,0x693b3369,0x00003b31,0x00050005,0x000000f0,0x6f724769, + 0x64497075,0x00000000,0x00050005,0x000000f1,0x636f4c69,0x6e496c61,0x00786564,0x00040005, + 0x0000010c,0x61726170,0x0000006d,0x00040005,0x0000010e,0x61726170,0x0000006d,0x00040005, + 0x0000010f,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170,0x0000006d,0x00040005, + 0x00000113,0x61726170,0x0000006d,0x00040005,0x00000115,0x61726170,0x0000006d,0x00040005, + 0x00000117,0x61726170,0x0000006d,0x00040005,0x00000119,0x61726170,0x0000006d,0x00040005, + 0x0000011a,0x61726170,0x0000006d,0x00040005,0x0000011c,0x61726170,0x0000006d,0x00040005, + 0x0000011e,0x61726170,0x0000006d,0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005, + 0x00000121,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005, + 0x00000123,0x61726170,0x0000006d,0x00040005,0x0000012a,0x49466263,0x0000745f,0x00060006, + 0x0000012a,0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006,0x0000012a,0x00000001, + 0x70736964,0x5379616c,0x00657a69,0x00070006,0x0000012a,0x00000002,0x70736964,0x5379616c, + 0x52657a69,0x00007063,0x00060006,0x0000012a,0x00000003,0x656d6163,0x654e6172,0x00007261, + 0x00060006,0x0000012a,0x00000004,0x656d6163,0x61466172,0x00000072,0x00080006,0x0000012a, + 0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a,0x00050006,0x0000012a, + 0x00000006,0x65646f4d,0x00000000,0x00050006,0x0000012a,0x00000007,0x65736572,0x00000074, + 0x00080006,0x0000012a,0x00000008,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00060006,0x0000012a,0x00000009,0x746c6564,0x6d695461,0x00000065,0x00090006,0x0000012a, + 0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006, + 0x0000012a,0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006, + 0x0000012a,0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006, + 0x0000012a,0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000, + 0x00070006,0x0000012a,0x0000000e,0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006, + 0x0000012a,0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065,0x00090006,0x0000012a, + 0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006, + 0x0000012a,0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000,0x00090006,0x0000012a, + 0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006, + 0x0000012a,0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065, + 0x00070006,0x0000012a,0x00000014,0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006, + 0x0000012a,0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e, + 0x00006e6f,0x00070006,0x0000012a,0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e, + 0x00060006,0x0000012a,0x00000017,0x6e615466,0x666c6148,0x00564f46,0x00050006,0x0000012a, + 0x00000018,0x6461705f,0x00000031,0x00050006,0x0000012a,0x00000019,0x74694a66,0x00726574, + 0x00080006,0x0000012a,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c, + 0x00040005,0x0000012c,0x49466263,0x00000000,0x00080005,0x0000013d,0x6e496263,0x6e696170, + 0x676e6974,0x61727950,0x5f64696d,0x00000074,0x00050006,0x0000013d,0x00000000,0x7370696d, + 0x00000000,0x00070006,0x0000013d,0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00070006,0x0000013d,0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00070005, + 0x0000013f,0x6e496263,0x6e696170,0x676e6974,0x61727950,0x0064696d,0x00050005,0x00000151, + 0x756f5f72,0x74757074,0x00000000,0x000a0005,0x00000158,0x6d617246,0x746e4965,0x6f707265, + 0x6974616c,0x57526e6f,0x6e756f43,0x73726574,0x0000745f,0x00050006,0x00000158,0x00000000, + 0x61746164,0x00000000,0x00050005,0x0000015a,0x635f7772,0x746e756f,0x00737265,0x00080005, + 0x00000169,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003064,0x00080005, + 0x00000172,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003164,0x00080005, + 0x0000017b,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003264,0x00080005, + 0x00000184,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003364,0x00080005, + 0x0000018e,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003464,0x00080005, + 0x00000198,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003564,0x00080005, + 0x000001a2,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003664,0x00080005, + 0x000001ac,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003764,0x00080005, + 0x000001b6,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003864,0x00080005, + 0x000001c0,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003964,0x00080005, + 0x000001ca,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00303164,0x00080005, + 0x000001d4,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00313164,0x00080005, + 0x000001de,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00323164,0x00040005, + 0x00000241,0x6c6f4366,0x0000726f,0x00040005,0x00000242,0x61726170,0x0000006d,0x00040005, + 0x0000024d,0x61726170,0x0000006d,0x00040005,0x0000027c,0x61726170,0x0000006d,0x00040005, + 0x0000027e,0x61726170,0x0000006d,0x00040005,0x00000282,0x61726170,0x0000006d,0x00040005, + 0x00000284,0x61726170,0x0000006d,0x00040005,0x00000286,0x61726170,0x0000006d,0x00050005, + 0x0000028a,0x43647073,0x746e756f,0x00007265,0x00040005,0x0000028b,0x61726170,0x0000006d, + 0x00040005,0x0000028c,0x61726170,0x0000006d,0x00040005,0x00000292,0x61726170,0x0000006d, + 0x00040005,0x00000293,0x61726170,0x0000006d,0x00070005,0x00000299,0x49647073,0x7265746e, + 0x6964656d,0x52657461,0x00000000,0x00070005,0x0000029f,0x49647073,0x7265746e,0x6964656d, + 0x47657461,0x00000000,0x00070005,0x000002a4,0x49647073,0x7265746e,0x6964656d,0x42657461, + 0x00000000,0x00070005,0x000002a9,0x49647073,0x7265746e,0x6964656d,0x41657461,0x00000000, + 0x00030005,0x000002c5,0x00000077,0x00030005,0x000002cf,0x006d7573,0x00040005,0x000002fe, + 0x61726170,0x0000006d,0x00030005,0x00000308,0x00003076,0x00030005,0x0000030a,0x00003176, + 0x00030005,0x0000030d,0x00003276,0x00030005,0x00000310,0x00003376,0x00040005,0x00000313, + 0x61726170,0x0000006d,0x00040005,0x00000315,0x61726170,0x0000006d,0x00040005,0x00000317, + 0x61726170,0x0000006d,0x00040005,0x00000319,0x61726170,0x0000006d,0x00030005,0x00000320, + 0x00003076,0x00040005,0x00000323,0x61726170,0x0000006d,0x00040005,0x00000324,0x61726170, + 0x0000006d,0x00030005,0x00000327,0x00003176,0x00040005,0x0000032a,0x61726170,0x0000006d, + 0x00040005,0x0000032b,0x61726170,0x0000006d,0x00030005,0x0000032e,0x00003276,0x00040005, + 0x00000331,0x61726170,0x0000006d,0x00040005,0x00000332,0x61726170,0x0000006d,0x00030005, + 0x00000335,0x00003376,0x00040005,0x00000338,0x61726170,0x0000006d,0x00040005,0x00000339, + 0x61726170,0x0000006d,0x00040005,0x0000033c,0x61726170,0x0000006d,0x00040005,0x0000033e, + 0x61726170,0x0000006d,0x00040005,0x00000340,0x61726170,0x0000006d,0x00040005,0x00000342, + 0x61726170,0x0000006d,0x00040005,0x00000353,0x61726170,0x0000006d,0x00040005,0x00000354, + 0x61726170,0x0000006d,0x00040005,0x00000355,0x61726170,0x0000006d,0x00040005,0x00000356, + 0x61726170,0x0000006d,0x00040005,0x00000357,0x61726170,0x0000006d,0x00030005,0x0000035c, + 0x00003076,0x00040005,0x0000035f,0x61726170,0x0000006d,0x00040005,0x00000360,0x61726170, + 0x0000006d,0x00030005,0x00000363,0x00003176,0x00040005,0x00000366,0x61726170,0x0000006d, + 0x00040005,0x00000367,0x61726170,0x0000006d,0x00030005,0x0000036a,0x00003276,0x00040005, + 0x0000036d,0x61726170,0x0000006d,0x00040005,0x0000036e,0x61726170,0x0000006d,0x00030005, + 0x00000371,0x00003376,0x00040005,0x00000374,0x61726170,0x0000006d,0x00040005,0x00000375, + 0x61726170,0x0000006d,0x00040005,0x00000378,0x61726170,0x0000006d,0x00040005,0x0000037a, + 0x61726170,0x0000006d,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005,0x0000037e, + 0x61726170,0x0000006d,0x00040005,0x0000038b,0x61726170,0x0000006d,0x00040005,0x0000038c, + 0x61726170,0x0000006d,0x00040005,0x0000038d,0x61726170,0x0000006d,0x00040005,0x0000038e, + 0x61726170,0x0000006d,0x00040005,0x0000038f,0x61726170,0x0000006d,0x00030005,0x00000394, + 0x00786574,0x00030005,0x000003a2,0x00786970,0x00030005,0x000003b0,0x00000076,0x00040005, + 0x000003b3,0x61726170,0x0000006d,0x00040005,0x000003b4,0x61726170,0x0000006d,0x00040005, + 0x000003b8,0x61726170,0x0000006d,0x00040005,0x000003ba,0x61726170,0x0000006d,0x00040005, + 0x000003bd,0x61726170,0x0000006d,0x00040005,0x000003be,0x61726170,0x0000006d,0x00040005, + 0x000003db,0x61726170,0x0000006d,0x00040005,0x000003dc,0x61726170,0x0000006d,0x00040005, + 0x000003e0,0x61726170,0x0000006d,0x00040005,0x000003e2,0x61726170,0x0000006d,0x00040005, + 0x000003e5,0x61726170,0x0000006d,0x00040005,0x000003e6,0x61726170,0x0000006d,0x00040005, + 0x00000403,0x61726170,0x0000006d,0x00040005,0x00000404,0x61726170,0x0000006d,0x00040005, + 0x00000408,0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170,0x0000006d,0x00040005, + 0x0000040d,0x61726170,0x0000006d,0x00040005,0x0000040e,0x61726170,0x0000006d,0x00040005, + 0x0000042e,0x61726170,0x0000006d,0x00040005,0x0000042f,0x61726170,0x0000006d,0x00040005, + 0x00000433,0x61726170,0x0000006d,0x00040005,0x00000435,0x61726170,0x0000006d,0x00040005, + 0x00000438,0x61726170,0x0000006d,0x00040005,0x00000439,0x61726170,0x0000006d,0x00040005, + 0x00000441,0x61726170,0x0000006d,0x00040005,0x00000446,0x61726170,0x0000006d,0x00040005, + 0x0000044b,0x61726170,0x0000006d,0x00040005,0x00000450,0x61726170,0x0000006d,0x00040005, + 0x00000466,0x61726170,0x0000006d,0x00040005,0x00000467,0x61726170,0x0000006d,0x00040005, + 0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046b,0x61726170,0x0000006d,0x00040005, + 0x00000472,0x61726170,0x0000006d,0x00040005,0x00000473,0x61726170,0x0000006d,0x00040005, + 0x00000474,0x61726170,0x0000006d,0x00040005,0x00000485,0x61726170,0x0000006d,0x00040005, + 0x00000486,0x61726170,0x0000006d,0x00040005,0x00000489,0x61726170,0x0000006d,0x00040005, + 0x0000048a,0x61726170,0x0000006d,0x00040005,0x00000492,0x61726170,0x0000006d,0x00040005, + 0x00000493,0x61726170,0x0000006d,0x00040005,0x00000494,0x61726170,0x0000006d,0x00040005, + 0x000004a5,0x61726170,0x0000006d,0x00040005,0x000004a6,0x61726170,0x0000006d,0x00040005, + 0x000004a9,0x61726170,0x0000006d,0x00040005,0x000004aa,0x61726170,0x0000006d,0x00040005, + 0x000004b2,0x61726170,0x0000006d,0x00040005,0x000004b3,0x61726170,0x0000006d,0x00040005, + 0x000004b4,0x61726170,0x0000006d,0x00040005,0x000004c6,0x61726170,0x0000006d,0x00040005, + 0x000004c7,0x61726170,0x0000006d,0x00040005,0x000004ca,0x61726170,0x0000006d,0x00040005, + 0x000004cb,0x61726170,0x0000006d,0x00040005,0x000004d4,0x61726170,0x0000006d,0x00040005, + 0x000004d5,0x61726170,0x0000006d,0x00040005,0x000004d6,0x61726170,0x0000006d,0x00040005, + 0x000004da,0x61726170,0x0000006d,0x00040005,0x000004dc,0x61726170,0x0000006d,0x00040005, + 0x000004de,0x61726170,0x0000006d,0x00040005,0x000004e0,0x61726170,0x0000006d,0x00040005, + 0x000004e2,0x61726170,0x0000006d,0x00040005,0x000004e4,0x61726170,0x0000006d,0x00030005, + 0x000004e7,0x00000076,0x00040005,0x000004e8,0x61726170,0x0000006d,0x00040005,0x000004ea, + 0x61726170,0x0000006d,0x00040005,0x000004ed,0x61726170,0x0000006d,0x00040005,0x00000501, + 0x61726170,0x0000006d,0x00040005,0x00000502,0x61726170,0x0000006d,0x00040005,0x00000504, + 0x61726170,0x0000006d,0x00040005,0x00000506,0x61726170,0x0000006d,0x00040005,0x0000050e, + 0x61726170,0x0000006d,0x00040005,0x0000050f,0x61726170,0x0000006d,0x00040005,0x00000511, + 0x61726170,0x0000006d,0x00030005,0x00000518,0x00000076,0x00040005,0x00000520,0x61726170, + 0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000523,0x61726170, + 0x0000006d,0x00040005,0x00000537,0x61726170,0x0000006d,0x00040005,0x00000538,0x61726170, + 0x0000006d,0x00040005,0x0000053a,0x61726170,0x0000006d,0x00040005,0x0000053c,0x61726170, + 0x0000006d,0x00040005,0x00000546,0x61726170,0x0000006d,0x00040005,0x00000547,0x61726170, + 0x0000006d,0x00040005,0x00000548,0x61726170,0x0000006d,0x00030005,0x0000054f,0x00000076, + 0x00040005,0x00000556,0x61726170,0x0000006d,0x00040005,0x00000557,0x61726170,0x0000006d, + 0x00040005,0x00000559,0x61726170,0x0000006d,0x00040005,0x0000056d,0x61726170,0x0000006d, + 0x00040005,0x0000056e,0x61726170,0x0000006d,0x00040005,0x00000570,0x61726170,0x0000006d, + 0x00040005,0x00000572,0x61726170,0x0000006d,0x00040005,0x00000579,0x61726170,0x0000006d, + 0x00040005,0x0000057a,0x61726170,0x0000006d,0x00040005,0x0000057b,0x61726170,0x0000006d, + 0x00030005,0x00000582,0x00000076,0x00040005,0x00000583,0x61726170,0x0000006d,0x00040005, + 0x00000585,0x61726170,0x0000006d,0x00040005,0x00000587,0x61726170,0x0000006d,0x00040005, + 0x00000591,0x61726170,0x0000006d,0x00040005,0x00000592,0x61726170,0x0000006d,0x00040005, + 0x00000594,0x61726170,0x0000006d,0x00040005,0x00000596,0x61726170,0x0000006d,0x00030005, + 0x00000599,0x00786574,0x00030005,0x000005a3,0x00786970,0x00030005,0x000005ad,0x00003076, + 0x00040005,0x000005b0,0x61726170,0x0000006d,0x00040005,0x000005b1,0x61726170,0x0000006d, + 0x00040005,0x000005b4,0x61726170,0x0000006d,0x00040005,0x000005b6,0x61726170,0x0000006d, + 0x00040005,0x000005b8,0x61726170,0x0000006d,0x00040005,0x000005b9,0x61726170,0x0000006d, + 0x00030005,0x000005ce,0x00003176,0x00040005,0x000005d1,0x61726170,0x0000006d,0x00040005, + 0x000005d2,0x61726170,0x0000006d,0x00040005,0x000005d5,0x61726170,0x0000006d,0x00040005, + 0x000005d7,0x61726170,0x0000006d,0x00040005,0x000005d9,0x61726170,0x0000006d,0x00040005, + 0x000005da,0x61726170,0x0000006d,0x00030005,0x000005ef,0x00003276,0x00040005,0x000005f2, + 0x61726170,0x0000006d,0x00040005,0x000005f3,0x61726170,0x0000006d,0x00040005,0x000005f6, + 0x61726170,0x0000006d,0x00040005,0x000005f8,0x61726170,0x0000006d,0x00040005,0x000005fa, + 0x61726170,0x0000006d,0x00040005,0x000005fb,0x61726170,0x0000006d,0x00030005,0x00000610, + 0x00003376,0x00040005,0x00000613,0x61726170,0x0000006d,0x00040005,0x00000614,0x61726170, + 0x0000006d,0x00040005,0x00000617,0x61726170,0x0000006d,0x00040005,0x00000619,0x61726170, + 0x0000006d,0x00040005,0x0000061b,0x61726170,0x0000006d,0x00040005,0x0000061c,0x61726170, + 0x0000006d,0x00030005,0x00000624,0x00000076,0x00040005,0x00000625,0x61726170,0x0000006d, + 0x00040005,0x00000627,0x61726170,0x0000006d,0x00040005,0x00000629,0x61726170,0x0000006d, + 0x00040005,0x0000062b,0x61726170,0x0000006d,0x00040005,0x00000633,0x61726170,0x0000006d, + 0x00040005,0x00000634,0x61726170,0x0000006d,0x00040005,0x00000636,0x61726170,0x0000006d, + 0x00040005,0x00000637,0x61726170,0x0000006d,0x00040005,0x0000063a,0x61726170,0x0000006d, + 0x00040005,0x0000063c,0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d, + 0x00040005,0x00000648,0x61726170,0x0000006d,0x00040005,0x0000064a,0x61726170,0x0000006d, + 0x00040005,0x0000064c,0x61726170,0x0000006d,0x00040005,0x0000064e,0x61726170,0x0000006d, + 0x00040005,0x00000650,0x61726170,0x0000006d,0x00040005,0x00000652,0x61726170,0x0000006d, + 0x00040005,0x0000065f,0x61726170,0x0000006d,0x00040005,0x00000661,0x61726170,0x0000006d, + 0x00040005,0x00000663,0x61726170,0x0000006d,0x00040005,0x00000665,0x61726170,0x0000006d, + 0x00040005,0x00000667,0x61726170,0x0000006d,0x00040005,0x00000668,0x61726170,0x0000006d, + 0x00040005,0x00000675,0x61726170,0x0000006d,0x00040005,0x00000677,0x61726170,0x0000006d, + 0x00040005,0x00000679,0x61726170,0x0000006d,0x00040005,0x0000067b,0x61726170,0x0000006d, + 0x00040005,0x0000067d,0x61726170,0x0000006d,0x00040005,0x0000067e,0x61726170,0x0000006d, + 0x00040005,0x0000068b,0x61726170,0x0000006d,0x00040005,0x0000068d,0x61726170,0x0000006d, + 0x00040005,0x0000068f,0x61726170,0x0000006d,0x00040005,0x00000690,0x61726170,0x0000006d, + 0x00040005,0x00000693,0x5f627573,0x00007978,0x00040005,0x00000696,0x61726170,0x0000006d, + 0x00030005,0x00000698,0x00000078,0x00030005,0x000006a1,0x00000079,0x00040005,0x000006a9, + 0x61726170,0x0000006d,0x00040005,0x000006ab,0x61726170,0x0000006d,0x00040005,0x000006ad, + 0x61726170,0x0000006d,0x00040005,0x000006af,0x61726170,0x0000006d,0x00040005,0x000006b1, + 0x61726170,0x0000006d,0x00040005,0x000006b3,0x61726170,0x0000006d,0x00040005,0x000006b6, + 0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d,0x00040005,0x000006ba, + 0x61726170,0x0000006d,0x00040005,0x000006bc,0x61726170,0x0000006d,0x00040005,0x000006be, + 0x61726170,0x0000006d,0x00040005,0x000006bf,0x61726170,0x0000006d,0x00040005,0x000006c1, + 0x61726170,0x0000006d,0x00040005,0x000006c9,0x61726170,0x0000006d,0x00040005,0x000006cb, + 0x61726170,0x0000006d,0x00040005,0x000006cd,0x61726170,0x0000006d,0x00040005,0x000006d3, + 0x61726170,0x0000006d,0x00040005,0x000006d6,0x61726170,0x0000006d,0x00040005,0x000006d8, + 0x61726170,0x0000006d,0x00040005,0x000006da,0x61726170,0x0000006d,0x00040005,0x000006dc, + 0x61726170,0x0000006d,0x00040005,0x000006df,0x61726170,0x0000006d,0x00040005,0x000006e1, + 0x61726170,0x0000006d,0x00040005,0x000006e3,0x61726170,0x0000006d,0x00040005,0x000006e4, + 0x61726170,0x0000006d,0x00040005,0x000006e6,0x61726170,0x0000006d,0x00040005,0x000006e7, + 0x61726170,0x0000006d,0x00040005,0x000006e9,0x61726170,0x0000006d,0x00040005,0x000006ef, + 0x61726170,0x0000006d,0x00040005,0x000006f0,0x61726170,0x0000006d,0x00040005,0x000006f2, + 0x61726170,0x0000006d,0x00040005,0x000006f4,0x61726170,0x0000006d,0x00040005,0x000006f6, + 0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d,0x00040005,0x00000705, + 0x61726170,0x0000006d,0x00040005,0x00000706,0x61726170,0x0000006d,0x00040005,0x00000707, + 0x61726170,0x0000006d,0x00040005,0x00000708,0x61726170,0x0000006d,0x00040005,0x00000709, + 0x61726170,0x0000006d,0x00060005,0x0000070d,0x575f6c67,0x476b726f,0x70756f72,0x00004449, + 0x00080005,0x00000711,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564, + 0x00040005,0x00000714,0x61726170,0x0000006d,0x00040005,0x00000715,0x61726170,0x0000006d, + 0x00060005,0x0000071c,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00030047,0x0000012a, + 0x00000002,0x00050048,0x0000012a,0x00000000,0x00000023,0x00000000,0x00050048,0x0000012a, + 0x00000001,0x00000023,0x00000008,0x00050048,0x0000012a,0x00000002,0x00000023,0x00000010, + 0x00050048,0x0000012a,0x00000003,0x00000023,0x00000018,0x00050048,0x0000012a,0x00000004, + 0x00000023,0x0000001c,0x00050048,0x0000012a,0x00000005,0x00000023,0x00000020,0x00050048, + 0x0000012a,0x00000006,0x00000023,0x00000028,0x00050048,0x0000012a,0x00000007,0x00000023, + 0x0000002c,0x00050048,0x0000012a,0x00000008,0x00000023,0x00000030,0x00050048,0x0000012a, + 0x00000009,0x00000023,0x00000040,0x00050048,0x0000012a,0x0000000a,0x00000023,0x00000044, + 0x00050048,0x0000012a,0x0000000b,0x00000023,0x00000048,0x00050048,0x0000012a,0x0000000c, + 0x00000023,0x00000050,0x00050048,0x0000012a,0x0000000d,0x00000023,0x00000058,0x00050048, + 0x0000012a,0x0000000e,0x00000023,0x0000005c,0x00050048,0x0000012a,0x0000000f,0x00000023, + 0x00000060,0x00050048,0x0000012a,0x00000010,0x00000023,0x00000068,0x00050048,0x0000012a, + 0x00000011,0x00000023,0x0000006c,0x00050048,0x0000012a,0x00000012,0x00000023,0x00000070, + 0x00050048,0x0000012a,0x00000013,0x00000023,0x00000078,0x00050048,0x0000012a,0x00000014, + 0x00000023,0x00000080,0x00050048,0x0000012a,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x0000012a,0x00000016,0x00000023,0x00000090,0x00050048,0x0000012a,0x00000017,0x00000023, + 0x00000098,0x00050048,0x0000012a,0x00000018,0x00000023,0x0000009c,0x00050048,0x0000012a, + 0x00000019,0x00000023,0x000000a0,0x00050048,0x0000012a,0x0000001a,0x00000023,0x000000a8, + 0x00040047,0x0000012c,0x00000021,0x0000000f,0x00040047,0x0000012c,0x00000022,0x00000000, + 0x00030047,0x0000013d,0x00000002,0x00050048,0x0000013d,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000013d,0x00000001,0x00000023,0x00000004,0x00050048,0x0000013d,0x00000002, + 0x00000023,0x00000008,0x00040047,0x0000013f,0x00000021,0x00000010,0x00040047,0x0000013f, + 0x00000022,0x00000000,0x00040047,0x00000151,0x00000021,0x00000000,0x00040047,0x00000151, + 0x00000022,0x00000000,0x00040047,0x00000157,0x00000006,0x00000004,0x00030047,0x00000158, + 0x00000002,0x00040048,0x00000158,0x00000000,0x00000017,0x00050048,0x00000158,0x00000000, + 0x00000023,0x00000000,0x00030047,0x0000015a,0x00000017,0x00040047,0x0000015a,0x00000021, + 0x00000001,0x00040047,0x0000015a,0x00000022,0x00000000,0x00040047,0x00000169,0x00000021, + 0x00000002,0x00040047,0x00000169,0x00000022,0x00000000,0x00040047,0x00000172,0x00000021, + 0x00000003,0x00040047,0x00000172,0x00000022,0x00000000,0x00040047,0x0000017b,0x00000021, + 0x00000004,0x00040047,0x0000017b,0x00000022,0x00000000,0x00040047,0x00000184,0x00000021, + 0x00000005,0x00040047,0x00000184,0x00000022,0x00000000,0x00040047,0x0000018e,0x00000021, + 0x00000006,0x00040047,0x0000018e,0x00000022,0x00000000,0x00030047,0x00000198,0x00000017, + 0x00040047,0x00000198,0x00000021,0x00000007,0x00040047,0x00000198,0x00000022,0x00000000, + 0x00040047,0x000001a2,0x00000021,0x00000008,0x00040047,0x000001a2,0x00000022,0x00000000, + 0x00040047,0x000001ac,0x00000021,0x00000009,0x00040047,0x000001ac,0x00000022,0x00000000, + 0x00040047,0x000001b6,0x00000021,0x0000000a,0x00040047,0x000001b6,0x00000022,0x00000000, + 0x00040047,0x000001c0,0x00000021,0x0000000b,0x00040047,0x000001c0,0x00000022,0x00000000, + 0x00040047,0x000001ca,0x00000021,0x0000000c,0x00040047,0x000001ca,0x00000022,0x00000000, + 0x00040047,0x000001d4,0x00000021,0x0000000d,0x00040047,0x000001d4,0x00000022,0x00000000, + 0x00040047,0x000001de,0x00000021,0x0000000e,0x00040047,0x000001de,0x00000022,0x00000000, + 0x00040047,0x0000070d,0x0000000b,0x0000001a,0x00040047,0x00000711,0x0000000b,0x0000001d, + 0x00040047,0x0000071c,0x00000021,0x000003e8,0x00040047,0x0000071c,0x00000022,0x00000000, + 0x00040047,0x00000725,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00030016, + 0x00000013,0x00000020,0x00040020,0x00000014,0x00000007,0x00000013,0x00040021,0x00000015, + 0x00000013,0x00000014,0x00040017,0x00000019,0x00000006,0x00000002,0x00040021,0x0000001a, + 0x00000019,0x00000007,0x00040015,0x0000001e,0x00000020,0x00000001,0x00040017,0x0000001f, + 0x0000001e,0x00000002,0x00030021,0x00000020,0x0000001f,0x00030021,0x00000027,0x00000006, + 0x00030021,0x0000002c,0x00000019,0x00040020,0x0000002f,0x00000007,0x0000001f,0x00040017, + 0x00000030,0x00000013,0x00000004,0x00040021,0x00000031,0x00000030,0x0000002f,0x00040020, + 0x00000035,0x00000007,0x0000001e,0x00050021,0x00000036,0x00000002,0x00000035,0x00000007, + 0x00050021,0x0000003f,0x00000030,0x0000002f,0x00000007,0x00040020,0x00000044,0x00000007, + 0x00000030,0x00060021,0x00000045,0x00000002,0x0000002f,0x00000044,0x00000007,0x00070021, + 0x00000053,0x00000002,0x0000002f,0x00000044,0x00000007,0x00000007,0x00040021,0x0000005a, + 0x00000002,0x00000007,0x00050021,0x00000063,0x00000030,0x00000007,0x00000007,0x00060021, + 0x00000068,0x00000002,0x00000007,0x00000007,0x00000044,0x00070021,0x0000006e,0x00000030, + 0x00000044,0x00000044,0x00000044,0x00000044,0x00020014,0x00000077,0x00060021,0x00000078, + 0x00000077,0x00000007,0x00000007,0x00000007,0x00040021,0x0000007e,0x00000030,0x00000044, + 0x00040020,0x00000082,0x00000007,0x00000019,0x00080021,0x00000083,0x00000030,0x00000082, + 0x00000082,0x00000082,0x00000082,0x00000007,0x00050021,0x0000008b,0x00000030,0x00000082, + 0x00000007,0x00090021,0x0000009b,0x00000002,0x00000007,0x00000007,0x00000082,0x00000007, + 0x00000007,0x00000007,0x00070021,0x000000c4,0x00000002,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00070021,0x000000cb,0x00000002,0x00000007,0x00000007,0x00000007,0x00000007, + 0x000a0021,0x000000d2,0x00000002,0x00000007,0x00000007,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00000007,0x00080021,0x000000dc,0x00000002,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00000007,0x00090021,0x000000e4,0x00000002,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00000007,0x00000082,0x00040017,0x000000ed,0x0000001e,0x00000003,0x00040020, + 0x000000ee,0x00000007,0x000000ed,0x00050021,0x000000ef,0x00000002,0x000000ee,0x00000035, + 0x0004002b,0x0000001e,0x000000fe,0x00000000,0x0004002b,0x00000013,0x00000105,0x00000000, + 0x0004002b,0x00000013,0x00000106,0x3f800000,0x0004002b,0x00000006,0x0000010a,0x00000002, + 0x0004002b,0x00000006,0x0000010b,0x00000003,0x0004002b,0x00000006,0x00000111,0x00000001, + 0x00040017,0x00000128,0x00000013,0x00000002,0x00040017,0x00000129,0x00000013,0x00000003, + 0x001d001e,0x0000012a,0x0000001f,0x0000001f,0x00000128,0x00000013,0x00000013,0x0000001f, + 0x0000001e,0x0000001e,0x00000030,0x00000013,0x0000001e,0x0000001f,0x00000128,0x0000001e, + 0x00000006,0x0000001f,0x0000001e,0x0000001e,0x0000001f,0x0000001f,0x00000129,0x00000006, + 0x00000128,0x00000013,0x0000001e,0x00000128,0x00000128,0x00040020,0x0000012b,0x00000002, + 0x0000012a,0x0004003b,0x0000012b,0x0000012c,0x00000002,0x0004002b,0x0000001e,0x0000012d, + 0x00000012,0x00040020,0x0000012e,0x00000002,0x0000001f,0x0004002b,0x0000001e,0x00000133, + 0x00000013,0x0004002b,0x0000001e,0x00000138,0x00000001,0x0005001e,0x0000013d,0x00000006, + 0x00000006,0x00000019,0x00040020,0x0000013e,0x00000002,0x0000013d,0x0004003b,0x0000013e, + 0x0000013f,0x00000002,0x00040020,0x00000140,0x00000002,0x00000006,0x0004002b,0x0000001e, + 0x00000149,0x00000002,0x00040020,0x0000014a,0x00000002,0x00000019,0x00090019,0x0000014f, + 0x00000013,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000150,0x00000000,0x0000014f,0x0004003b,0x00000150,0x00000151,0x00000000,0x0003001d, + 0x00000157,0x00000006,0x0003001e,0x00000158,0x00000157,0x00040020,0x00000159,0x0000000c, + 0x00000158,0x0004003b,0x00000159,0x0000015a,0x0000000c,0x00040020,0x0000015d,0x0000000c, + 0x00000006,0x0004002b,0x00000006,0x00000161,0x00000000,0x00090019,0x00000167,0x00000013, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000002,0x00040020,0x00000168, + 0x00000000,0x00000167,0x0004003b,0x00000168,0x00000169,0x00000000,0x0004003b,0x00000168, + 0x00000172,0x00000000,0x0004003b,0x00000168,0x0000017b,0x00000000,0x0004003b,0x00000168, + 0x00000184,0x00000000,0x0004002b,0x00000006,0x0000018a,0x00000004,0x0004003b,0x00000168, + 0x0000018e,0x00000000,0x0004002b,0x00000006,0x00000194,0x00000005,0x0004003b,0x00000168, + 0x00000198,0x00000000,0x0004002b,0x00000006,0x0000019e,0x00000006,0x0004003b,0x00000168, + 0x000001a2,0x00000000,0x0004002b,0x00000006,0x000001a8,0x00000007,0x0004003b,0x00000168, + 0x000001ac,0x00000000,0x0004002b,0x00000006,0x000001b2,0x00000008,0x0004003b,0x00000168, + 0x000001b6,0x00000000,0x0004002b,0x00000006,0x000001bc,0x00000009,0x0004003b,0x00000168, + 0x000001c0,0x00000000,0x0004002b,0x00000006,0x000001c6,0x0000000a,0x0004003b,0x00000168, + 0x000001ca,0x00000000,0x0004002b,0x00000006,0x000001d0,0x0000000b,0x0004003b,0x00000168, + 0x000001d4,0x00000000,0x0004002b,0x00000006,0x000001da,0x0000000c,0x0004003b,0x00000168, + 0x000001de,0x00000000,0x0007002c,0x00000030,0x000001e3,0x00000105,0x00000105,0x00000105, + 0x00000105,0x00040020,0x00000289,0x00000004,0x00000006,0x0004003b,0x00000289,0x0000028a, + 0x00000004,0x0004002b,0x00000006,0x00000295,0x00000010,0x0004001c,0x00000296,0x00000013, + 0x00000295,0x0004001c,0x00000297,0x00000296,0x00000295,0x00040020,0x00000298,0x00000004, + 0x00000297,0x0004003b,0x00000298,0x00000299,0x00000004,0x00040020,0x0000029c,0x00000004, + 0x00000013,0x0004003b,0x00000298,0x0000029f,0x00000004,0x0004003b,0x00000298,0x000002a4, + 0x00000004,0x0004003b,0x00000298,0x000002a9,0x00000004,0x0004002b,0x00000006,0x000002f8, + 0x00000d48,0x0004002b,0x00000006,0x000002f9,0x00000108,0x0005002c,0x00000019,0x00000348, + 0x00000161,0x00000161,0x0005002c,0x00000019,0x0000034b,0x00000161,0x00000111,0x0005002c, + 0x00000019,0x0000034e,0x00000111,0x00000161,0x0005002c,0x00000019,0x00000351,0x00000111, + 0x00000111,0x0004002b,0x00000006,0x00000396,0x00000040,0x0004002b,0x00000006,0x000003a4, + 0x00000020,0x0004001c,0x000003ae,0x00000030,0x0000018a,0x00040020,0x000003af,0x00000007, + 0x000003ae,0x0004002b,0x0000001e,0x0000042b,0x00000003,0x0004002b,0x0000001e,0x0000069c, + 0x00000006,0x0004002b,0x0000001e,0x000006a5,0x00000007,0x00040017,0x0000070b,0x00000006, + 0x00000003,0x00040020,0x0000070c,0x00000001,0x0000070b,0x0004003b,0x0000070c,0x0000070d, + 0x00000001,0x00040020,0x00000710,0x00000001,0x00000006,0x0004003b,0x00000710,0x00000711, + 0x00000001,0x0004002b,0x00000013,0x00000717,0x387fda40,0x0004002b,0x00000013,0x00000718, + 0x477fe000,0x0004002b,0x00000013,0x00000719,0x37801002,0x0002001a,0x0000071a,0x00040020, + 0x0000071b,0x00000000,0x0000071a,0x0004003b,0x0000071b,0x0000071c,0x00000000,0x0004002b, + 0x00000013,0x0000071d,0x3a83126f,0x0004002b,0x00000013,0x0000071e,0x7f7fffff,0x0004002b, + 0x00000013,0x0000071f,0x00800000,0x0004002b,0x00000006,0x00000720,0x80000000,0x0004002b, + 0x00000006,0x00000721,0x0000001f,0x0004002b,0x00000006,0x00000722,0x000003ff,0x0004002b, + 0x00000006,0x00000723,0x00000015,0x0004002b,0x00000006,0x00000724,0x00000100,0x0006002c, + 0x0000070b,0x00000725,0x00000724,0x00000111,0x00000111,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x000000ee,0x00000714,0x00000007, + 0x0004003b,0x00000035,0x00000715,0x00000007,0x0004003d,0x0000070b,0x0000070e,0x0000070d, + 0x0004007c,0x000000ed,0x0000070f,0x0000070e,0x0004003d,0x00000006,0x00000712,0x00000711, + 0x0004007c,0x0000001e,0x00000713,0x00000712,0x0003003e,0x00000714,0x0000070f,0x0003003e, + 0x00000715,0x00000713,0x00060039,0x00000002,0x00000716,0x000000f2,0x00000714,0x00000715, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x000000f4,0x00000009,0x0004003d,0x00000006, + 0x000000f5,0x0000000a,0x0004007c,0x0000001e,0x000000f6,0x000000f5,0x0004003d,0x00000006, + 0x000000f7,0x0000000b,0x0004007c,0x0000001e,0x000000f8,0x000000f7,0x000600cb,0x00000006, + 0x000000f9,0x000000f4,0x000000f6,0x000000f8,0x000200fe,0x000000f9,0x00010038,0x00050036, + 0x00000006,0x00000011,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037, + 0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x00000006,0x000000fc,0x0000000e,0x0004003d,0x00000006,0x000000fd,0x0000000f,0x0004003d, + 0x00000006,0x000000ff,0x00000010,0x0004007c,0x0000001e,0x00000100,0x000000ff,0x000700c9, + 0x00000006,0x00000101,0x000000fc,0x000000fd,0x000000fe,0x00000100,0x000200fe,0x00000101, + 0x00010038,0x00050036,0x00000013,0x00000017,0x00000000,0x00000015,0x00030037,0x00000014, + 0x00000016,0x000200f8,0x00000018,0x0004003d,0x00000013,0x00000104,0x00000016,0x0008000c, + 0x00000013,0x00000107,0x00000001,0x0000002b,0x00000104,0x00000105,0x00000106,0x000200fe, + 0x00000107,0x00010038,0x00050036,0x00000019,0x0000001c,0x00000000,0x0000001a,0x00030037, + 0x00000007,0x0000001b,0x000200f8,0x0000001d,0x0004003b,0x00000007,0x0000010c,0x00000007, + 0x0004003b,0x00000007,0x0000010e,0x00000007,0x0004003b,0x00000007,0x0000010f,0x00000007, + 0x0004003b,0x00000007,0x00000112,0x00000007,0x0004003b,0x00000007,0x00000113,0x00000007, + 0x0004003b,0x00000007,0x00000115,0x00000007,0x0004003b,0x00000007,0x00000117,0x00000007, + 0x0004003b,0x00000007,0x00000119,0x00000007,0x0004003b,0x00000007,0x0000011a,0x00000007, + 0x0004003b,0x00000007,0x0000011c,0x00000007,0x0004003b,0x00000007,0x0000011e,0x00000007, + 0x0004003b,0x00000007,0x0000011f,0x00000007,0x0004003b,0x00000007,0x00000121,0x00000007, + 0x0004003b,0x00000007,0x00000122,0x00000007,0x0004003b,0x00000007,0x00000123,0x00000007, + 0x0004003d,0x00000006,0x0000010d,0x0000001b,0x0003003e,0x0000010c,0x0000010d,0x0003003e, + 0x0000010e,0x0000010a,0x0003003e,0x0000010f,0x0000010b,0x00070039,0x00000006,0x00000110, + 0x0000000c,0x0000010c,0x0000010e,0x0000010f,0x0003003e,0x00000112,0x00000110,0x0004003d, + 0x00000006,0x00000114,0x0000001b,0x0003003e,0x00000113,0x00000114,0x0003003e,0x00000115, + 0x00000111,0x00070039,0x00000006,0x00000116,0x00000011,0x00000112,0x00000113,0x00000115, + 0x0004003d,0x00000006,0x00000118,0x0000001b,0x0003003e,0x00000117,0x00000118,0x0003003e, + 0x00000119,0x0000010b,0x0003003e,0x0000011a,0x0000010b,0x00070039,0x00000006,0x0000011b, + 0x0000000c,0x00000117,0x00000119,0x0000011a,0x0004003d,0x00000006,0x0000011d,0x0000001b, + 0x0003003e,0x0000011c,0x0000011d,0x0003003e,0x0000011e,0x00000111,0x0003003e,0x0000011f, + 0x0000010a,0x00070039,0x00000006,0x00000120,0x0000000c,0x0000011c,0x0000011e,0x0000011f, + 0x0003003e,0x00000121,0x0000011b,0x0003003e,0x00000122,0x00000120,0x0003003e,0x00000123, + 0x0000010a,0x00070039,0x00000006,0x00000124,0x00000011,0x00000121,0x00000122,0x00000123, + 0x00050050,0x00000019,0x00000125,0x00000116,0x00000124,0x000200fe,0x00000125,0x00010038, + 0x00050036,0x0000001f,0x00000021,0x00000000,0x00000020,0x000200f8,0x00000022,0x00050041, + 0x0000012e,0x0000012f,0x0000012c,0x0000012d,0x0004003d,0x0000001f,0x00000130,0x0000012f, + 0x000200fe,0x00000130,0x00010038,0x00050036,0x0000001f,0x00000023,0x00000000,0x00000020, + 0x000200f8,0x00000024,0x00050041,0x0000012e,0x00000134,0x0000012c,0x00000133,0x0004003d, + 0x0000001f,0x00000135,0x00000134,0x000200fe,0x00000135,0x00010038,0x00050036,0x0000001f, + 0x00000025,0x00000000,0x00000020,0x000200f8,0x00000026,0x00050041,0x0000012e,0x00000139, + 0x0000012c,0x00000138,0x0004003d,0x0000001f,0x0000013a,0x00000139,0x000200fe,0x0000013a, + 0x00010038,0x00050036,0x00000006,0x00000028,0x00000000,0x00000027,0x000200f8,0x00000029, + 0x00050041,0x00000140,0x00000141,0x0000013f,0x000000fe,0x0004003d,0x00000006,0x00000142, + 0x00000141,0x000200fe,0x00000142,0x00010038,0x00050036,0x00000006,0x0000002a,0x00000000, + 0x00000027,0x000200f8,0x0000002b,0x00050041,0x00000140,0x00000145,0x0000013f,0x00000138, + 0x0004003d,0x00000006,0x00000146,0x00000145,0x000200fe,0x00000146,0x00010038,0x00050036, + 0x00000019,0x0000002d,0x00000000,0x0000002c,0x000200f8,0x0000002e,0x00050041,0x0000014a, + 0x0000014b,0x0000013f,0x00000149,0x0004003d,0x00000019,0x0000014c,0x0000014b,0x000200fe, + 0x0000014c,0x00010038,0x00050036,0x00000030,0x00000033,0x00000000,0x00000031,0x00030037, + 0x0000002f,0x00000032,0x000200f8,0x00000034,0x0004003d,0x0000014f,0x00000152,0x00000151, + 0x0004003d,0x0000001f,0x00000153,0x00000032,0x0007005f,0x00000030,0x00000154,0x00000152, + 0x00000153,0x00000002,0x000000fe,0x000200fe,0x00000154,0x00010038,0x00050036,0x00000002, + 0x00000039,0x00000000,0x00000036,0x00030037,0x00000035,0x00000037,0x00030037,0x00000007, + 0x00000038,0x000200f8,0x0000003a,0x0004003d,0x0000001e,0x0000015b,0x00000037,0x0004003d, + 0x00000006,0x0000015c,0x00000038,0x00060041,0x0000015d,0x0000015e,0x0000015a,0x000000fe, + 0x0000015b,0x0003003e,0x0000015e,0x0000015c,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x0000003d,0x00000000,0x00000036,0x00030037,0x00000035,0x0000003b,0x00030037,0x00000007, + 0x0000003c,0x000200f8,0x0000003e,0x0004003d,0x0000001e,0x0000015f,0x0000003b,0x00060041, + 0x0000015d,0x00000160,0x0000015a,0x000000fe,0x0000015f,0x000700ea,0x00000006,0x00000162, + 0x00000160,0x00000111,0x00000161,0x00000111,0x0003003e,0x0000003c,0x00000162,0x000100fd, + 0x00010038,0x00050036,0x00000030,0x00000042,0x00000000,0x0000003f,0x00030037,0x0000002f, + 0x00000040,0x00030037,0x00000007,0x00000041,0x000200f8,0x00000043,0x0004003d,0x00000006, + 0x00000163,0x00000041,0x000500aa,0x00000077,0x00000164,0x00000163,0x00000161,0x000300f7, + 0x00000166,0x00000000,0x000400fa,0x00000164,0x00000165,0x00000166,0x000200f8,0x00000165, + 0x0004003d,0x00000167,0x0000016a,0x00000169,0x0004003d,0x0000001f,0x0000016b,0x00000040, + 0x00050062,0x00000030,0x0000016c,0x0000016a,0x0000016b,0x000200fe,0x0000016c,0x000200f8, + 0x00000166,0x0004003d,0x00000006,0x0000016e,0x00000041,0x000500aa,0x00000077,0x0000016f, + 0x0000016e,0x00000111,0x000300f7,0x00000171,0x00000000,0x000400fa,0x0000016f,0x00000170, + 0x00000171,0x000200f8,0x00000170,0x0004003d,0x00000167,0x00000173,0x00000172,0x0004003d, + 0x0000001f,0x00000174,0x00000040,0x00050062,0x00000030,0x00000175,0x00000173,0x00000174, + 0x000200fe,0x00000175,0x000200f8,0x00000171,0x0004003d,0x00000006,0x00000177,0x00000041, + 0x000500aa,0x00000077,0x00000178,0x00000177,0x0000010a,0x000300f7,0x0000017a,0x00000000, + 0x000400fa,0x00000178,0x00000179,0x0000017a,0x000200f8,0x00000179,0x0004003d,0x00000167, + 0x0000017c,0x0000017b,0x0004003d,0x0000001f,0x0000017d,0x00000040,0x00050062,0x00000030, + 0x0000017e,0x0000017c,0x0000017d,0x000200fe,0x0000017e,0x000200f8,0x0000017a,0x0004003d, + 0x00000006,0x00000180,0x00000041,0x000500aa,0x00000077,0x00000181,0x00000180,0x0000010b, + 0x000300f7,0x00000183,0x00000000,0x000400fa,0x00000181,0x00000182,0x00000183,0x000200f8, + 0x00000182,0x0004003d,0x00000167,0x00000185,0x00000184,0x0004003d,0x0000001f,0x00000186, + 0x00000040,0x00050062,0x00000030,0x00000187,0x00000185,0x00000186,0x000200fe,0x00000187, + 0x000200f8,0x00000183,0x0004003d,0x00000006,0x00000189,0x00000041,0x000500aa,0x00000077, + 0x0000018b,0x00000189,0x0000018a,0x000300f7,0x0000018d,0x00000000,0x000400fa,0x0000018b, + 0x0000018c,0x0000018d,0x000200f8,0x0000018c,0x0004003d,0x00000167,0x0000018f,0x0000018e, + 0x0004003d,0x0000001f,0x00000190,0x00000040,0x00050062,0x00000030,0x00000191,0x0000018f, + 0x00000190,0x000200fe,0x00000191,0x000200f8,0x0000018d,0x0004003d,0x00000006,0x00000193, + 0x00000041,0x000500aa,0x00000077,0x00000195,0x00000193,0x00000194,0x000300f7,0x00000197, + 0x00000000,0x000400fa,0x00000195,0x00000196,0x00000197,0x000200f8,0x00000196,0x0004003d, + 0x00000167,0x00000199,0x00000198,0x0004003d,0x0000001f,0x0000019a,0x00000040,0x00050062, + 0x00000030,0x0000019b,0x00000199,0x0000019a,0x000200fe,0x0000019b,0x000200f8,0x00000197, + 0x0004003d,0x00000006,0x0000019d,0x00000041,0x000500aa,0x00000077,0x0000019f,0x0000019d, + 0x0000019e,0x000300f7,0x000001a1,0x00000000,0x000400fa,0x0000019f,0x000001a0,0x000001a1, + 0x000200f8,0x000001a0,0x0004003d,0x00000167,0x000001a3,0x000001a2,0x0004003d,0x0000001f, + 0x000001a4,0x00000040,0x00050062,0x00000030,0x000001a5,0x000001a3,0x000001a4,0x000200fe, + 0x000001a5,0x000200f8,0x000001a1,0x0004003d,0x00000006,0x000001a7,0x00000041,0x000500aa, + 0x00000077,0x000001a9,0x000001a7,0x000001a8,0x000300f7,0x000001ab,0x00000000,0x000400fa, + 0x000001a9,0x000001aa,0x000001ab,0x000200f8,0x000001aa,0x0004003d,0x00000167,0x000001ad, + 0x000001ac,0x0004003d,0x0000001f,0x000001ae,0x00000040,0x00050062,0x00000030,0x000001af, + 0x000001ad,0x000001ae,0x000200fe,0x000001af,0x000200f8,0x000001ab,0x0004003d,0x00000006, + 0x000001b1,0x00000041,0x000500aa,0x00000077,0x000001b3,0x000001b1,0x000001b2,0x000300f7, + 0x000001b5,0x00000000,0x000400fa,0x000001b3,0x000001b4,0x000001b5,0x000200f8,0x000001b4, + 0x0004003d,0x00000167,0x000001b7,0x000001b6,0x0004003d,0x0000001f,0x000001b8,0x00000040, + 0x00050062,0x00000030,0x000001b9,0x000001b7,0x000001b8,0x000200fe,0x000001b9,0x000200f8, + 0x000001b5,0x0004003d,0x00000006,0x000001bb,0x00000041,0x000500aa,0x00000077,0x000001bd, + 0x000001bb,0x000001bc,0x000300f7,0x000001bf,0x00000000,0x000400fa,0x000001bd,0x000001be, + 0x000001bf,0x000200f8,0x000001be,0x0004003d,0x00000167,0x000001c1,0x000001c0,0x0004003d, + 0x0000001f,0x000001c2,0x00000040,0x00050062,0x00000030,0x000001c3,0x000001c1,0x000001c2, + 0x000200fe,0x000001c3,0x000200f8,0x000001bf,0x0004003d,0x00000006,0x000001c5,0x00000041, + 0x000500aa,0x00000077,0x000001c7,0x000001c5,0x000001c6,0x000300f7,0x000001c9,0x00000000, + 0x000400fa,0x000001c7,0x000001c8,0x000001c9,0x000200f8,0x000001c8,0x0004003d,0x00000167, + 0x000001cb,0x000001ca,0x0004003d,0x0000001f,0x000001cc,0x00000040,0x00050062,0x00000030, + 0x000001cd,0x000001cb,0x000001cc,0x000200fe,0x000001cd,0x000200f8,0x000001c9,0x0004003d, + 0x00000006,0x000001cf,0x00000041,0x000500aa,0x00000077,0x000001d1,0x000001cf,0x000001d0, + 0x000300f7,0x000001d3,0x00000000,0x000400fa,0x000001d1,0x000001d2,0x000001d3,0x000200f8, + 0x000001d2,0x0004003d,0x00000167,0x000001d5,0x000001d4,0x0004003d,0x0000001f,0x000001d6, + 0x00000040,0x00050062,0x00000030,0x000001d7,0x000001d5,0x000001d6,0x000200fe,0x000001d7, + 0x000200f8,0x000001d3,0x0004003d,0x00000006,0x000001d9,0x00000041,0x000500aa,0x00000077, + 0x000001db,0x000001d9,0x000001da,0x000300f7,0x000001dd,0x00000000,0x000400fa,0x000001db, + 0x000001dc,0x000001dd,0x000200f8,0x000001dc,0x0004003d,0x00000167,0x000001df,0x000001de, + 0x0004003d,0x0000001f,0x000001e0,0x00000040,0x00050062,0x00000030,0x000001e1,0x000001df, + 0x000001e0,0x000200fe,0x000001e1,0x000200f8,0x000001dd,0x000200fe,0x000001e3,0x00010038, + 0x00050036,0x00000002,0x00000049,0x00000000,0x00000045,0x00030037,0x0000002f,0x00000046, + 0x00030037,0x00000044,0x00000047,0x00030037,0x00000007,0x00000048,0x000200f8,0x0000004a, + 0x0004003d,0x00000006,0x000001e6,0x00000048,0x000500aa,0x00000077,0x000001e7,0x000001e6, + 0x00000161,0x000300f7,0x000001e9,0x00000000,0x000400fa,0x000001e7,0x000001e8,0x000001e9, + 0x000200f8,0x000001e8,0x0004003d,0x00000167,0x000001ea,0x00000169,0x0004003d,0x0000001f, + 0x000001eb,0x00000046,0x0004003d,0x00000030,0x000001ec,0x00000047,0x00040063,0x000001ea, + 0x000001eb,0x000001ec,0x000200f9,0x000001e9,0x000200f8,0x000001e9,0x0004003d,0x00000006, + 0x000001ed,0x00000048,0x000500aa,0x00000077,0x000001ee,0x000001ed,0x00000111,0x000300f7, + 0x000001f0,0x00000000,0x000400fa,0x000001ee,0x000001ef,0x000001f0,0x000200f8,0x000001ef, + 0x0004003d,0x00000167,0x000001f1,0x00000172,0x0004003d,0x0000001f,0x000001f2,0x00000046, + 0x0004003d,0x00000030,0x000001f3,0x00000047,0x00040063,0x000001f1,0x000001f2,0x000001f3, + 0x000200f9,0x000001f0,0x000200f8,0x000001f0,0x0004003d,0x00000006,0x000001f4,0x00000048, + 0x000500aa,0x00000077,0x000001f5,0x000001f4,0x0000010a,0x000300f7,0x000001f7,0x00000000, + 0x000400fa,0x000001f5,0x000001f6,0x000001f7,0x000200f8,0x000001f6,0x0004003d,0x00000167, + 0x000001f8,0x0000017b,0x0004003d,0x0000001f,0x000001f9,0x00000046,0x0004003d,0x00000030, + 0x000001fa,0x00000047,0x00040063,0x000001f8,0x000001f9,0x000001fa,0x000200f9,0x000001f7, + 0x000200f8,0x000001f7,0x0004003d,0x00000006,0x000001fb,0x00000048,0x000500aa,0x00000077, + 0x000001fc,0x000001fb,0x0000010b,0x000300f7,0x000001fe,0x00000000,0x000400fa,0x000001fc, + 0x000001fd,0x000001fe,0x000200f8,0x000001fd,0x0004003d,0x00000167,0x000001ff,0x00000184, + 0x0004003d,0x0000001f,0x00000200,0x00000046,0x0004003d,0x00000030,0x00000201,0x00000047, + 0x00040063,0x000001ff,0x00000200,0x00000201,0x000200f9,0x000001fe,0x000200f8,0x000001fe, + 0x0004003d,0x00000006,0x00000202,0x00000048,0x000500aa,0x00000077,0x00000203,0x00000202, + 0x0000018a,0x000300f7,0x00000205,0x00000000,0x000400fa,0x00000203,0x00000204,0x00000205, + 0x000200f8,0x00000204,0x0004003d,0x00000167,0x00000206,0x0000018e,0x0004003d,0x0000001f, + 0x00000207,0x00000046,0x0004003d,0x00000030,0x00000208,0x00000047,0x00040063,0x00000206, + 0x00000207,0x00000208,0x000200f9,0x00000205,0x000200f8,0x00000205,0x0004003d,0x00000006, + 0x00000209,0x00000048,0x000500aa,0x00000077,0x0000020a,0x00000209,0x00000194,0x000300f7, + 0x0000020c,0x00000000,0x000400fa,0x0000020a,0x0000020b,0x0000020c,0x000200f8,0x0000020b, + 0x0004003d,0x00000167,0x0000020d,0x00000198,0x0004003d,0x0000001f,0x0000020e,0x00000046, + 0x0004003d,0x00000030,0x0000020f,0x00000047,0x00040063,0x0000020d,0x0000020e,0x0000020f, + 0x000200f9,0x0000020c,0x000200f8,0x0000020c,0x0004003d,0x00000006,0x00000210,0x00000048, + 0x000500aa,0x00000077,0x00000211,0x00000210,0x0000019e,0x000300f7,0x00000213,0x00000000, + 0x000400fa,0x00000211,0x00000212,0x00000213,0x000200f8,0x00000212,0x0004003d,0x00000167, + 0x00000214,0x000001a2,0x0004003d,0x0000001f,0x00000215,0x00000046,0x0004003d,0x00000030, + 0x00000216,0x00000047,0x00040063,0x00000214,0x00000215,0x00000216,0x000200f9,0x00000213, + 0x000200f8,0x00000213,0x0004003d,0x00000006,0x00000217,0x00000048,0x000500aa,0x00000077, + 0x00000218,0x00000217,0x000001a8,0x000300f7,0x0000021a,0x00000000,0x000400fa,0x00000218, + 0x00000219,0x0000021a,0x000200f8,0x00000219,0x0004003d,0x00000167,0x0000021b,0x000001ac, + 0x0004003d,0x0000001f,0x0000021c,0x00000046,0x0004003d,0x00000030,0x0000021d,0x00000047, + 0x00040063,0x0000021b,0x0000021c,0x0000021d,0x000200f9,0x0000021a,0x000200f8,0x0000021a, + 0x0004003d,0x00000006,0x0000021e,0x00000048,0x000500aa,0x00000077,0x0000021f,0x0000021e, + 0x000001b2,0x000300f7,0x00000221,0x00000000,0x000400fa,0x0000021f,0x00000220,0x00000221, + 0x000200f8,0x00000220,0x0004003d,0x00000167,0x00000222,0x000001b6,0x0004003d,0x0000001f, + 0x00000223,0x00000046,0x0004003d,0x00000030,0x00000224,0x00000047,0x00040063,0x00000222, + 0x00000223,0x00000224,0x000200f9,0x00000221,0x000200f8,0x00000221,0x0004003d,0x00000006, + 0x00000225,0x00000048,0x000500aa,0x00000077,0x00000226,0x00000225,0x000001bc,0x000300f7, + 0x00000228,0x00000000,0x000400fa,0x00000226,0x00000227,0x00000228,0x000200f8,0x00000227, + 0x0004003d,0x00000167,0x00000229,0x000001c0,0x0004003d,0x0000001f,0x0000022a,0x00000046, + 0x0004003d,0x00000030,0x0000022b,0x00000047,0x00040063,0x00000229,0x0000022a,0x0000022b, + 0x000200f9,0x00000228,0x000200f8,0x00000228,0x0004003d,0x00000006,0x0000022c,0x00000048, + 0x000500aa,0x00000077,0x0000022d,0x0000022c,0x000001c6,0x000300f7,0x0000022f,0x00000000, + 0x000400fa,0x0000022d,0x0000022e,0x0000022f,0x000200f8,0x0000022e,0x0004003d,0x00000167, + 0x00000230,0x000001ca,0x0004003d,0x0000001f,0x00000231,0x00000046,0x0004003d,0x00000030, + 0x00000232,0x00000047,0x00040063,0x00000230,0x00000231,0x00000232,0x000200f9,0x0000022f, + 0x000200f8,0x0000022f,0x0004003d,0x00000006,0x00000233,0x00000048,0x000500aa,0x00000077, + 0x00000234,0x00000233,0x000001d0,0x000300f7,0x00000236,0x00000000,0x000400fa,0x00000234, + 0x00000235,0x00000236,0x000200f8,0x00000235,0x0004003d,0x00000167,0x00000237,0x000001d4, + 0x0004003d,0x0000001f,0x00000238,0x00000046,0x0004003d,0x00000030,0x00000239,0x00000047, + 0x00040063,0x00000237,0x00000238,0x00000239,0x000200f9,0x00000236,0x000200f8,0x00000236, + 0x0004003d,0x00000006,0x0000023a,0x00000048,0x000500aa,0x00000077,0x0000023b,0x0000023a, + 0x000001da,0x000300f7,0x0000023d,0x00000000,0x000400fa,0x0000023b,0x0000023c,0x0000023d, + 0x000200f8,0x0000023c,0x0004003d,0x00000167,0x0000023e,0x000001de,0x0004003d,0x0000001f, + 0x0000023f,0x00000046,0x0004003d,0x00000030,0x00000240,0x00000047,0x00040063,0x0000023e, + 0x0000023f,0x00000240,0x000200f9,0x0000023d,0x000200f8,0x0000023d,0x000100fd,0x00010038, + 0x00050036,0x00000030,0x0000004d,0x00000000,0x0000003f,0x00030037,0x0000002f,0x0000004b, + 0x00030037,0x00000007,0x0000004c,0x000200f8,0x0000004e,0x0004003b,0x00000044,0x00000241, + 0x00000007,0x0004003b,0x0000002f,0x00000242,0x00000007,0x0004003b,0x00000014,0x0000024d, + 0x00000007,0x0004003d,0x0000001f,0x00000243,0x0000004b,0x0003003e,0x00000242,0x00000243, + 0x00050039,0x00000030,0x00000244,0x00000033,0x00000242,0x00040039,0x0000001f,0x00000245, + 0x00000025,0x00050051,0x0000001e,0x00000246,0x00000245,0x00000000,0x000500ad,0x00000077, + 0x00000247,0x00000246,0x000000fe,0x000600a9,0x00000013,0x00000248,0x00000247,0x00000106, + 0x00000105,0x0005008e,0x00000030,0x00000249,0x00000244,0x00000248,0x0003003e,0x00000241, + 0x00000249,0x00050041,0x00000014,0x0000024a,0x00000241,0x0000010b,0x0004003d,0x00000013, + 0x0000024b,0x0000024a,0x00050083,0x00000013,0x0000024c,0x00000106,0x0000024b,0x0003003e, + 0x0000024d,0x0000024c,0x00050039,0x00000013,0x0000024e,0x00000017,0x0000024d,0x00050041, + 0x00000014,0x0000024f,0x00000241,0x0000010b,0x0003003e,0x0000024f,0x0000024e,0x00050041, + 0x00000035,0x00000250,0x0000004b,0x00000161,0x0004003d,0x0000001e,0x00000251,0x00000250, + 0x00040039,0x0000001f,0x00000252,0x00000021,0x00050051,0x0000001e,0x00000253,0x00000252, + 0x00000000,0x000500b1,0x00000077,0x00000254,0x00000251,0x00000253,0x000400a8,0x00000077, + 0x00000255,0x00000254,0x000300f7,0x00000257,0x00000000,0x000400fa,0x00000255,0x00000256, + 0x00000257,0x000200f8,0x00000256,0x00050041,0x00000035,0x00000258,0x0000004b,0x00000161, + 0x0004003d,0x0000001e,0x00000259,0x00000258,0x00040039,0x0000001f,0x0000025a,0x00000023, + 0x00050051,0x0000001e,0x0000025b,0x0000025a,0x00000000,0x00040039,0x0000001f,0x0000025c, + 0x00000021,0x00050051,0x0000001e,0x0000025d,0x0000025c,0x00000000,0x00050080,0x0000001e, + 0x0000025e,0x0000025b,0x0000025d,0x000500af,0x00000077,0x0000025f,0x00000259,0x0000025e, + 0x000200f9,0x00000257,0x000200f8,0x00000257,0x000700f5,0x00000077,0x00000260,0x00000254, + 0x0000004e,0x0000025f,0x00000256,0x000400a8,0x00000077,0x00000261,0x00000260,0x000300f7, + 0x00000263,0x00000000,0x000400fa,0x00000261,0x00000262,0x00000263,0x000200f8,0x00000262, + 0x00050041,0x00000035,0x00000264,0x0000004b,0x00000111,0x0004003d,0x0000001e,0x00000265, + 0x00000264,0x00040039,0x0000001f,0x00000266,0x00000021,0x00050051,0x0000001e,0x00000267, + 0x00000266,0x00000001,0x000500b1,0x00000077,0x00000268,0x00000265,0x00000267,0x000200f9, + 0x00000263,0x000200f8,0x00000263,0x000700f5,0x00000077,0x00000269,0x00000260,0x00000257, + 0x00000268,0x00000262,0x000400a8,0x00000077,0x0000026a,0x00000269,0x000300f7,0x0000026c, + 0x00000000,0x000400fa,0x0000026a,0x0000026b,0x0000026c,0x000200f8,0x0000026b,0x00050041, + 0x00000035,0x0000026d,0x0000004b,0x00000111,0x0004003d,0x0000001e,0x0000026e,0x0000026d, + 0x00040039,0x0000001f,0x0000026f,0x00000023,0x00050051,0x0000001e,0x00000270,0x0000026f, + 0x00000001,0x00040039,0x0000001f,0x00000271,0x00000021,0x00050051,0x0000001e,0x00000272, + 0x00000271,0x00000001,0x00050080,0x0000001e,0x00000273,0x00000270,0x00000272,0x000500af, + 0x00000077,0x00000274,0x0000026e,0x00000273,0x000200f9,0x0000026c,0x000200f8,0x0000026c, + 0x000700f5,0x00000077,0x00000275,0x00000269,0x00000263,0x00000274,0x0000026b,0x000300f7, + 0x00000277,0x00000000,0x000400fa,0x00000275,0x00000276,0x00000277,0x000200f8,0x00000276, + 0x00050041,0x00000014,0x00000278,0x00000241,0x0000010b,0x0003003e,0x00000278,0x00000105, + 0x000200f9,0x00000277,0x000200f8,0x00000277,0x0004003d,0x00000030,0x00000279,0x00000241, + 0x000200fe,0x00000279,0x00010038,0x00050036,0x00000030,0x00000051,0x00000000,0x0000003f, + 0x00030037,0x0000002f,0x0000004f,0x00030037,0x00000007,0x00000050,0x000200f8,0x00000052, + 0x0004003b,0x0000002f,0x0000027c,0x00000007,0x0004003b,0x00000007,0x0000027e,0x00000007, + 0x0004003d,0x0000001f,0x0000027d,0x0000004f,0x0003003e,0x0000027c,0x0000027d,0x0003003e, + 0x0000027e,0x00000194,0x00060039,0x00000030,0x0000027f,0x00000042,0x0000027c,0x0000027e, + 0x000200fe,0x0000027f,0x00010038,0x00050036,0x00000002,0x00000058,0x00000000,0x00000053, + 0x00030037,0x0000002f,0x00000054,0x00030037,0x00000044,0x00000055,0x00030037,0x00000007, + 0x00000056,0x00030037,0x00000007,0x00000057,0x000200f8,0x00000059,0x0004003b,0x0000002f, + 0x00000282,0x00000007,0x0004003b,0x00000044,0x00000284,0x00000007,0x0004003b,0x00000007, + 0x00000286,0x00000007,0x0004003d,0x0000001f,0x00000283,0x00000054,0x0003003e,0x00000282, + 0x00000283,0x0004003d,0x00000030,0x00000285,0x00000055,0x0003003e,0x00000284,0x00000285, + 0x0004003d,0x00000006,0x00000287,0x00000056,0x0003003e,0x00000286,0x00000287,0x00070039, + 0x00000002,0x00000288,0x00000049,0x00000282,0x00000284,0x00000286,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000005c,0x00000000,0x0000005a,0x00030037,0x00000007,0x0000005b, + 0x000200f8,0x0000005d,0x0004003b,0x00000035,0x0000028b,0x00000007,0x0004003b,0x00000007, + 0x0000028c,0x00000007,0x0003003e,0x0000028b,0x000000fe,0x00060039,0x00000002,0x0000028d, + 0x0000003d,0x0000028b,0x0000028c,0x0004003d,0x00000006,0x0000028e,0x0000028c,0x0003003e, + 0x0000028a,0x0000028e,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000005e,0x00000000, + 0x00000027,0x000200f8,0x0000005f,0x0004003d,0x00000006,0x0000028f,0x0000028a,0x000200fe, + 0x0000028f,0x00010038,0x00050036,0x00000002,0x00000061,0x00000000,0x0000005a,0x00030037, + 0x00000007,0x00000060,0x000200f8,0x00000062,0x0004003b,0x00000035,0x00000292,0x00000007, + 0x0004003b,0x00000007,0x00000293,0x00000007,0x0003003e,0x00000292,0x000000fe,0x0003003e, + 0x00000293,0x00000161,0x00060039,0x00000002,0x00000294,0x00000039,0x00000292,0x00000293, + 0x000100fd,0x00010038,0x00050036,0x00000030,0x00000066,0x00000000,0x00000063,0x00030037, + 0x00000007,0x00000064,0x00030037,0x00000007,0x00000065,0x000200f8,0x00000067,0x0004003d, + 0x00000006,0x0000029a,0x00000064,0x0004003d,0x00000006,0x0000029b,0x00000065,0x00060041, + 0x0000029c,0x0000029d,0x00000299,0x0000029a,0x0000029b,0x0004003d,0x00000013,0x0000029e, + 0x0000029d,0x0004003d,0x00000006,0x000002a0,0x00000064,0x0004003d,0x00000006,0x000002a1, + 0x00000065,0x00060041,0x0000029c,0x000002a2,0x0000029f,0x000002a0,0x000002a1,0x0004003d, + 0x00000013,0x000002a3,0x000002a2,0x0004003d,0x00000006,0x000002a5,0x00000064,0x0004003d, + 0x00000006,0x000002a6,0x00000065,0x00060041,0x0000029c,0x000002a7,0x000002a4,0x000002a5, + 0x000002a6,0x0004003d,0x00000013,0x000002a8,0x000002a7,0x0004003d,0x00000006,0x000002aa, + 0x00000064,0x0004003d,0x00000006,0x000002ab,0x00000065,0x00060041,0x0000029c,0x000002ac, + 0x000002a9,0x000002aa,0x000002ab,0x0004003d,0x00000013,0x000002ad,0x000002ac,0x00070050, + 0x00000030,0x000002ae,0x0000029e,0x000002a3,0x000002a8,0x000002ad,0x000200fe,0x000002ae, + 0x00010038,0x00050036,0x00000002,0x0000006c,0x00000000,0x00000068,0x00030037,0x00000007, + 0x00000069,0x00030037,0x00000007,0x0000006a,0x00030037,0x00000044,0x0000006b,0x000200f8, + 0x0000006d,0x0004003d,0x00000006,0x000002b1,0x00000069,0x0004003d,0x00000006,0x000002b2, + 0x0000006a,0x00050041,0x00000014,0x000002b3,0x0000006b,0x00000161,0x0004003d,0x00000013, + 0x000002b4,0x000002b3,0x00060041,0x0000029c,0x000002b5,0x00000299,0x000002b1,0x000002b2, + 0x0003003e,0x000002b5,0x000002b4,0x0004003d,0x00000006,0x000002b6,0x00000069,0x0004003d, + 0x00000006,0x000002b7,0x0000006a,0x00050041,0x00000014,0x000002b8,0x0000006b,0x00000111, + 0x0004003d,0x00000013,0x000002b9,0x000002b8,0x00060041,0x0000029c,0x000002ba,0x0000029f, + 0x000002b6,0x000002b7,0x0003003e,0x000002ba,0x000002b9,0x0004003d,0x00000006,0x000002bb, + 0x00000069,0x0004003d,0x00000006,0x000002bc,0x0000006a,0x00050041,0x00000014,0x000002bd, + 0x0000006b,0x0000010a,0x0004003d,0x00000013,0x000002be,0x000002bd,0x00060041,0x0000029c, + 0x000002bf,0x000002a4,0x000002bb,0x000002bc,0x0003003e,0x000002bf,0x000002be,0x0004003d, + 0x00000006,0x000002c0,0x00000069,0x0004003d,0x00000006,0x000002c1,0x0000006a,0x00050041, + 0x00000014,0x000002c2,0x0000006b,0x0000010b,0x0004003d,0x00000013,0x000002c3,0x000002c2, + 0x00060041,0x0000029c,0x000002c4,0x000002a9,0x000002c0,0x000002c1,0x0003003e,0x000002c4, + 0x000002c3,0x000100fd,0x00010038,0x00050036,0x00000030,0x00000073,0x00000000,0x0000006e, + 0x00030037,0x00000044,0x0000006f,0x00030037,0x00000044,0x00000070,0x00030037,0x00000044, + 0x00000071,0x00030037,0x00000044,0x00000072,0x000200f8,0x00000074,0x0004003b,0x00000044, + 0x000002c5,0x00000007,0x0004003b,0x00000014,0x000002cf,0x00000007,0x00050041,0x00000014, + 0x000002c6,0x0000006f,0x0000010b,0x0004003d,0x00000013,0x000002c7,0x000002c6,0x00050041, + 0x00000014,0x000002c8,0x00000070,0x0000010b,0x0004003d,0x00000013,0x000002c9,0x000002c8, + 0x00050041,0x00000014,0x000002ca,0x00000071,0x0000010b,0x0004003d,0x00000013,0x000002cb, + 0x000002ca,0x00050041,0x00000014,0x000002cc,0x00000072,0x0000010b,0x0004003d,0x00000013, + 0x000002cd,0x000002cc,0x00070050,0x00000030,0x000002ce,0x000002c7,0x000002c9,0x000002cb, + 0x000002cd,0x0003003e,0x000002c5,0x000002ce,0x00050041,0x00000014,0x000002d0,0x000002c5, + 0x00000161,0x0004003d,0x00000013,0x000002d1,0x000002d0,0x00050041,0x00000014,0x000002d2, + 0x000002c5,0x00000111,0x0004003d,0x00000013,0x000002d3,0x000002d2,0x00050081,0x00000013, + 0x000002d4,0x000002d1,0x000002d3,0x00050041,0x00000014,0x000002d5,0x000002c5,0x0000010a, + 0x0004003d,0x00000013,0x000002d6,0x000002d5,0x00050081,0x00000013,0x000002d7,0x000002d4, + 0x000002d6,0x00050041,0x00000014,0x000002d8,0x000002c5,0x0000010b,0x0004003d,0x00000013, + 0x000002d9,0x000002d8,0x00050081,0x00000013,0x000002da,0x000002d7,0x000002d9,0x0003003e, + 0x000002cf,0x000002da,0x0004003d,0x00000013,0x000002db,0x000002cf,0x000500b4,0x00000077, + 0x000002dc,0x000002db,0x00000105,0x000300f7,0x000002de,0x00000000,0x000400fa,0x000002dc, + 0x000002dd,0x000002de,0x000200f8,0x000002dd,0x000200fe,0x000001e3,0x000200f8,0x000002de, + 0x0004003d,0x00000030,0x000002e0,0x0000006f,0x00050041,0x00000014,0x000002e1,0x000002c5, + 0x00000161,0x0004003d,0x00000013,0x000002e2,0x000002e1,0x0005008e,0x00000030,0x000002e3, + 0x000002e0,0x000002e2,0x0004003d,0x00000030,0x000002e4,0x00000070,0x00050041,0x00000014, + 0x000002e5,0x000002c5,0x00000111,0x0004003d,0x00000013,0x000002e6,0x000002e5,0x0005008e, + 0x00000030,0x000002e7,0x000002e4,0x000002e6,0x00050081,0x00000030,0x000002e8,0x000002e3, + 0x000002e7,0x0004003d,0x00000030,0x000002e9,0x00000071,0x00050041,0x00000014,0x000002ea, + 0x000002c5,0x0000010a,0x0004003d,0x00000013,0x000002eb,0x000002ea,0x0005008e,0x00000030, + 0x000002ec,0x000002e9,0x000002eb,0x00050081,0x00000030,0x000002ed,0x000002e8,0x000002ec, + 0x0004003d,0x00000030,0x000002ee,0x00000072,0x00050041,0x00000014,0x000002ef,0x000002c5, + 0x0000010b,0x0004003d,0x00000013,0x000002f0,0x000002ef,0x0005008e,0x00000030,0x000002f1, + 0x000002ee,0x000002f0,0x00050081,0x00000030,0x000002f2,0x000002ed,0x000002f1,0x0004003d, + 0x00000013,0x000002f3,0x000002cf,0x00070050,0x00000030,0x000002f4,0x000002f3,0x000002f3, + 0x000002f3,0x000002f3,0x00050088,0x00000030,0x000002f5,0x000002f2,0x000002f4,0x000200fe, + 0x000002f5,0x00010038,0x00050036,0x00000002,0x00000075,0x00000000,0x00000003,0x000200f8, + 0x00000076,0x000300e1,0x0000010a,0x000002f8,0x000400e0,0x0000010a,0x0000010a,0x000002f9, + 0x000100fd,0x00010038,0x00050036,0x00000077,0x0000007c,0x00000000,0x00000078,0x00030037, + 0x00000007,0x00000079,0x00030037,0x00000007,0x0000007a,0x00030037,0x00000007,0x0000007b, + 0x000200f8,0x0000007d,0x0004003b,0x00000007,0x000002fe,0x00000007,0x0004003d,0x00000006, + 0x000002fa,0x0000007a,0x000500aa,0x00000077,0x000002fb,0x000002fa,0x00000161,0x000300f7, + 0x000002fd,0x00000000,0x000400fa,0x000002fb,0x000002fc,0x000002fd,0x000200f8,0x000002fc, + 0x0004003d,0x00000006,0x000002ff,0x0000007b,0x0003003e,0x000002fe,0x000002ff,0x00050039, + 0x00000002,0x00000300,0x0000005c,0x000002fe,0x000200f9,0x000002fd,0x000200f8,0x000002fd, + 0x00040039,0x00000002,0x00000301,0x00000075,0x00040039,0x00000006,0x00000302,0x0000005e, + 0x0004003d,0x00000006,0x00000303,0x00000079,0x00050082,0x00000006,0x00000304,0x00000303, + 0x00000111,0x000500ab,0x00000077,0x00000305,0x00000302,0x00000304,0x000200fe,0x00000305, + 0x00010038,0x00050036,0x00000030,0x00000080,0x00000000,0x0000007e,0x00030037,0x00000044, + 0x0000007f,0x000200f8,0x00000081,0x0004003b,0x00000044,0x00000308,0x00000007,0x0004003b, + 0x00000044,0x0000030a,0x00000007,0x0004003b,0x00000044,0x0000030d,0x00000007,0x0004003b, + 0x00000044,0x00000310,0x00000007,0x0004003b,0x00000044,0x00000313,0x00000007,0x0004003b, + 0x00000044,0x00000315,0x00000007,0x0004003b,0x00000044,0x00000317,0x00000007,0x0004003b, + 0x00000044,0x00000319,0x00000007,0x0004003d,0x00000030,0x00000309,0x0000007f,0x0003003e, + 0x00000308,0x00000309,0x0004003d,0x00000030,0x0000030b,0x0000007f,0x0006016e,0x00000030, + 0x0000030c,0x0000010b,0x0000030b,0x00000161,0x0003003e,0x0000030a,0x0000030c,0x0004003d, + 0x00000030,0x0000030e,0x0000007f,0x0006016e,0x00000030,0x0000030f,0x0000010b,0x0000030e, + 0x00000111,0x0003003e,0x0000030d,0x0000030f,0x0004003d,0x00000030,0x00000311,0x0000007f, + 0x0006016e,0x00000030,0x00000312,0x0000010b,0x00000311,0x0000010a,0x0003003e,0x00000310, + 0x00000312,0x0004003d,0x00000030,0x00000314,0x00000308,0x0003003e,0x00000313,0x00000314, + 0x0004003d,0x00000030,0x00000316,0x0000030a,0x0003003e,0x00000315,0x00000316,0x0004003d, + 0x00000030,0x00000318,0x0000030d,0x0003003e,0x00000317,0x00000318,0x0004003d,0x00000030, + 0x0000031a,0x00000310,0x0003003e,0x00000319,0x0000031a,0x00080039,0x00000030,0x0000031b, + 0x00000073,0x00000313,0x00000315,0x00000317,0x00000319,0x000200fe,0x0000031b,0x00010038, + 0x00050036,0x00000030,0x00000089,0x00000000,0x00000083,0x00030037,0x00000082,0x00000084, + 0x00030037,0x00000082,0x00000085,0x00030037,0x00000082,0x00000086,0x00030037,0x00000082, + 0x00000087,0x00030037,0x00000007,0x00000088,0x000200f8,0x0000008a,0x0004003b,0x00000044, + 0x00000320,0x00000007,0x0004003b,0x0000002f,0x00000323,0x00000007,0x0004003b,0x00000007, + 0x00000324,0x00000007,0x0004003b,0x00000044,0x00000327,0x00000007,0x0004003b,0x0000002f, + 0x0000032a,0x00000007,0x0004003b,0x00000007,0x0000032b,0x00000007,0x0004003b,0x00000044, + 0x0000032e,0x00000007,0x0004003b,0x0000002f,0x00000331,0x00000007,0x0004003b,0x00000007, + 0x00000332,0x00000007,0x0004003b,0x00000044,0x00000335,0x00000007,0x0004003b,0x0000002f, + 0x00000338,0x00000007,0x0004003b,0x00000007,0x00000339,0x00000007,0x0004003b,0x00000044, + 0x0000033c,0x00000007,0x0004003b,0x00000044,0x0000033e,0x00000007,0x0004003b,0x00000044, + 0x00000340,0x00000007,0x0004003b,0x00000044,0x00000342,0x00000007,0x0004003d,0x00000019, + 0x00000321,0x00000084,0x0004007c,0x0000001f,0x00000322,0x00000321,0x0003003e,0x00000323, + 0x00000322,0x0004003d,0x00000006,0x00000325,0x00000088,0x0003003e,0x00000324,0x00000325, + 0x00060039,0x00000030,0x00000326,0x00000051,0x00000323,0x00000324,0x0003003e,0x00000320, + 0x00000326,0x0004003d,0x00000019,0x00000328,0x00000085,0x0004007c,0x0000001f,0x00000329, + 0x00000328,0x0003003e,0x0000032a,0x00000329,0x0004003d,0x00000006,0x0000032c,0x00000088, + 0x0003003e,0x0000032b,0x0000032c,0x00060039,0x00000030,0x0000032d,0x00000051,0x0000032a, + 0x0000032b,0x0003003e,0x00000327,0x0000032d,0x0004003d,0x00000019,0x0000032f,0x00000086, + 0x0004007c,0x0000001f,0x00000330,0x0000032f,0x0003003e,0x00000331,0x00000330,0x0004003d, + 0x00000006,0x00000333,0x00000088,0x0003003e,0x00000332,0x00000333,0x00060039,0x00000030, + 0x00000334,0x00000051,0x00000331,0x00000332,0x0003003e,0x0000032e,0x00000334,0x0004003d, + 0x00000019,0x00000336,0x00000087,0x0004007c,0x0000001f,0x00000337,0x00000336,0x0003003e, + 0x00000338,0x00000337,0x0004003d,0x00000006,0x0000033a,0x00000088,0x0003003e,0x00000339, + 0x0000033a,0x00060039,0x00000030,0x0000033b,0x00000051,0x00000338,0x00000339,0x0003003e, + 0x00000335,0x0000033b,0x0004003d,0x00000030,0x0000033d,0x00000320,0x0003003e,0x0000033c, + 0x0000033d,0x0004003d,0x00000030,0x0000033f,0x00000327,0x0003003e,0x0000033e,0x0000033f, + 0x0004003d,0x00000030,0x00000341,0x0000032e,0x0003003e,0x00000340,0x00000341,0x0004003d, + 0x00000030,0x00000343,0x00000335,0x0003003e,0x00000342,0x00000343,0x00080039,0x00000030, + 0x00000344,0x00000073,0x0000033c,0x0000033e,0x00000340,0x00000342,0x000200fe,0x00000344, + 0x00010038,0x00050036,0x00000030,0x0000008e,0x00000000,0x0000008b,0x00030037,0x00000082, + 0x0000008c,0x00030037,0x00000007,0x0000008d,0x000200f8,0x0000008f,0x0004003b,0x00000082, + 0x00000353,0x00000007,0x0004003b,0x00000082,0x00000354,0x00000007,0x0004003b,0x00000082, + 0x00000355,0x00000007,0x0004003b,0x00000082,0x00000356,0x00000007,0x0004003b,0x00000007, + 0x00000357,0x00000007,0x0004003d,0x00000019,0x00000347,0x0000008c,0x00050080,0x00000019, + 0x00000349,0x00000347,0x00000348,0x0004003d,0x00000019,0x0000034a,0x0000008c,0x00050080, + 0x00000019,0x0000034c,0x0000034a,0x0000034b,0x0004003d,0x00000019,0x0000034d,0x0000008c, + 0x00050080,0x00000019,0x0000034f,0x0000034d,0x0000034e,0x0004003d,0x00000019,0x00000350, + 0x0000008c,0x00050080,0x00000019,0x00000352,0x00000350,0x00000351,0x0003003e,0x00000353, + 0x00000349,0x0003003e,0x00000354,0x0000034c,0x0003003e,0x00000355,0x0000034f,0x0003003e, + 0x00000356,0x00000352,0x0004003d,0x00000006,0x00000358,0x0000008d,0x0003003e,0x00000357, + 0x00000358,0x00090039,0x00000030,0x00000359,0x00000089,0x00000353,0x00000354,0x00000355, + 0x00000356,0x00000357,0x000200fe,0x00000359,0x00010038,0x00050036,0x00000030,0x00000095, + 0x00000000,0x00000083,0x00030037,0x00000082,0x00000090,0x00030037,0x00000082,0x00000091, + 0x00030037,0x00000082,0x00000092,0x00030037,0x00000082,0x00000093,0x00030037,0x00000007, + 0x00000094,0x000200f8,0x00000096,0x0004003b,0x00000044,0x0000035c,0x00000007,0x0004003b, + 0x0000002f,0x0000035f,0x00000007,0x0004003b,0x00000007,0x00000360,0x00000007,0x0004003b, + 0x00000044,0x00000363,0x00000007,0x0004003b,0x0000002f,0x00000366,0x00000007,0x0004003b, + 0x00000007,0x00000367,0x00000007,0x0004003b,0x00000044,0x0000036a,0x00000007,0x0004003b, + 0x0000002f,0x0000036d,0x00000007,0x0004003b,0x00000007,0x0000036e,0x00000007,0x0004003b, + 0x00000044,0x00000371,0x00000007,0x0004003b,0x0000002f,0x00000374,0x00000007,0x0004003b, + 0x00000007,0x00000375,0x00000007,0x0004003b,0x00000044,0x00000378,0x00000007,0x0004003b, + 0x00000044,0x0000037a,0x00000007,0x0004003b,0x00000044,0x0000037c,0x00000007,0x0004003b, + 0x00000044,0x0000037e,0x00000007,0x0004003d,0x00000019,0x0000035d,0x00000090,0x0004007c, + 0x0000001f,0x0000035e,0x0000035d,0x0003003e,0x0000035f,0x0000035e,0x0004003d,0x00000006, + 0x00000361,0x00000094,0x0003003e,0x00000360,0x00000361,0x00060039,0x00000030,0x00000362, + 0x0000004d,0x0000035f,0x00000360,0x0003003e,0x0000035c,0x00000362,0x0004003d,0x00000019, + 0x00000364,0x00000091,0x0004007c,0x0000001f,0x00000365,0x00000364,0x0003003e,0x00000366, + 0x00000365,0x0004003d,0x00000006,0x00000368,0x00000094,0x0003003e,0x00000367,0x00000368, + 0x00060039,0x00000030,0x00000369,0x0000004d,0x00000366,0x00000367,0x0003003e,0x00000363, + 0x00000369,0x0004003d,0x00000019,0x0000036b,0x00000092,0x0004007c,0x0000001f,0x0000036c, + 0x0000036b,0x0003003e,0x0000036d,0x0000036c,0x0004003d,0x00000006,0x0000036f,0x00000094, + 0x0003003e,0x0000036e,0x0000036f,0x00060039,0x00000030,0x00000370,0x0000004d,0x0000036d, + 0x0000036e,0x0003003e,0x0000036a,0x00000370,0x0004003d,0x00000019,0x00000372,0x00000093, + 0x0004007c,0x0000001f,0x00000373,0x00000372,0x0003003e,0x00000374,0x00000373,0x0004003d, + 0x00000006,0x00000376,0x00000094,0x0003003e,0x00000375,0x00000376,0x00060039,0x00000030, + 0x00000377,0x0000004d,0x00000374,0x00000375,0x0003003e,0x00000371,0x00000377,0x0004003d, + 0x00000030,0x00000379,0x0000035c,0x0003003e,0x00000378,0x00000379,0x0004003d,0x00000030, + 0x0000037b,0x00000363,0x0003003e,0x0000037a,0x0000037b,0x0004003d,0x00000030,0x0000037d, + 0x0000036a,0x0003003e,0x0000037c,0x0000037d,0x0004003d,0x00000030,0x0000037f,0x00000371, + 0x0003003e,0x0000037e,0x0000037f,0x00080039,0x00000030,0x00000380,0x00000073,0x00000378, + 0x0000037a,0x0000037c,0x0000037e,0x000200fe,0x00000380,0x00010038,0x00050036,0x00000030, + 0x00000099,0x00000000,0x0000008b,0x00030037,0x00000082,0x00000097,0x00030037,0x00000007, + 0x00000098,0x000200f8,0x0000009a,0x0004003b,0x00000082,0x0000038b,0x00000007,0x0004003b, + 0x00000082,0x0000038c,0x00000007,0x0004003b,0x00000082,0x0000038d,0x00000007,0x0004003b, + 0x00000082,0x0000038e,0x00000007,0x0004003b,0x00000007,0x0000038f,0x00000007,0x0004003d, + 0x00000019,0x00000383,0x00000097,0x00050080,0x00000019,0x00000384,0x00000383,0x00000348, + 0x0004003d,0x00000019,0x00000385,0x00000097,0x00050080,0x00000019,0x00000386,0x00000385, + 0x0000034b,0x0004003d,0x00000019,0x00000387,0x00000097,0x00050080,0x00000019,0x00000388, + 0x00000387,0x0000034e,0x0004003d,0x00000019,0x00000389,0x00000097,0x00050080,0x00000019, + 0x0000038a,0x00000389,0x00000351,0x0003003e,0x0000038b,0x00000384,0x0003003e,0x0000038c, + 0x00000386,0x0003003e,0x0000038d,0x00000388,0x0003003e,0x0000038e,0x0000038a,0x0004003d, + 0x00000006,0x00000390,0x00000098,0x0003003e,0x0000038f,0x00000390,0x00090039,0x00000030, + 0x00000391,0x00000095,0x0000038b,0x0000038c,0x0000038d,0x0000038e,0x0000038f,0x000200fe, + 0x00000391,0x00010038,0x00050036,0x00000002,0x000000a2,0x00000000,0x0000009b,0x00030037, + 0x00000007,0x0000009c,0x00030037,0x00000007,0x0000009d,0x00030037,0x00000082,0x0000009e, + 0x00030037,0x00000007,0x0000009f,0x00030037,0x00000007,0x000000a0,0x00030037,0x00000007, + 0x000000a1,0x000200f8,0x000000a3,0x0004003b,0x0000002f,0x00000394,0x00000007,0x0004003b, + 0x0000002f,0x000003a2,0x00000007,0x0004003b,0x000003af,0x000003b0,0x00000007,0x0004003b, + 0x00000082,0x000003b3,0x00000007,0x0004003b,0x00000007,0x000003b4,0x00000007,0x0004003b, + 0x0000002f,0x000003b8,0x00000007,0x0004003b,0x00000044,0x000003ba,0x00000007,0x0004003b, + 0x00000007,0x000003bd,0x00000007,0x0004003b,0x00000007,0x000003be,0x00000007,0x0004003b, + 0x00000082,0x000003db,0x00000007,0x0004003b,0x00000007,0x000003dc,0x00000007,0x0004003b, + 0x0000002f,0x000003e0,0x00000007,0x0004003b,0x00000044,0x000003e2,0x00000007,0x0004003b, + 0x00000007,0x000003e5,0x00000007,0x0004003b,0x00000007,0x000003e6,0x00000007,0x0004003b, + 0x00000082,0x00000403,0x00000007,0x0004003b,0x00000007,0x00000404,0x00000007,0x0004003b, + 0x0000002f,0x00000408,0x00000007,0x0004003b,0x00000044,0x0000040a,0x00000007,0x0004003b, + 0x00000007,0x0000040d,0x00000007,0x0004003b,0x00000007,0x0000040e,0x00000007,0x0004003b, + 0x00000082,0x0000042e,0x00000007,0x0004003b,0x00000007,0x0000042f,0x00000007,0x0004003b, + 0x0000002f,0x00000433,0x00000007,0x0004003b,0x00000044,0x00000435,0x00000007,0x0004003b, + 0x00000007,0x00000438,0x00000007,0x0004003b,0x00000007,0x00000439,0x00000007,0x0004003b, + 0x00000044,0x00000441,0x00000007,0x0004003b,0x00000044,0x00000446,0x00000007,0x0004003b, + 0x00000044,0x0000044b,0x00000007,0x0004003b,0x00000044,0x00000450,0x00000007,0x0004003b, + 0x0000002f,0x00000466,0x00000007,0x0004003b,0x00000044,0x00000467,0x00000007,0x0004003b, + 0x00000007,0x0000046a,0x00000007,0x0004003b,0x00000007,0x0000046b,0x00000007,0x0004003b, + 0x00000007,0x00000472,0x00000007,0x0004003b,0x00000007,0x00000473,0x00000007,0x0004003b, + 0x00000044,0x00000474,0x00000007,0x0004003b,0x0000002f,0x00000485,0x00000007,0x0004003b, + 0x00000044,0x00000486,0x00000007,0x0004003b,0x00000007,0x00000489,0x00000007,0x0004003b, + 0x00000007,0x0000048a,0x00000007,0x0004003b,0x00000007,0x00000492,0x00000007,0x0004003b, + 0x00000007,0x00000493,0x00000007,0x0004003b,0x00000044,0x00000494,0x00000007,0x0004003b, + 0x0000002f,0x000004a5,0x00000007,0x0004003b,0x00000044,0x000004a6,0x00000007,0x0004003b, + 0x00000007,0x000004a9,0x00000007,0x0004003b,0x00000007,0x000004aa,0x00000007,0x0004003b, + 0x00000007,0x000004b2,0x00000007,0x0004003b,0x00000007,0x000004b3,0x00000007,0x0004003b, + 0x00000044,0x000004b4,0x00000007,0x0004003b,0x0000002f,0x000004c6,0x00000007,0x0004003b, + 0x00000044,0x000004c7,0x00000007,0x0004003b,0x00000007,0x000004ca,0x00000007,0x0004003b, + 0x00000007,0x000004cb,0x00000007,0x0004003b,0x00000007,0x000004d4,0x00000007,0x0004003b, + 0x00000007,0x000004d5,0x00000007,0x0004003b,0x00000044,0x000004d6,0x00000007,0x0004003d, + 0x00000019,0x00000395,0x0000009e,0x00050050,0x00000019,0x00000397,0x00000396,0x00000396, + 0x00050084,0x00000019,0x00000398,0x00000395,0x00000397,0x0004007c,0x0000001f,0x00000399, + 0x00000398,0x0004003d,0x00000006,0x0000039a,0x0000009c,0x00050084,0x00000006,0x0000039b, + 0x0000039a,0x0000010a,0x0004007c,0x0000001e,0x0000039c,0x0000039b,0x0004003d,0x00000006, + 0x0000039d,0x0000009d,0x00050084,0x00000006,0x0000039e,0x0000039d,0x0000010a,0x0004007c, + 0x0000001e,0x0000039f,0x0000039e,0x00050050,0x0000001f,0x000003a0,0x0000039c,0x0000039f, + 0x00050080,0x0000001f,0x000003a1,0x00000399,0x000003a0,0x0003003e,0x00000394,0x000003a1, + 0x0004003d,0x00000019,0x000003a3,0x0000009e,0x00050050,0x00000019,0x000003a5,0x000003a4, + 0x000003a4,0x00050084,0x00000019,0x000003a6,0x000003a3,0x000003a5,0x0004007c,0x0000001f, + 0x000003a7,0x000003a6,0x0004003d,0x00000006,0x000003a8,0x0000009c,0x0004007c,0x0000001e, + 0x000003a9,0x000003a8,0x0004003d,0x00000006,0x000003aa,0x0000009d,0x0004007c,0x0000001e, + 0x000003ab,0x000003aa,0x00050050,0x0000001f,0x000003ac,0x000003a9,0x000003ab,0x00050080, + 0x0000001f,0x000003ad,0x000003a7,0x000003ac,0x0003003e,0x000003a2,0x000003ad,0x0004003d, + 0x0000001f,0x000003b1,0x00000394,0x0004007c,0x00000019,0x000003b2,0x000003b1,0x0003003e, + 0x000003b3,0x000003b2,0x0004003d,0x00000006,0x000003b5,0x000000a1,0x0003003e,0x000003b4, + 0x000003b5,0x00060039,0x00000030,0x000003b6,0x00000099,0x000003b3,0x000003b4,0x00050041, + 0x00000044,0x000003b7,0x000003b0,0x000000fe,0x0003003e,0x000003b7,0x000003b6,0x0004003d, + 0x0000001f,0x000003b9,0x000003a2,0x0003003e,0x000003b8,0x000003b9,0x00050041,0x00000044, + 0x000003bb,0x000003b0,0x000000fe,0x0004003d,0x00000030,0x000003bc,0x000003bb,0x0003003e, + 0x000003ba,0x000003bc,0x0003003e,0x000003bd,0x00000161,0x0004003d,0x00000006,0x000003bf, + 0x000000a1,0x0003003e,0x000003be,0x000003bf,0x00080039,0x00000002,0x000003c0,0x00000058, + 0x000003b8,0x000003ba,0x000003bd,0x000003be,0x0004003d,0x00000019,0x000003c1,0x0000009e, + 0x00050050,0x00000019,0x000003c2,0x00000396,0x00000396,0x00050084,0x00000019,0x000003c3, + 0x000003c1,0x000003c2,0x0004007c,0x0000001f,0x000003c4,0x000003c3,0x0004003d,0x00000006, + 0x000003c5,0x0000009c,0x00050084,0x00000006,0x000003c6,0x000003c5,0x0000010a,0x00050080, + 0x00000006,0x000003c7,0x000003c6,0x000003a4,0x0004007c,0x0000001e,0x000003c8,0x000003c7, + 0x0004003d,0x00000006,0x000003c9,0x0000009d,0x00050084,0x00000006,0x000003ca,0x000003c9, + 0x0000010a,0x0004007c,0x0000001e,0x000003cb,0x000003ca,0x00050050,0x0000001f,0x000003cc, + 0x000003c8,0x000003cb,0x00050080,0x0000001f,0x000003cd,0x000003c4,0x000003cc,0x0003003e, + 0x00000394,0x000003cd,0x0004003d,0x00000019,0x000003ce,0x0000009e,0x00050050,0x00000019, + 0x000003cf,0x000003a4,0x000003a4,0x00050084,0x00000019,0x000003d0,0x000003ce,0x000003cf, + 0x0004007c,0x0000001f,0x000003d1,0x000003d0,0x0004003d,0x00000006,0x000003d2,0x0000009c, + 0x00050080,0x00000006,0x000003d3,0x000003d2,0x00000295,0x0004007c,0x0000001e,0x000003d4, + 0x000003d3,0x0004003d,0x00000006,0x000003d5,0x0000009d,0x0004007c,0x0000001e,0x000003d6, + 0x000003d5,0x00050050,0x0000001f,0x000003d7,0x000003d4,0x000003d6,0x00050080,0x0000001f, + 0x000003d8,0x000003d1,0x000003d7,0x0003003e,0x000003a2,0x000003d8,0x0004003d,0x0000001f, + 0x000003d9,0x00000394,0x0004007c,0x00000019,0x000003da,0x000003d9,0x0003003e,0x000003db, + 0x000003da,0x0004003d,0x00000006,0x000003dd,0x000000a1,0x0003003e,0x000003dc,0x000003dd, + 0x00060039,0x00000030,0x000003de,0x00000099,0x000003db,0x000003dc,0x00050041,0x00000044, + 0x000003df,0x000003b0,0x00000138,0x0003003e,0x000003df,0x000003de,0x0004003d,0x0000001f, + 0x000003e1,0x000003a2,0x0003003e,0x000003e0,0x000003e1,0x00050041,0x00000044,0x000003e3, + 0x000003b0,0x00000138,0x0004003d,0x00000030,0x000003e4,0x000003e3,0x0003003e,0x000003e2, + 0x000003e4,0x0003003e,0x000003e5,0x00000161,0x0004003d,0x00000006,0x000003e7,0x000000a1, + 0x0003003e,0x000003e6,0x000003e7,0x00080039,0x00000002,0x000003e8,0x00000058,0x000003e0, + 0x000003e2,0x000003e5,0x000003e6,0x0004003d,0x00000019,0x000003e9,0x0000009e,0x00050050, + 0x00000019,0x000003ea,0x00000396,0x00000396,0x00050084,0x00000019,0x000003eb,0x000003e9, + 0x000003ea,0x0004007c,0x0000001f,0x000003ec,0x000003eb,0x0004003d,0x00000006,0x000003ed, + 0x0000009c,0x00050084,0x00000006,0x000003ee,0x000003ed,0x0000010a,0x0004007c,0x0000001e, + 0x000003ef,0x000003ee,0x0004003d,0x00000006,0x000003f0,0x0000009d,0x00050084,0x00000006, + 0x000003f1,0x000003f0,0x0000010a,0x00050080,0x00000006,0x000003f2,0x000003f1,0x000003a4, + 0x0004007c,0x0000001e,0x000003f3,0x000003f2,0x00050050,0x0000001f,0x000003f4,0x000003ef, + 0x000003f3,0x00050080,0x0000001f,0x000003f5,0x000003ec,0x000003f4,0x0003003e,0x00000394, + 0x000003f5,0x0004003d,0x00000019,0x000003f6,0x0000009e,0x00050050,0x00000019,0x000003f7, + 0x000003a4,0x000003a4,0x00050084,0x00000019,0x000003f8,0x000003f6,0x000003f7,0x0004007c, + 0x0000001f,0x000003f9,0x000003f8,0x0004003d,0x00000006,0x000003fa,0x0000009c,0x0004007c, + 0x0000001e,0x000003fb,0x000003fa,0x0004003d,0x00000006,0x000003fc,0x0000009d,0x00050080, + 0x00000006,0x000003fd,0x000003fc,0x00000295,0x0004007c,0x0000001e,0x000003fe,0x000003fd, + 0x00050050,0x0000001f,0x000003ff,0x000003fb,0x000003fe,0x00050080,0x0000001f,0x00000400, + 0x000003f9,0x000003ff,0x0003003e,0x000003a2,0x00000400,0x0004003d,0x0000001f,0x00000401, + 0x00000394,0x0004007c,0x00000019,0x00000402,0x00000401,0x0003003e,0x00000403,0x00000402, + 0x0004003d,0x00000006,0x00000405,0x000000a1,0x0003003e,0x00000404,0x00000405,0x00060039, + 0x00000030,0x00000406,0x00000099,0x00000403,0x00000404,0x00050041,0x00000044,0x00000407, + 0x000003b0,0x00000149,0x0003003e,0x00000407,0x00000406,0x0004003d,0x0000001f,0x00000409, + 0x000003a2,0x0003003e,0x00000408,0x00000409,0x00050041,0x00000044,0x0000040b,0x000003b0, + 0x00000149,0x0004003d,0x00000030,0x0000040c,0x0000040b,0x0003003e,0x0000040a,0x0000040c, + 0x0003003e,0x0000040d,0x00000161,0x0004003d,0x00000006,0x0000040f,0x000000a1,0x0003003e, + 0x0000040e,0x0000040f,0x00080039,0x00000002,0x00000410,0x00000058,0x00000408,0x0000040a, + 0x0000040d,0x0000040e,0x0004003d,0x00000019,0x00000411,0x0000009e,0x00050050,0x00000019, + 0x00000412,0x00000396,0x00000396,0x00050084,0x00000019,0x00000413,0x00000411,0x00000412, + 0x0004007c,0x0000001f,0x00000414,0x00000413,0x0004003d,0x00000006,0x00000415,0x0000009c, + 0x00050084,0x00000006,0x00000416,0x00000415,0x0000010a,0x00050080,0x00000006,0x00000417, + 0x00000416,0x000003a4,0x0004007c,0x0000001e,0x00000418,0x00000417,0x0004003d,0x00000006, + 0x00000419,0x0000009d,0x00050084,0x00000006,0x0000041a,0x00000419,0x0000010a,0x00050080, + 0x00000006,0x0000041b,0x0000041a,0x000003a4,0x0004007c,0x0000001e,0x0000041c,0x0000041b, + 0x00050050,0x0000001f,0x0000041d,0x00000418,0x0000041c,0x00050080,0x0000001f,0x0000041e, + 0x00000414,0x0000041d,0x0003003e,0x00000394,0x0000041e,0x0004003d,0x00000019,0x0000041f, + 0x0000009e,0x00050050,0x00000019,0x00000420,0x000003a4,0x000003a4,0x00050084,0x00000019, + 0x00000421,0x0000041f,0x00000420,0x0004007c,0x0000001f,0x00000422,0x00000421,0x0004003d, + 0x00000006,0x00000423,0x0000009c,0x00050080,0x00000006,0x00000424,0x00000423,0x00000295, + 0x0004007c,0x0000001e,0x00000425,0x00000424,0x0004003d,0x00000006,0x00000426,0x0000009d, + 0x00050080,0x00000006,0x00000427,0x00000426,0x00000295,0x0004007c,0x0000001e,0x00000428, + 0x00000427,0x00050050,0x0000001f,0x00000429,0x00000425,0x00000428,0x00050080,0x0000001f, + 0x0000042a,0x00000422,0x00000429,0x0003003e,0x000003a2,0x0000042a,0x0004003d,0x0000001f, + 0x0000042c,0x00000394,0x0004007c,0x00000019,0x0000042d,0x0000042c,0x0003003e,0x0000042e, + 0x0000042d,0x0004003d,0x00000006,0x00000430,0x000000a1,0x0003003e,0x0000042f,0x00000430, + 0x00060039,0x00000030,0x00000431,0x00000099,0x0000042e,0x0000042f,0x00050041,0x00000044, + 0x00000432,0x000003b0,0x0000042b,0x0003003e,0x00000432,0x00000431,0x0004003d,0x0000001f, + 0x00000434,0x000003a2,0x0003003e,0x00000433,0x00000434,0x00050041,0x00000044,0x00000436, + 0x000003b0,0x0000042b,0x0004003d,0x00000030,0x00000437,0x00000436,0x0003003e,0x00000435, + 0x00000437,0x0003003e,0x00000438,0x00000161,0x0004003d,0x00000006,0x0000043a,0x000000a1, + 0x0003003e,0x00000439,0x0000043a,0x00080039,0x00000002,0x0000043b,0x00000058,0x00000433, + 0x00000435,0x00000438,0x00000439,0x0004003d,0x00000006,0x0000043c,0x000000a0,0x000500b2, + 0x00000077,0x0000043d,0x0000043c,0x00000111,0x000300f7,0x0000043f,0x00000000,0x000400fa, + 0x0000043d,0x0000043e,0x0000043f,0x000200f8,0x0000043e,0x000100fd,0x000200f8,0x0000043f, + 0x00050041,0x00000044,0x00000442,0x000003b0,0x000000fe,0x0004003d,0x00000030,0x00000443, + 0x00000442,0x0003003e,0x00000441,0x00000443,0x00050039,0x00000030,0x00000444,0x00000080, + 0x00000441,0x00050041,0x00000044,0x00000445,0x000003b0,0x000000fe,0x0003003e,0x00000445, + 0x00000444,0x00050041,0x00000044,0x00000447,0x000003b0,0x00000138,0x0004003d,0x00000030, + 0x00000448,0x00000447,0x0003003e,0x00000446,0x00000448,0x00050039,0x00000030,0x00000449, + 0x00000080,0x00000446,0x00050041,0x00000044,0x0000044a,0x000003b0,0x00000138,0x0003003e, + 0x0000044a,0x00000449,0x00050041,0x00000044,0x0000044c,0x000003b0,0x00000149,0x0004003d, + 0x00000030,0x0000044d,0x0000044c,0x0003003e,0x0000044b,0x0000044d,0x00050039,0x00000030, + 0x0000044e,0x00000080,0x0000044b,0x00050041,0x00000044,0x0000044f,0x000003b0,0x00000149, + 0x0003003e,0x0000044f,0x0000044e,0x00050041,0x00000044,0x00000451,0x000003b0,0x0000042b, + 0x0004003d,0x00000030,0x00000452,0x00000451,0x0003003e,0x00000450,0x00000452,0x00050039, + 0x00000030,0x00000453,0x00000080,0x00000450,0x00050041,0x00000044,0x00000454,0x000003b0, + 0x0000042b,0x0003003e,0x00000454,0x00000453,0x0004003d,0x00000006,0x00000455,0x0000009f, + 0x00050089,0x00000006,0x00000456,0x00000455,0x0000018a,0x000500aa,0x00000077,0x00000457, + 0x00000456,0x00000161,0x000300f7,0x00000459,0x00000000,0x000400fa,0x00000457,0x00000458, + 0x00000459,0x000200f8,0x00000458,0x0004003d,0x00000019,0x0000045a,0x0000009e,0x00050050, + 0x00000019,0x0000045b,0x00000295,0x00000295,0x00050084,0x00000019,0x0000045c,0x0000045a, + 0x0000045b,0x0004007c,0x0000001f,0x0000045d,0x0000045c,0x0004003d,0x00000006,0x0000045e, + 0x0000009c,0x00050086,0x00000006,0x0000045f,0x0000045e,0x0000010a,0x0004007c,0x0000001e, + 0x00000460,0x0000045f,0x0004003d,0x00000006,0x00000461,0x0000009d,0x00050086,0x00000006, + 0x00000462,0x00000461,0x0000010a,0x0004007c,0x0000001e,0x00000463,0x00000462,0x00050050, + 0x0000001f,0x00000464,0x00000460,0x00000463,0x00050080,0x0000001f,0x00000465,0x0000045d, + 0x00000464,0x0003003e,0x00000466,0x00000465,0x00050041,0x00000044,0x00000468,0x000003b0, + 0x000000fe,0x0004003d,0x00000030,0x00000469,0x00000468,0x0003003e,0x00000467,0x00000469, + 0x0003003e,0x0000046a,0x00000111,0x0004003d,0x00000006,0x0000046c,0x000000a1,0x0003003e, + 0x0000046b,0x0000046c,0x00080039,0x00000002,0x0000046d,0x00000058,0x00000466,0x00000467, + 0x0000046a,0x0000046b,0x0004003d,0x00000006,0x0000046e,0x0000009c,0x00050086,0x00000006, + 0x0000046f,0x0000046e,0x0000010a,0x0004003d,0x00000006,0x00000470,0x0000009d,0x00050086, + 0x00000006,0x00000471,0x00000470,0x0000010a,0x0003003e,0x00000472,0x0000046f,0x0003003e, + 0x00000473,0x00000471,0x00050041,0x00000044,0x00000475,0x000003b0,0x000000fe,0x0004003d, + 0x00000030,0x00000476,0x00000475,0x0003003e,0x00000474,0x00000476,0x00070039,0x00000002, + 0x00000477,0x0000006c,0x00000472,0x00000473,0x00000474,0x0004003d,0x00000019,0x00000478, + 0x0000009e,0x00050050,0x00000019,0x00000479,0x00000295,0x00000295,0x00050084,0x00000019, + 0x0000047a,0x00000478,0x00000479,0x0004007c,0x0000001f,0x0000047b,0x0000047a,0x0004003d, + 0x00000006,0x0000047c,0x0000009c,0x00050086,0x00000006,0x0000047d,0x0000047c,0x0000010a, + 0x00050080,0x00000006,0x0000047e,0x0000047d,0x000001b2,0x0004007c,0x0000001e,0x0000047f, + 0x0000047e,0x0004003d,0x00000006,0x00000480,0x0000009d,0x00050086,0x00000006,0x00000481, + 0x00000480,0x0000010a,0x0004007c,0x0000001e,0x00000482,0x00000481,0x00050050,0x0000001f, + 0x00000483,0x0000047f,0x00000482,0x00050080,0x0000001f,0x00000484,0x0000047b,0x00000483, + 0x0003003e,0x00000485,0x00000484,0x00050041,0x00000044,0x00000487,0x000003b0,0x00000138, + 0x0004003d,0x00000030,0x00000488,0x00000487,0x0003003e,0x00000486,0x00000488,0x0003003e, + 0x00000489,0x00000111,0x0004003d,0x00000006,0x0000048b,0x000000a1,0x0003003e,0x0000048a, + 0x0000048b,0x00080039,0x00000002,0x0000048c,0x00000058,0x00000485,0x00000486,0x00000489, + 0x0000048a,0x0004003d,0x00000006,0x0000048d,0x0000009c,0x00050086,0x00000006,0x0000048e, + 0x0000048d,0x0000010a,0x00050080,0x00000006,0x0000048f,0x0000048e,0x000001b2,0x0004003d, + 0x00000006,0x00000490,0x0000009d,0x00050086,0x00000006,0x00000491,0x00000490,0x0000010a, + 0x0003003e,0x00000492,0x0000048f,0x0003003e,0x00000493,0x00000491,0x00050041,0x00000044, + 0x00000495,0x000003b0,0x00000138,0x0004003d,0x00000030,0x00000496,0x00000495,0x0003003e, + 0x00000494,0x00000496,0x00070039,0x00000002,0x00000497,0x0000006c,0x00000492,0x00000493, + 0x00000494,0x0004003d,0x00000019,0x00000498,0x0000009e,0x00050050,0x00000019,0x00000499, + 0x00000295,0x00000295,0x00050084,0x00000019,0x0000049a,0x00000498,0x00000499,0x0004007c, + 0x0000001f,0x0000049b,0x0000049a,0x0004003d,0x00000006,0x0000049c,0x0000009c,0x00050086, + 0x00000006,0x0000049d,0x0000049c,0x0000010a,0x0004007c,0x0000001e,0x0000049e,0x0000049d, + 0x0004003d,0x00000006,0x0000049f,0x0000009d,0x00050086,0x00000006,0x000004a0,0x0000049f, + 0x0000010a,0x00050080,0x00000006,0x000004a1,0x000004a0,0x000001b2,0x0004007c,0x0000001e, + 0x000004a2,0x000004a1,0x00050050,0x0000001f,0x000004a3,0x0000049e,0x000004a2,0x00050080, + 0x0000001f,0x000004a4,0x0000049b,0x000004a3,0x0003003e,0x000004a5,0x000004a4,0x00050041, + 0x00000044,0x000004a7,0x000003b0,0x00000149,0x0004003d,0x00000030,0x000004a8,0x000004a7, + 0x0003003e,0x000004a6,0x000004a8,0x0003003e,0x000004a9,0x00000111,0x0004003d,0x00000006, + 0x000004ab,0x000000a1,0x0003003e,0x000004aa,0x000004ab,0x00080039,0x00000002,0x000004ac, + 0x00000058,0x000004a5,0x000004a6,0x000004a9,0x000004aa,0x0004003d,0x00000006,0x000004ad, + 0x0000009c,0x00050086,0x00000006,0x000004ae,0x000004ad,0x0000010a,0x0004003d,0x00000006, + 0x000004af,0x0000009d,0x00050086,0x00000006,0x000004b0,0x000004af,0x0000010a,0x00050080, + 0x00000006,0x000004b1,0x000004b0,0x000001b2,0x0003003e,0x000004b2,0x000004ae,0x0003003e, + 0x000004b3,0x000004b1,0x00050041,0x00000044,0x000004b5,0x000003b0,0x00000149,0x0004003d, + 0x00000030,0x000004b6,0x000004b5,0x0003003e,0x000004b4,0x000004b6,0x00070039,0x00000002, + 0x000004b7,0x0000006c,0x000004b2,0x000004b3,0x000004b4,0x0004003d,0x00000019,0x000004b8, + 0x0000009e,0x00050050,0x00000019,0x000004b9,0x00000295,0x00000295,0x00050084,0x00000019, + 0x000004ba,0x000004b8,0x000004b9,0x0004007c,0x0000001f,0x000004bb,0x000004ba,0x0004003d, + 0x00000006,0x000004bc,0x0000009c,0x00050086,0x00000006,0x000004bd,0x000004bc,0x0000010a, + 0x00050080,0x00000006,0x000004be,0x000004bd,0x000001b2,0x0004007c,0x0000001e,0x000004bf, + 0x000004be,0x0004003d,0x00000006,0x000004c0,0x0000009d,0x00050086,0x00000006,0x000004c1, + 0x000004c0,0x0000010a,0x00050080,0x00000006,0x000004c2,0x000004c1,0x000001b2,0x0004007c, + 0x0000001e,0x000004c3,0x000004c2,0x00050050,0x0000001f,0x000004c4,0x000004bf,0x000004c3, + 0x00050080,0x0000001f,0x000004c5,0x000004bb,0x000004c4,0x0003003e,0x000004c6,0x000004c5, + 0x00050041,0x00000044,0x000004c8,0x000003b0,0x0000042b,0x0004003d,0x00000030,0x000004c9, + 0x000004c8,0x0003003e,0x000004c7,0x000004c9,0x0003003e,0x000004ca,0x00000111,0x0004003d, + 0x00000006,0x000004cc,0x000000a1,0x0003003e,0x000004cb,0x000004cc,0x00080039,0x00000002, + 0x000004cd,0x00000058,0x000004c6,0x000004c7,0x000004ca,0x000004cb,0x0004003d,0x00000006, + 0x000004ce,0x0000009c,0x00050086,0x00000006,0x000004cf,0x000004ce,0x0000010a,0x00050080, + 0x00000006,0x000004d0,0x000004cf,0x000001b2,0x0004003d,0x00000006,0x000004d1,0x0000009d, + 0x00050086,0x00000006,0x000004d2,0x000004d1,0x0000010a,0x00050080,0x00000006,0x000004d3, + 0x000004d2,0x000001b2,0x0003003e,0x000004d4,0x000004d0,0x0003003e,0x000004d5,0x000004d3, + 0x00050041,0x00000044,0x000004d7,0x000003b0,0x0000042b,0x0004003d,0x00000030,0x000004d8, + 0x000004d7,0x0003003e,0x000004d6,0x000004d8,0x00070039,0x00000002,0x000004d9,0x0000006c, + 0x000004d4,0x000004d5,0x000004d6,0x000200f9,0x00000459,0x000200f8,0x00000459,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000aa,0x00000000,0x0000009b,0x00030037,0x00000007, + 0x000000a4,0x00030037,0x00000007,0x000000a5,0x00030037,0x00000082,0x000000a6,0x00030037, + 0x00000007,0x000000a7,0x00030037,0x00000007,0x000000a8,0x00030037,0x00000007,0x000000a9, + 0x000200f8,0x000000ab,0x0004003b,0x00000007,0x000004da,0x00000007,0x0004003b,0x00000007, + 0x000004dc,0x00000007,0x0004003b,0x00000082,0x000004de,0x00000007,0x0004003b,0x00000007, + 0x000004e0,0x00000007,0x0004003b,0x00000007,0x000004e2,0x00000007,0x0004003b,0x00000007, + 0x000004e4,0x00000007,0x0004003d,0x00000006,0x000004db,0x000000a4,0x0003003e,0x000004da, + 0x000004db,0x0004003d,0x00000006,0x000004dd,0x000000a5,0x0003003e,0x000004dc,0x000004dd, + 0x0004003d,0x00000019,0x000004df,0x000000a6,0x0003003e,0x000004de,0x000004df,0x0004003d, + 0x00000006,0x000004e1,0x000000a7,0x0003003e,0x000004e0,0x000004e1,0x0004003d,0x00000006, + 0x000004e3,0x000000a8,0x0003003e,0x000004e2,0x000004e3,0x0004003d,0x00000006,0x000004e5, + 0x000000a9,0x0003003e,0x000004e4,0x000004e5,0x000a0039,0x00000002,0x000004e6,0x000000a2, + 0x000004da,0x000004dc,0x000004de,0x000004e0,0x000004e2,0x000004e4,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000b2,0x00000000,0x0000009b,0x00030037,0x00000007,0x000000ac, + 0x00030037,0x00000007,0x000000ad,0x00030037,0x00000082,0x000000ae,0x00030037,0x00000007, + 0x000000af,0x00030037,0x00000007,0x000000b0,0x00030037,0x00000007,0x000000b1,0x000200f8, + 0x000000b3,0x0004003b,0x00000044,0x000004e7,0x00000007,0x0004003b,0x00000007,0x000004e8, + 0x00000007,0x0004003b,0x00000007,0x000004ea,0x00000007,0x0004003b,0x00000044,0x000004ed, + 0x00000007,0x0004003b,0x0000002f,0x00000501,0x00000007,0x0004003b,0x00000044,0x00000502, + 0x00000007,0x0004003b,0x00000007,0x00000504,0x00000007,0x0004003b,0x00000007,0x00000506, + 0x00000007,0x0004003b,0x00000007,0x0000050e,0x00000007,0x0004003b,0x00000007,0x0000050f, + 0x00000007,0x0004003b,0x00000044,0x00000511,0x00000007,0x0004003d,0x00000006,0x000004e9, + 0x000000ac,0x0003003e,0x000004e8,0x000004e9,0x0004003d,0x00000006,0x000004eb,0x000000ad, + 0x0003003e,0x000004ea,0x000004eb,0x00060039,0x00000030,0x000004ec,0x00000066,0x000004e8, + 0x000004ea,0x0003003e,0x000004e7,0x000004ec,0x0004003d,0x00000030,0x000004ee,0x000004e7, + 0x0003003e,0x000004ed,0x000004ee,0x00050039,0x00000030,0x000004ef,0x00000080,0x000004ed, + 0x0003003e,0x000004e7,0x000004ef,0x0004003d,0x00000006,0x000004f0,0x000000af,0x00050089, + 0x00000006,0x000004f1,0x000004f0,0x0000018a,0x000500aa,0x00000077,0x000004f2,0x000004f1, + 0x00000161,0x000300f7,0x000004f4,0x00000000,0x000400fa,0x000004f2,0x000004f3,0x000004f4, + 0x000200f8,0x000004f3,0x0004003d,0x00000019,0x000004f5,0x000000ae,0x00050050,0x00000019, + 0x000004f6,0x000001b2,0x000001b2,0x00050084,0x00000019,0x000004f7,0x000004f5,0x000004f6, + 0x0004007c,0x0000001f,0x000004f8,0x000004f7,0x0004003d,0x00000006,0x000004f9,0x000000ac, + 0x00050086,0x00000006,0x000004fa,0x000004f9,0x0000010a,0x0004007c,0x0000001e,0x000004fb, + 0x000004fa,0x0004003d,0x00000006,0x000004fc,0x000000ad,0x00050086,0x00000006,0x000004fd, + 0x000004fc,0x0000010a,0x0004007c,0x0000001e,0x000004fe,0x000004fd,0x00050050,0x0000001f, + 0x000004ff,0x000004fb,0x000004fe,0x00050080,0x0000001f,0x00000500,0x000004f8,0x000004ff, + 0x0003003e,0x00000501,0x00000500,0x0004003d,0x00000030,0x00000503,0x000004e7,0x0003003e, + 0x00000502,0x00000503,0x0004003d,0x00000006,0x00000505,0x000000b0,0x0003003e,0x00000504, + 0x00000505,0x0004003d,0x00000006,0x00000507,0x000000b1,0x0003003e,0x00000506,0x00000507, + 0x00080039,0x00000002,0x00000508,0x00000058,0x00000501,0x00000502,0x00000504,0x00000506, + 0x0004003d,0x00000006,0x00000509,0x000000ac,0x0004003d,0x00000006,0x0000050a,0x000000ad, + 0x00050086,0x00000006,0x0000050b,0x0000050a,0x0000010a,0x00050089,0x00000006,0x0000050c, + 0x0000050b,0x0000010a,0x00050080,0x00000006,0x0000050d,0x00000509,0x0000050c,0x0003003e, + 0x0000050e,0x0000050d,0x0004003d,0x00000006,0x00000510,0x000000ad,0x0003003e,0x0000050f, + 0x00000510,0x0004003d,0x00000030,0x00000512,0x000004e7,0x0003003e,0x00000511,0x00000512, + 0x00070039,0x00000002,0x00000513,0x0000006c,0x0000050e,0x0000050f,0x00000511,0x000200f9, + 0x000004f4,0x000200f8,0x000004f4,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000ba, + 0x00000000,0x0000009b,0x00030037,0x00000007,0x000000b4,0x00030037,0x00000007,0x000000b5, + 0x00030037,0x00000082,0x000000b6,0x00030037,0x00000007,0x000000b7,0x00030037,0x00000007, + 0x000000b8,0x00030037,0x00000007,0x000000b9,0x000200f8,0x000000bb,0x0004003b,0x00000044, + 0x00000518,0x00000007,0x0004003b,0x00000007,0x00000520,0x00000007,0x0004003b,0x00000007, + 0x00000521,0x00000007,0x0004003b,0x00000044,0x00000523,0x00000007,0x0004003b,0x0000002f, + 0x00000537,0x00000007,0x0004003b,0x00000044,0x00000538,0x00000007,0x0004003b,0x00000007, + 0x0000053a,0x00000007,0x0004003b,0x00000007,0x0000053c,0x00000007,0x0004003b,0x00000007, + 0x00000546,0x00000007,0x0004003b,0x00000007,0x00000547,0x00000007,0x0004003b,0x00000044, + 0x00000548,0x00000007,0x0004003d,0x00000006,0x00000514,0x000000b7,0x000500b0,0x00000077, + 0x00000515,0x00000514,0x00000396,0x000300f7,0x00000517,0x00000000,0x000400fa,0x00000515, + 0x00000516,0x00000517,0x000200f8,0x00000516,0x0004003d,0x00000006,0x00000519,0x000000b4, + 0x00050084,0x00000006,0x0000051a,0x00000519,0x0000010a,0x0004003d,0x00000006,0x0000051b, + 0x000000b5,0x00050089,0x00000006,0x0000051c,0x0000051b,0x0000010a,0x00050080,0x00000006, + 0x0000051d,0x0000051a,0x0000051c,0x0004003d,0x00000006,0x0000051e,0x000000b5,0x00050084, + 0x00000006,0x0000051f,0x0000051e,0x0000010a,0x0003003e,0x00000520,0x0000051d,0x0003003e, + 0x00000521,0x0000051f,0x00060039,0x00000030,0x00000522,0x00000066,0x00000520,0x00000521, + 0x0003003e,0x00000518,0x00000522,0x0004003d,0x00000030,0x00000524,0x00000518,0x0003003e, + 0x00000523,0x00000524,0x00050039,0x00000030,0x00000525,0x00000080,0x00000523,0x0003003e, + 0x00000518,0x00000525,0x0004003d,0x00000006,0x00000526,0x000000b7,0x00050089,0x00000006, + 0x00000527,0x00000526,0x0000018a,0x000500aa,0x00000077,0x00000528,0x00000527,0x00000161, + 0x000300f7,0x0000052a,0x00000000,0x000400fa,0x00000528,0x00000529,0x0000052a,0x000200f8, + 0x00000529,0x0004003d,0x00000019,0x0000052b,0x000000b6,0x00050050,0x00000019,0x0000052c, + 0x0000018a,0x0000018a,0x00050084,0x00000019,0x0000052d,0x0000052b,0x0000052c,0x0004007c, + 0x0000001f,0x0000052e,0x0000052d,0x0004003d,0x00000006,0x0000052f,0x000000b4,0x00050086, + 0x00000006,0x00000530,0x0000052f,0x0000010a,0x0004007c,0x0000001e,0x00000531,0x00000530, + 0x0004003d,0x00000006,0x00000532,0x000000b5,0x00050086,0x00000006,0x00000533,0x00000532, + 0x0000010a,0x0004007c,0x0000001e,0x00000534,0x00000533,0x00050050,0x0000001f,0x00000535, + 0x00000531,0x00000534,0x00050080,0x0000001f,0x00000536,0x0000052e,0x00000535,0x0003003e, + 0x00000537,0x00000536,0x0004003d,0x00000030,0x00000539,0x00000518,0x0003003e,0x00000538, + 0x00000539,0x0004003d,0x00000006,0x0000053b,0x000000b8,0x0003003e,0x0000053a,0x0000053b, + 0x0004003d,0x00000006,0x0000053d,0x000000b9,0x0003003e,0x0000053c,0x0000053d,0x00080039, + 0x00000002,0x0000053e,0x00000058,0x00000537,0x00000538,0x0000053a,0x0000053c,0x0004003d, + 0x00000006,0x0000053f,0x000000b4,0x00050084,0x00000006,0x00000540,0x0000053f,0x0000010a, + 0x0004003d,0x00000006,0x00000541,0x000000b5,0x00050086,0x00000006,0x00000542,0x00000541, + 0x0000010a,0x00050080,0x00000006,0x00000543,0x00000540,0x00000542,0x0004003d,0x00000006, + 0x00000544,0x000000b5,0x00050084,0x00000006,0x00000545,0x00000544,0x0000010a,0x0003003e, + 0x00000546,0x00000543,0x0003003e,0x00000547,0x00000545,0x0004003d,0x00000030,0x00000549, + 0x00000518,0x0003003e,0x00000548,0x00000549,0x00070039,0x00000002,0x0000054a,0x0000006c, + 0x00000546,0x00000547,0x00000548,0x000200f9,0x0000052a,0x000200f8,0x0000052a,0x000200f9, + 0x00000517,0x000200f8,0x00000517,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000c2, + 0x00000000,0x0000009b,0x00030037,0x00000007,0x000000bc,0x00030037,0x00000007,0x000000bd, + 0x00030037,0x00000082,0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007, + 0x000000c0,0x00030037,0x00000007,0x000000c1,0x000200f8,0x000000c3,0x0004003b,0x00000044, + 0x0000054f,0x00000007,0x0004003b,0x00000007,0x00000556,0x00000007,0x0004003b,0x00000007, + 0x00000557,0x00000007,0x0004003b,0x00000044,0x00000559,0x00000007,0x0004003b,0x0000002f, + 0x0000056d,0x00000007,0x0004003b,0x00000044,0x0000056e,0x00000007,0x0004003b,0x00000007, + 0x00000570,0x00000007,0x0004003b,0x00000007,0x00000572,0x00000007,0x0004003b,0x00000007, + 0x00000579,0x00000007,0x0004003b,0x00000007,0x0000057a,0x00000007,0x0004003b,0x00000044, + 0x0000057b,0x00000007,0x0004003d,0x00000006,0x0000054b,0x000000bf,0x000500b0,0x00000077, + 0x0000054c,0x0000054b,0x00000295,0x000300f7,0x0000054e,0x00000000,0x000400fa,0x0000054c, + 0x0000054d,0x0000054e,0x000200f8,0x0000054d,0x0004003d,0x00000006,0x00000550,0x000000bc, + 0x00050084,0x00000006,0x00000551,0x00000550,0x0000018a,0x0004003d,0x00000006,0x00000552, + 0x000000bd,0x00050080,0x00000006,0x00000553,0x00000551,0x00000552,0x0004003d,0x00000006, + 0x00000554,0x000000bd,0x00050084,0x00000006,0x00000555,0x00000554,0x0000018a,0x0003003e, + 0x00000556,0x00000553,0x0003003e,0x00000557,0x00000555,0x00060039,0x00000030,0x00000558, + 0x00000066,0x00000556,0x00000557,0x0003003e,0x0000054f,0x00000558,0x0004003d,0x00000030, + 0x0000055a,0x0000054f,0x0003003e,0x00000559,0x0000055a,0x00050039,0x00000030,0x0000055b, + 0x00000080,0x00000559,0x0003003e,0x0000054f,0x0000055b,0x0004003d,0x00000006,0x0000055c, + 0x000000bf,0x00050089,0x00000006,0x0000055d,0x0000055c,0x0000018a,0x000500aa,0x00000077, + 0x0000055e,0x0000055d,0x00000161,0x000300f7,0x00000560,0x00000000,0x000400fa,0x0000055e, + 0x0000055f,0x00000560,0x000200f8,0x0000055f,0x0004003d,0x00000019,0x00000561,0x000000be, + 0x00050050,0x00000019,0x00000562,0x0000010a,0x0000010a,0x00050084,0x00000019,0x00000563, + 0x00000561,0x00000562,0x0004007c,0x0000001f,0x00000564,0x00000563,0x0004003d,0x00000006, + 0x00000565,0x000000bc,0x00050086,0x00000006,0x00000566,0x00000565,0x0000010a,0x0004007c, + 0x0000001e,0x00000567,0x00000566,0x0004003d,0x00000006,0x00000568,0x000000bd,0x00050086, + 0x00000006,0x00000569,0x00000568,0x0000010a,0x0004007c,0x0000001e,0x0000056a,0x00000569, + 0x00050050,0x0000001f,0x0000056b,0x00000567,0x0000056a,0x00050080,0x0000001f,0x0000056c, + 0x00000564,0x0000056b,0x0003003e,0x0000056d,0x0000056c,0x0004003d,0x00000030,0x0000056f, + 0x0000054f,0x0003003e,0x0000056e,0x0000056f,0x0004003d,0x00000006,0x00000571,0x000000c0, + 0x0003003e,0x00000570,0x00000571,0x0004003d,0x00000006,0x00000573,0x000000c1,0x0003003e, + 0x00000572,0x00000573,0x00080039,0x00000002,0x00000574,0x00000058,0x0000056d,0x0000056e, + 0x00000570,0x00000572,0x0004003d,0x00000006,0x00000575,0x000000bc,0x00050086,0x00000006, + 0x00000576,0x00000575,0x0000010a,0x0004003d,0x00000006,0x00000577,0x000000bd,0x00050080, + 0x00000006,0x00000578,0x00000576,0x00000577,0x0003003e,0x00000579,0x00000578,0x0003003e, + 0x0000057a,0x00000161,0x0004003d,0x00000030,0x0000057c,0x0000054f,0x0003003e,0x0000057b, + 0x0000057c,0x00070039,0x00000002,0x0000057d,0x0000006c,0x00000579,0x0000057a,0x0000057b, + 0x000200f9,0x00000560,0x000200f8,0x00000560,0x000200f9,0x0000054e,0x000200f8,0x0000054e, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000c9,0x00000000,0x000000c4,0x00030037, + 0x00000082,0x000000c5,0x00030037,0x00000007,0x000000c6,0x00030037,0x00000007,0x000000c7, + 0x00030037,0x00000007,0x000000c8,0x000200f8,0x000000ca,0x0004003b,0x00000044,0x00000582, + 0x00000007,0x0004003b,0x00000007,0x00000583,0x00000007,0x0004003b,0x00000007,0x00000585, + 0x00000007,0x0004003b,0x00000044,0x00000587,0x00000007,0x0004003b,0x0000002f,0x00000591, + 0x00000007,0x0004003b,0x00000044,0x00000592,0x00000007,0x0004003b,0x00000007,0x00000594, + 0x00000007,0x0004003b,0x00000007,0x00000596,0x00000007,0x0004003d,0x00000006,0x0000057e, + 0x000000c6,0x000500b0,0x00000077,0x0000057f,0x0000057e,0x0000018a,0x000300f7,0x00000581, + 0x00000000,0x000400fa,0x0000057f,0x00000580,0x00000581,0x000200f8,0x00000580,0x0004003d, + 0x00000006,0x00000584,0x000000c6,0x0003003e,0x00000583,0x00000584,0x0003003e,0x00000585, + 0x00000161,0x00060039,0x00000030,0x00000586,0x00000066,0x00000583,0x00000585,0x0003003e, + 0x00000582,0x00000586,0x0004003d,0x00000030,0x00000588,0x00000582,0x0003003e,0x00000587, + 0x00000588,0x00050039,0x00000030,0x00000589,0x00000080,0x00000587,0x0003003e,0x00000582, + 0x00000589,0x0004003d,0x00000006,0x0000058a,0x000000c6,0x00050089,0x00000006,0x0000058b, + 0x0000058a,0x0000018a,0x000500aa,0x00000077,0x0000058c,0x0000058b,0x00000161,0x000300f7, + 0x0000058e,0x00000000,0x000400fa,0x0000058c,0x0000058d,0x0000058e,0x000200f8,0x0000058d, + 0x0004003d,0x00000019,0x0000058f,0x000000c5,0x0004007c,0x0000001f,0x00000590,0x0000058f, + 0x0003003e,0x00000591,0x00000590,0x0004003d,0x00000030,0x00000593,0x00000582,0x0003003e, + 0x00000592,0x00000593,0x0004003d,0x00000006,0x00000595,0x000000c7,0x0003003e,0x00000594, + 0x00000595,0x0004003d,0x00000006,0x00000597,0x000000c8,0x0003003e,0x00000596,0x00000597, + 0x00080039,0x00000002,0x00000598,0x00000058,0x00000591,0x00000592,0x00000594,0x00000596, + 0x000200f9,0x0000058e,0x000200f8,0x0000058e,0x000200f9,0x00000581,0x000200f8,0x00000581, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d0,0x00000000,0x000000cb,0x00030037, + 0x00000007,0x000000cc,0x00030037,0x00000007,0x000000cd,0x00030037,0x00000007,0x000000ce, + 0x00030037,0x00000007,0x000000cf,0x000200f8,0x000000d1,0x0004003b,0x0000002f,0x00000599, + 0x00000007,0x0004003b,0x0000002f,0x000005a3,0x00000007,0x0004003b,0x00000044,0x000005ad, + 0x00000007,0x0004003b,0x00000082,0x000005b0,0x00000007,0x0004003b,0x00000007,0x000005b1, + 0x00000007,0x0004003b,0x0000002f,0x000005b4,0x00000007,0x0004003b,0x00000044,0x000005b6, + 0x00000007,0x0004003b,0x00000007,0x000005b8,0x00000007,0x0004003b,0x00000007,0x000005b9, + 0x00000007,0x0004003b,0x00000044,0x000005ce,0x00000007,0x0004003b,0x00000082,0x000005d1, + 0x00000007,0x0004003b,0x00000007,0x000005d2,0x00000007,0x0004003b,0x0000002f,0x000005d5, + 0x00000007,0x0004003b,0x00000044,0x000005d7,0x00000007,0x0004003b,0x00000007,0x000005d9, + 0x00000007,0x0004003b,0x00000007,0x000005da,0x00000007,0x0004003b,0x00000044,0x000005ef, + 0x00000007,0x0004003b,0x00000082,0x000005f2,0x00000007,0x0004003b,0x00000007,0x000005f3, + 0x00000007,0x0004003b,0x0000002f,0x000005f6,0x00000007,0x0004003b,0x00000044,0x000005f8, + 0x00000007,0x0004003b,0x00000007,0x000005fa,0x00000007,0x0004003b,0x00000007,0x000005fb, + 0x00000007,0x0004003b,0x00000044,0x00000610,0x00000007,0x0004003b,0x00000082,0x00000613, + 0x00000007,0x0004003b,0x00000007,0x00000614,0x00000007,0x0004003b,0x0000002f,0x00000617, + 0x00000007,0x0004003b,0x00000044,0x00000619,0x00000007,0x0004003b,0x00000007,0x0000061b, + 0x00000007,0x0004003b,0x00000007,0x0000061c,0x00000007,0x0004003b,0x00000044,0x00000624, + 0x00000007,0x0004003b,0x00000044,0x00000625,0x00000007,0x0004003b,0x00000044,0x00000627, + 0x00000007,0x0004003b,0x00000044,0x00000629,0x00000007,0x0004003b,0x00000044,0x0000062b, + 0x00000007,0x0004003b,0x0000002f,0x00000633,0x00000007,0x0004003b,0x00000044,0x00000634, + 0x00000007,0x0004003b,0x00000007,0x00000636,0x00000007,0x0004003b,0x00000007,0x00000637, + 0x00000007,0x0004003b,0x00000007,0x0000063a,0x00000007,0x0004003b,0x00000007,0x0000063c, + 0x00000007,0x0004003b,0x00000044,0x0000063e,0x00000007,0x0004003d,0x00000006,0x0000059a, + 0x000000cc,0x00050084,0x00000006,0x0000059b,0x0000059a,0x0000018a,0x00050080,0x00000006, + 0x0000059c,0x0000059b,0x00000161,0x0004007c,0x0000001e,0x0000059d,0x0000059c,0x0004003d, + 0x00000006,0x0000059e,0x000000cd,0x00050084,0x00000006,0x0000059f,0x0000059e,0x0000018a, + 0x00050080,0x00000006,0x000005a0,0x0000059f,0x00000161,0x0004007c,0x0000001e,0x000005a1, + 0x000005a0,0x00050050,0x0000001f,0x000005a2,0x0000059d,0x000005a1,0x0003003e,0x00000599, + 0x000005a2,0x0004003d,0x00000006,0x000005a4,0x000000cc,0x00050084,0x00000006,0x000005a5, + 0x000005a4,0x0000010a,0x00050080,0x00000006,0x000005a6,0x000005a5,0x00000161,0x0004007c, + 0x0000001e,0x000005a7,0x000005a6,0x0004003d,0x00000006,0x000005a8,0x000000cd,0x00050084, + 0x00000006,0x000005a9,0x000005a8,0x0000010a,0x00050080,0x00000006,0x000005aa,0x000005a9, + 0x00000161,0x0004007c,0x0000001e,0x000005ab,0x000005aa,0x00050050,0x0000001f,0x000005ac, + 0x000005a7,0x000005ab,0x0003003e,0x000005a3,0x000005ac,0x0004003d,0x0000001f,0x000005ae, + 0x00000599,0x0004007c,0x00000019,0x000005af,0x000005ae,0x0003003e,0x000005b0,0x000005af, + 0x0004003d,0x00000006,0x000005b2,0x000000cf,0x0003003e,0x000005b1,0x000005b2,0x00060039, + 0x00000030,0x000005b3,0x0000008e,0x000005b0,0x000005b1,0x0003003e,0x000005ad,0x000005b3, + 0x0004003d,0x0000001f,0x000005b5,0x000005a3,0x0003003e,0x000005b4,0x000005b5,0x0004003d, + 0x00000030,0x000005b7,0x000005ad,0x0003003e,0x000005b6,0x000005b7,0x0003003e,0x000005b8, + 0x0000019e,0x0004003d,0x00000006,0x000005ba,0x000000cf,0x0003003e,0x000005b9,0x000005ba, + 0x00080039,0x00000002,0x000005bb,0x00000058,0x000005b4,0x000005b6,0x000005b8,0x000005b9, + 0x0004003d,0x00000006,0x000005bc,0x000000cc,0x00050084,0x00000006,0x000005bd,0x000005bc, + 0x0000018a,0x00050080,0x00000006,0x000005be,0x000005bd,0x0000010a,0x0004007c,0x0000001e, + 0x000005bf,0x000005be,0x0004003d,0x00000006,0x000005c0,0x000000cd,0x00050084,0x00000006, + 0x000005c1,0x000005c0,0x0000018a,0x00050080,0x00000006,0x000005c2,0x000005c1,0x00000161, + 0x0004007c,0x0000001e,0x000005c3,0x000005c2,0x00050050,0x0000001f,0x000005c4,0x000005bf, + 0x000005c3,0x0003003e,0x00000599,0x000005c4,0x0004003d,0x00000006,0x000005c5,0x000000cc, + 0x00050084,0x00000006,0x000005c6,0x000005c5,0x0000010a,0x00050080,0x00000006,0x000005c7, + 0x000005c6,0x00000111,0x0004007c,0x0000001e,0x000005c8,0x000005c7,0x0004003d,0x00000006, + 0x000005c9,0x000000cd,0x00050084,0x00000006,0x000005ca,0x000005c9,0x0000010a,0x00050080, + 0x00000006,0x000005cb,0x000005ca,0x00000161,0x0004007c,0x0000001e,0x000005cc,0x000005cb, + 0x00050050,0x0000001f,0x000005cd,0x000005c8,0x000005cc,0x0003003e,0x000005a3,0x000005cd, + 0x0004003d,0x0000001f,0x000005cf,0x00000599,0x0004007c,0x00000019,0x000005d0,0x000005cf, + 0x0003003e,0x000005d1,0x000005d0,0x0004003d,0x00000006,0x000005d3,0x000000cf,0x0003003e, + 0x000005d2,0x000005d3,0x00060039,0x00000030,0x000005d4,0x0000008e,0x000005d1,0x000005d2, + 0x0003003e,0x000005ce,0x000005d4,0x0004003d,0x0000001f,0x000005d6,0x000005a3,0x0003003e, + 0x000005d5,0x000005d6,0x0004003d,0x00000030,0x000005d8,0x000005ce,0x0003003e,0x000005d7, + 0x000005d8,0x0003003e,0x000005d9,0x0000019e,0x0004003d,0x00000006,0x000005db,0x000000cf, + 0x0003003e,0x000005da,0x000005db,0x00080039,0x00000002,0x000005dc,0x00000058,0x000005d5, + 0x000005d7,0x000005d9,0x000005da,0x0004003d,0x00000006,0x000005dd,0x000000cc,0x00050084, + 0x00000006,0x000005de,0x000005dd,0x0000018a,0x00050080,0x00000006,0x000005df,0x000005de, + 0x00000161,0x0004007c,0x0000001e,0x000005e0,0x000005df,0x0004003d,0x00000006,0x000005e1, + 0x000000cd,0x00050084,0x00000006,0x000005e2,0x000005e1,0x0000018a,0x00050080,0x00000006, + 0x000005e3,0x000005e2,0x0000010a,0x0004007c,0x0000001e,0x000005e4,0x000005e3,0x00050050, + 0x0000001f,0x000005e5,0x000005e0,0x000005e4,0x0003003e,0x00000599,0x000005e5,0x0004003d, + 0x00000006,0x000005e6,0x000000cc,0x00050084,0x00000006,0x000005e7,0x000005e6,0x0000010a, + 0x00050080,0x00000006,0x000005e8,0x000005e7,0x00000161,0x0004007c,0x0000001e,0x000005e9, + 0x000005e8,0x0004003d,0x00000006,0x000005ea,0x000000cd,0x00050084,0x00000006,0x000005eb, + 0x000005ea,0x0000010a,0x00050080,0x00000006,0x000005ec,0x000005eb,0x00000111,0x0004007c, + 0x0000001e,0x000005ed,0x000005ec,0x00050050,0x0000001f,0x000005ee,0x000005e9,0x000005ed, + 0x0003003e,0x000005a3,0x000005ee,0x0004003d,0x0000001f,0x000005f0,0x00000599,0x0004007c, + 0x00000019,0x000005f1,0x000005f0,0x0003003e,0x000005f2,0x000005f1,0x0004003d,0x00000006, + 0x000005f4,0x000000cf,0x0003003e,0x000005f3,0x000005f4,0x00060039,0x00000030,0x000005f5, + 0x0000008e,0x000005f2,0x000005f3,0x0003003e,0x000005ef,0x000005f5,0x0004003d,0x0000001f, + 0x000005f7,0x000005a3,0x0003003e,0x000005f6,0x000005f7,0x0004003d,0x00000030,0x000005f9, + 0x000005ef,0x0003003e,0x000005f8,0x000005f9,0x0003003e,0x000005fa,0x0000019e,0x0004003d, + 0x00000006,0x000005fc,0x000000cf,0x0003003e,0x000005fb,0x000005fc,0x00080039,0x00000002, + 0x000005fd,0x00000058,0x000005f6,0x000005f8,0x000005fa,0x000005fb,0x0004003d,0x00000006, + 0x000005fe,0x000000cc,0x00050084,0x00000006,0x000005ff,0x000005fe,0x0000018a,0x00050080, + 0x00000006,0x00000600,0x000005ff,0x0000010a,0x0004007c,0x0000001e,0x00000601,0x00000600, + 0x0004003d,0x00000006,0x00000602,0x000000cd,0x00050084,0x00000006,0x00000603,0x00000602, + 0x0000018a,0x00050080,0x00000006,0x00000604,0x00000603,0x0000010a,0x0004007c,0x0000001e, + 0x00000605,0x00000604,0x00050050,0x0000001f,0x00000606,0x00000601,0x00000605,0x0003003e, + 0x00000599,0x00000606,0x0004003d,0x00000006,0x00000607,0x000000cc,0x00050084,0x00000006, + 0x00000608,0x00000607,0x0000010a,0x00050080,0x00000006,0x00000609,0x00000608,0x00000111, + 0x0004007c,0x0000001e,0x0000060a,0x00000609,0x0004003d,0x00000006,0x0000060b,0x000000cd, + 0x00050084,0x00000006,0x0000060c,0x0000060b,0x0000010a,0x00050080,0x00000006,0x0000060d, + 0x0000060c,0x00000111,0x0004007c,0x0000001e,0x0000060e,0x0000060d,0x00050050,0x0000001f, + 0x0000060f,0x0000060a,0x0000060e,0x0003003e,0x000005a3,0x0000060f,0x0004003d,0x0000001f, + 0x00000611,0x00000599,0x0004007c,0x00000019,0x00000612,0x00000611,0x0003003e,0x00000613, + 0x00000612,0x0004003d,0x00000006,0x00000615,0x000000cf,0x0003003e,0x00000614,0x00000615, + 0x00060039,0x00000030,0x00000616,0x0000008e,0x00000613,0x00000614,0x0003003e,0x00000610, + 0x00000616,0x0004003d,0x0000001f,0x00000618,0x000005a3,0x0003003e,0x00000617,0x00000618, + 0x0004003d,0x00000030,0x0000061a,0x00000610,0x0003003e,0x00000619,0x0000061a,0x0003003e, + 0x0000061b,0x0000019e,0x0004003d,0x00000006,0x0000061d,0x000000cf,0x0003003e,0x0000061c, + 0x0000061d,0x00080039,0x00000002,0x0000061e,0x00000058,0x00000617,0x00000619,0x0000061b, + 0x0000061c,0x0004003d,0x00000006,0x0000061f,0x000000ce,0x000500b2,0x00000077,0x00000620, + 0x0000061f,0x000001a8,0x000300f7,0x00000622,0x00000000,0x000400fa,0x00000620,0x00000621, + 0x00000622,0x000200f8,0x00000621,0x000100fd,0x000200f8,0x00000622,0x0004003d,0x00000030, + 0x00000626,0x000005ad,0x0003003e,0x00000625,0x00000626,0x0004003d,0x00000030,0x00000628, + 0x000005ce,0x0003003e,0x00000627,0x00000628,0x0004003d,0x00000030,0x0000062a,0x000005ef, + 0x0003003e,0x00000629,0x0000062a,0x0004003d,0x00000030,0x0000062c,0x00000610,0x0003003e, + 0x0000062b,0x0000062c,0x00080039,0x00000030,0x0000062d,0x00000073,0x00000625,0x00000627, + 0x00000629,0x0000062b,0x0003003e,0x00000624,0x0000062d,0x0004003d,0x00000006,0x0000062e, + 0x000000cc,0x0004007c,0x0000001e,0x0000062f,0x0000062e,0x0004003d,0x00000006,0x00000630, + 0x000000cd,0x0004007c,0x0000001e,0x00000631,0x00000630,0x00050050,0x0000001f,0x00000632, + 0x0000062f,0x00000631,0x0003003e,0x00000633,0x00000632,0x0004003d,0x00000030,0x00000635, + 0x00000624,0x0003003e,0x00000634,0x00000635,0x0003003e,0x00000636,0x000001a8,0x0004003d, + 0x00000006,0x00000638,0x000000cf,0x0003003e,0x00000637,0x00000638,0x00080039,0x00000002, + 0x00000639,0x00000058,0x00000633,0x00000634,0x00000636,0x00000637,0x0004003d,0x00000006, + 0x0000063b,0x000000cc,0x0003003e,0x0000063a,0x0000063b,0x0004003d,0x00000006,0x0000063d, + 0x000000cd,0x0003003e,0x0000063c,0x0000063d,0x0004003d,0x00000030,0x0000063f,0x00000624, + 0x0003003e,0x0000063e,0x0000063f,0x00070039,0x00000002,0x00000640,0x0000006c,0x0000063a, + 0x0000063c,0x0000063e,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000da,0x00000000, + 0x000000d2,0x00030037,0x00000007,0x000000d3,0x00030037,0x00000007,0x000000d4,0x00030037, + 0x00000082,0x000000d5,0x00030037,0x00000007,0x000000d6,0x00030037,0x00000007,0x000000d7, + 0x00030037,0x00000007,0x000000d8,0x00030037,0x00000007,0x000000d9,0x000200f8,0x000000db, + 0x0004003b,0x00000007,0x00000648,0x00000007,0x0004003b,0x00000007,0x0000064a,0x00000007, + 0x0004003b,0x00000082,0x0000064c,0x00000007,0x0004003b,0x00000007,0x0000064e,0x00000007, + 0x0004003b,0x00000007,0x00000650,0x00000007,0x0004003b,0x00000007,0x00000652,0x00000007, + 0x0004003b,0x00000007,0x0000065f,0x00000007,0x0004003b,0x00000007,0x00000661,0x00000007, + 0x0004003b,0x00000082,0x00000663,0x00000007,0x0004003b,0x00000007,0x00000665,0x00000007, + 0x0004003b,0x00000007,0x00000667,0x00000007,0x0004003b,0x00000007,0x00000668,0x00000007, + 0x0004003b,0x00000007,0x00000675,0x00000007,0x0004003b,0x00000007,0x00000677,0x00000007, + 0x0004003b,0x00000082,0x00000679,0x00000007,0x0004003b,0x00000007,0x0000067b,0x00000007, + 0x0004003b,0x00000007,0x0000067d,0x00000007,0x0004003b,0x00000007,0x0000067e,0x00000007, + 0x0004003b,0x00000082,0x0000068b,0x00000007,0x0004003b,0x00000007,0x0000068d,0x00000007, + 0x0004003b,0x00000007,0x0000068f,0x00000007,0x0004003b,0x00000007,0x00000690,0x00000007, + 0x0004003d,0x00000006,0x00000641,0x000000d8,0x0004003d,0x00000006,0x00000642,0x000000d7, + 0x000500b2,0x00000077,0x00000643,0x00000641,0x00000642,0x000300f7,0x00000645,0x00000000, + 0x000400fa,0x00000643,0x00000644,0x00000645,0x000200f8,0x00000644,0x000100fd,0x000200f8, + 0x00000645,0x00040039,0x00000002,0x00000647,0x00000075,0x0004003d,0x00000006,0x00000649, + 0x000000d3,0x0003003e,0x00000648,0x00000649,0x0004003d,0x00000006,0x0000064b,0x000000d4, + 0x0003003e,0x0000064a,0x0000064b,0x0004003d,0x00000019,0x0000064d,0x000000d5,0x0003003e, + 0x0000064c,0x0000064d,0x0004003d,0x00000006,0x0000064f,0x000000d6,0x0003003e,0x0000064e, + 0x0000064f,0x0004003d,0x00000006,0x00000651,0x000000d7,0x0003003e,0x00000650,0x00000651, + 0x0004003d,0x00000006,0x00000653,0x000000d9,0x0003003e,0x00000652,0x00000653,0x000a0039, + 0x00000002,0x00000654,0x000000b2,0x00000648,0x0000064a,0x0000064c,0x0000064e,0x00000650, + 0x00000652,0x0004003d,0x00000006,0x00000655,0x000000d8,0x0004003d,0x00000006,0x00000656, + 0x000000d7,0x00050080,0x00000006,0x00000657,0x00000656,0x00000111,0x000500b2,0x00000077, + 0x00000658,0x00000655,0x00000657,0x000300f7,0x0000065a,0x00000000,0x000400fa,0x00000658, + 0x00000659,0x0000065a,0x000200f8,0x00000659,0x000100fd,0x000200f8,0x0000065a,0x00040039, + 0x00000002,0x0000065c,0x00000075,0x0004003d,0x00000006,0x0000065d,0x000000d7,0x00050080, + 0x00000006,0x0000065e,0x0000065d,0x00000111,0x0004003d,0x00000006,0x00000660,0x000000d3, + 0x0003003e,0x0000065f,0x00000660,0x0004003d,0x00000006,0x00000662,0x000000d4,0x0003003e, + 0x00000661,0x00000662,0x0004003d,0x00000019,0x00000664,0x000000d5,0x0003003e,0x00000663, + 0x00000664,0x0004003d,0x00000006,0x00000666,0x000000d6,0x0003003e,0x00000665,0x00000666, + 0x0003003e,0x00000667,0x0000065e,0x0004003d,0x00000006,0x00000669,0x000000d9,0x0003003e, + 0x00000668,0x00000669,0x000a0039,0x00000002,0x0000066a,0x000000ba,0x0000065f,0x00000661, + 0x00000663,0x00000665,0x00000667,0x00000668,0x0004003d,0x00000006,0x0000066b,0x000000d8, + 0x0004003d,0x00000006,0x0000066c,0x000000d7,0x00050080,0x00000006,0x0000066d,0x0000066c, + 0x0000010a,0x000500b2,0x00000077,0x0000066e,0x0000066b,0x0000066d,0x000300f7,0x00000670, + 0x00000000,0x000400fa,0x0000066e,0x0000066f,0x00000670,0x000200f8,0x0000066f,0x000100fd, + 0x000200f8,0x00000670,0x00040039,0x00000002,0x00000672,0x00000075,0x0004003d,0x00000006, + 0x00000673,0x000000d7,0x00050080,0x00000006,0x00000674,0x00000673,0x0000010a,0x0004003d, + 0x00000006,0x00000676,0x000000d3,0x0003003e,0x00000675,0x00000676,0x0004003d,0x00000006, + 0x00000678,0x000000d4,0x0003003e,0x00000677,0x00000678,0x0004003d,0x00000019,0x0000067a, + 0x000000d5,0x0003003e,0x00000679,0x0000067a,0x0004003d,0x00000006,0x0000067c,0x000000d6, + 0x0003003e,0x0000067b,0x0000067c,0x0003003e,0x0000067d,0x00000674,0x0004003d,0x00000006, + 0x0000067f,0x000000d9,0x0003003e,0x0000067e,0x0000067f,0x000a0039,0x00000002,0x00000680, + 0x000000c2,0x00000675,0x00000677,0x00000679,0x0000067b,0x0000067d,0x0000067e,0x0004003d, + 0x00000006,0x00000681,0x000000d8,0x0004003d,0x00000006,0x00000682,0x000000d7,0x00050080, + 0x00000006,0x00000683,0x00000682,0x0000010b,0x000500b2,0x00000077,0x00000684,0x00000681, + 0x00000683,0x000300f7,0x00000686,0x00000000,0x000400fa,0x00000684,0x00000685,0x00000686, + 0x000200f8,0x00000685,0x000100fd,0x000200f8,0x00000686,0x00040039,0x00000002,0x00000688, + 0x00000075,0x0004003d,0x00000006,0x00000689,0x000000d7,0x00050080,0x00000006,0x0000068a, + 0x00000689,0x0000010b,0x0004003d,0x00000019,0x0000068c,0x000000d5,0x0003003e,0x0000068b, + 0x0000068c,0x0004003d,0x00000006,0x0000068e,0x000000d6,0x0003003e,0x0000068d,0x0000068e, + 0x0003003e,0x0000068f,0x0000068a,0x0004003d,0x00000006,0x00000691,0x000000d9,0x0003003e, + 0x00000690,0x00000691,0x00080039,0x00000002,0x00000692,0x000000c9,0x0000068b,0x0000068d, + 0x0000068f,0x00000690,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000e2,0x00000000, + 0x000000dc,0x00030037,0x00000082,0x000000dd,0x00030037,0x00000007,0x000000de,0x00030037, + 0x00000007,0x000000df,0x00030037,0x00000007,0x000000e0,0x00030037,0x00000007,0x000000e1, + 0x000200f8,0x000000e3,0x0004003b,0x00000082,0x00000693,0x00000007,0x0004003b,0x00000007, + 0x00000696,0x00000007,0x0004003b,0x00000007,0x00000698,0x00000007,0x0004003b,0x00000007, + 0x000006a1,0x00000007,0x0004003b,0x00000007,0x000006a9,0x00000007,0x0004003b,0x00000007, + 0x000006ab,0x00000007,0x0004003b,0x00000082,0x000006ad,0x00000007,0x0004003b,0x00000007, + 0x000006af,0x00000007,0x0004003b,0x00000007,0x000006b1,0x00000007,0x0004003b,0x00000007, + 0x000006b3,0x00000007,0x0004003b,0x00000007,0x000006b6,0x00000007,0x0004003b,0x00000007, + 0x000006b8,0x00000007,0x0004003b,0x00000082,0x000006ba,0x00000007,0x0004003b,0x00000007, + 0x000006bc,0x00000007,0x0004003b,0x00000007,0x000006be,0x00000007,0x0004003b,0x00000007, + 0x000006bf,0x00000007,0x0004003b,0x00000007,0x000006c1,0x00000007,0x0004003b,0x00000007, + 0x000006c9,0x00000007,0x0004003b,0x00000007,0x000006cb,0x00000007,0x0004003b,0x00000007, + 0x000006cd,0x00000007,0x0004003b,0x00000007,0x000006d3,0x00000007,0x0004003b,0x00000007, + 0x000006d6,0x00000007,0x0004003b,0x00000007,0x000006d8,0x00000007,0x0004003b,0x00000007, + 0x000006da,0x00000007,0x0004003b,0x00000007,0x000006dc,0x00000007,0x0004003b,0x00000007, + 0x000006df,0x00000007,0x0004003b,0x00000007,0x000006e1,0x00000007,0x0004003b,0x00000082, + 0x000006e3,0x00000007,0x0004003b,0x00000007,0x000006e4,0x00000007,0x0004003b,0x00000007, + 0x000006e6,0x00000007,0x0004003b,0x00000007,0x000006e7,0x00000007,0x0004003b,0x00000007, + 0x000006e9,0x00000007,0x0004003d,0x00000006,0x00000694,0x000000de,0x00050089,0x00000006, + 0x00000695,0x00000694,0x00000396,0x0003003e,0x00000696,0x00000695,0x00050039,0x00000019, + 0x00000697,0x0000001c,0x00000696,0x0003003e,0x00000693,0x00000697,0x00050041,0x00000007, + 0x00000699,0x00000693,0x00000161,0x0004003d,0x00000006,0x0000069a,0x00000699,0x0004003d, + 0x00000006,0x0000069b,0x000000de,0x000500c2,0x00000006,0x0000069d,0x0000069b,0x0000069c, + 0x00050089,0x00000006,0x0000069e,0x0000069d,0x0000010a,0x00050084,0x00000006,0x0000069f, + 0x000001b2,0x0000069e,0x00050080,0x00000006,0x000006a0,0x0000069a,0x0000069f,0x0003003e, + 0x00000698,0x000006a0,0x00050041,0x00000007,0x000006a2,0x00000693,0x00000111,0x0004003d, + 0x00000006,0x000006a3,0x000006a2,0x0004003d,0x00000006,0x000006a4,0x000000de,0x000500c2, + 0x00000006,0x000006a6,0x000006a4,0x000006a5,0x00050084,0x00000006,0x000006a7,0x000001b2, + 0x000006a6,0x00050080,0x00000006,0x000006a8,0x000006a3,0x000006a7,0x0003003e,0x000006a1, + 0x000006a8,0x0004003d,0x00000006,0x000006aa,0x00000698,0x0003003e,0x000006a9,0x000006aa, + 0x0004003d,0x00000006,0x000006ac,0x000006a1,0x0003003e,0x000006ab,0x000006ac,0x0004003d, + 0x00000019,0x000006ae,0x000000dd,0x0003003e,0x000006ad,0x000006ae,0x0004003d,0x00000006, + 0x000006b0,0x000000de,0x0003003e,0x000006af,0x000006b0,0x0004003d,0x00000006,0x000006b2, + 0x000000df,0x0003003e,0x000006b1,0x000006b2,0x0004003d,0x00000006,0x000006b4,0x000000e1, + 0x0003003e,0x000006b3,0x000006b4,0x000a0039,0x00000002,0x000006b5,0x000000aa,0x000006a9, + 0x000006ab,0x000006ad,0x000006af,0x000006b1,0x000006b3,0x0004003d,0x00000006,0x000006b7, + 0x00000698,0x0003003e,0x000006b6,0x000006b7,0x0004003d,0x00000006,0x000006b9,0x000006a1, + 0x0003003e,0x000006b8,0x000006b9,0x0004003d,0x00000019,0x000006bb,0x000000dd,0x0003003e, + 0x000006ba,0x000006bb,0x0004003d,0x00000006,0x000006bd,0x000000de,0x0003003e,0x000006bc, + 0x000006bd,0x0003003e,0x000006be,0x0000010a,0x0004003d,0x00000006,0x000006c0,0x000000df, + 0x0003003e,0x000006bf,0x000006c0,0x0004003d,0x00000006,0x000006c2,0x000000e1,0x0003003e, + 0x000006c1,0x000006c2,0x000b0039,0x00000002,0x000006c3,0x000000da,0x000006b6,0x000006b8, + 0x000006ba,0x000006bc,0x000006be,0x000006bf,0x000006c1,0x0004003d,0x00000006,0x000006c4, + 0x000000df,0x000500b2,0x00000077,0x000006c5,0x000006c4,0x0000019e,0x000300f7,0x000006c7, + 0x00000000,0x000400fa,0x000006c5,0x000006c6,0x000006c7,0x000200f8,0x000006c6,0x000100fd, + 0x000200f8,0x000006c7,0x0004003d,0x00000006,0x000006ca,0x000000e0,0x0003003e,0x000006c9, + 0x000006ca,0x0004003d,0x00000006,0x000006cc,0x000000de,0x0003003e,0x000006cb,0x000006cc, + 0x0004003d,0x00000006,0x000006ce,0x000000e1,0x0003003e,0x000006cd,0x000006ce,0x00070039, + 0x00000077,0x000006cf,0x0000007c,0x000006c9,0x000006cb,0x000006cd,0x000300f7,0x000006d1, + 0x00000000,0x000400fa,0x000006cf,0x000006d0,0x000006d1,0x000200f8,0x000006d0,0x000100fd, + 0x000200f8,0x000006d1,0x0004003d,0x00000006,0x000006d4,0x000000e1,0x0003003e,0x000006d3, + 0x000006d4,0x00050039,0x00000002,0x000006d5,0x00000061,0x000006d3,0x0004003d,0x00000006, + 0x000006d7,0x00000698,0x0003003e,0x000006d6,0x000006d7,0x0004003d,0x00000006,0x000006d9, + 0x000006a1,0x0003003e,0x000006d8,0x000006d9,0x0004003d,0x00000006,0x000006db,0x000000df, + 0x0003003e,0x000006da,0x000006db,0x0004003d,0x00000006,0x000006dd,0x000000e1,0x0003003e, + 0x000006dc,0x000006dd,0x00080039,0x00000002,0x000006de,0x000000d0,0x000006d6,0x000006d8, + 0x000006da,0x000006dc,0x0004003d,0x00000006,0x000006e0,0x00000698,0x0003003e,0x000006df, + 0x000006e0,0x0004003d,0x00000006,0x000006e2,0x000006a1,0x0003003e,0x000006e1,0x000006e2, + 0x0003003e,0x000006e3,0x00000348,0x0004003d,0x00000006,0x000006e5,0x000000de,0x0003003e, + 0x000006e4,0x000006e5,0x0003003e,0x000006e6,0x000001b2,0x0004003d,0x00000006,0x000006e8, + 0x000000df,0x0003003e,0x000006e7,0x000006e8,0x0004003d,0x00000006,0x000006ea,0x000000e1, + 0x0003003e,0x000006e9,0x000006ea,0x000b0039,0x00000002,0x000006eb,0x000000da,0x000006df, + 0x000006e1,0x000006e3,0x000006e4,0x000006e6,0x000006e7,0x000006e9,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000eb,0x00000000,0x000000e4,0x00030037,0x00000082,0x000000e5, + 0x00030037,0x00000007,0x000000e6,0x00030037,0x00000007,0x000000e7,0x00030037,0x00000007, + 0x000000e8,0x00030037,0x00000007,0x000000e9,0x00030037,0x00000082,0x000000ea,0x000200f8, + 0x000000ec,0x0004003b,0x00000082,0x000006ef,0x00000007,0x0004003b,0x00000007,0x000006f0, + 0x00000007,0x0004003b,0x00000007,0x000006f2,0x00000007,0x0004003b,0x00000007,0x000006f4, + 0x00000007,0x0004003b,0x00000007,0x000006f6,0x00000007,0x0004003d,0x00000019,0x000006ec, + 0x000000e5,0x0004003d,0x00000019,0x000006ed,0x000000ea,0x00050080,0x00000019,0x000006ee, + 0x000006ec,0x000006ed,0x0003003e,0x000006ef,0x000006ee,0x0004003d,0x00000006,0x000006f1, + 0x000000e6,0x0003003e,0x000006f0,0x000006f1,0x0004003d,0x00000006,0x000006f3,0x000000e7, + 0x0003003e,0x000006f2,0x000006f3,0x0004003d,0x00000006,0x000006f5,0x000000e8,0x0003003e, + 0x000006f4,0x000006f5,0x0004003d,0x00000006,0x000006f7,0x000000e9,0x0003003e,0x000006f6, + 0x000006f7,0x00090039,0x00000002,0x000006f8,0x000000e2,0x000006ef,0x000006f0,0x000006f2, + 0x000006f4,0x000006f6,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f2,0x00000000, + 0x000000ef,0x00030037,0x000000ee,0x000000f0,0x00030037,0x00000035,0x000000f1,0x000200f8, + 0x000000f3,0x0004003b,0x00000082,0x00000704,0x00000007,0x0004003b,0x00000007,0x00000705, + 0x00000007,0x0004003b,0x00000007,0x00000706,0x00000007,0x0004003b,0x00000007,0x00000707, + 0x00000007,0x0004003b,0x00000007,0x00000708,0x00000007,0x0004003b,0x00000082,0x00000709, + 0x00000007,0x0004003d,0x000000ed,0x000006f9,0x000000f0,0x0007004f,0x0000001f,0x000006fa, + 0x000006f9,0x000006f9,0x00000000,0x00000001,0x0004007c,0x00000019,0x000006fb,0x000006fa, + 0x0004003d,0x0000001e,0x000006fc,0x000000f1,0x0004007c,0x00000006,0x000006fd,0x000006fc, + 0x00040039,0x00000006,0x000006fe,0x00000028,0x00040039,0x00000006,0x000006ff,0x0000002a, + 0x00050041,0x00000035,0x00000700,0x000000f0,0x0000010a,0x0004003d,0x0000001e,0x00000701, + 0x00000700,0x0004007c,0x00000006,0x00000702,0x00000701,0x00040039,0x00000019,0x00000703, + 0x0000002d,0x0003003e,0x00000704,0x000006fb,0x0003003e,0x00000705,0x000006fd,0x0003003e, + 0x00000706,0x000006fe,0x0003003e,0x00000707,0x000006ff,0x0003003e,0x00000708,0x00000702, + 0x0003003e,0x00000709,0x00000703,0x000a0039,0x00000002,0x0000070a,0x000000eb,0x00000704, + 0x00000705,0x00000706,0x00000707,0x00000708,0x00000709,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h b/gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h new file mode 100644 index 000000000..faf6f6c6a --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h @@ -0,0 +1,1260 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_INTERPOLATE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000622,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000038,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000613, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c,0x726f665f,0x7474616d, + 0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005, + 0x0000000b,0x41786666,0x6f6c4673,0x75287461,0x00003b31,0x00030005,0x0000000a,0x00000078, + 0x00070005,0x00000011,0x42786666,0x64616f72,0x74736163,0x31662832,0x0000003b,0x00040005, + 0x00000010,0x756c6176,0x00000065,0x00070005,0x00000016,0x42786666,0x64616f72,0x74736163, + 0x31662833,0x0000003b,0x00040005,0x00000015,0x756c6176,0x00000065,0x00070005,0x0000001c, + 0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000019,0x00000078, + 0x00030005,0x0000001a,0x00000079,0x00030005,0x0000001b,0x00000074,0x00070005,0x00000023, + 0x4c786666,0x28707265,0x3b336676,0x3b336676,0x003b3166,0x00030005,0x00000020,0x00000078, + 0x00030005,0x00000021,0x00000079,0x00030005,0x00000022,0x00000074,0x00060005,0x00000027, + 0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x00000026,0x00000078,0x00070005, + 0x0000002c,0x53786666,0x72757461,0x28657461,0x3b326676,0x00000000,0x00030005,0x0000002b, + 0x00000078,0x00070005,0x00000030,0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000, + 0x00030005,0x0000002f,0x00000078,0x00060005,0x00000033,0x46786666,0x74636172,0x32667628, + 0x0000003b,0x00030005,0x00000032,0x00000078,0x00070005,0x00000037,0x55786666,0x6361706e, + 0x3233466b,0x3b317528,0x00000000,0x00030005,0x00000036,0x00000075,0x00060005,0x0000003c, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x0000003a,0x00000078,0x00030005, + 0x0000003b,0x00000079,0x00060005,0x00000040,0x4d786666,0x66287861,0x31663b31,0x0000003b, + 0x00030005,0x0000003e,0x00000078,0x00030005,0x0000003f,0x00000079,0x00060005,0x00000044, + 0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000042,0x00000078,0x00030005, + 0x00000043,0x00000079,0x000a0005,0x0000004a,0x5a786666,0x4f6f7265,0x6553656e,0x7463656c, + 0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005,0x00000047,0x00000078,0x00030005, + 0x00000048,0x00000079,0x00030005,0x00000049,0x0000007a,0x00080005,0x0000004d,0x5a786666, + 0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366,0x00030005,0x0000004c,0x00000078, + 0x00080005,0x00000050,0x4c786666,0x61656e69,0x6f724672,0x2851506d,0x3b336676,0x00000000, + 0x00040005,0x0000004f,0x756c6176,0x00000065,0x00080005,0x00000053,0x4c786666,0x61656e69, + 0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005,0x00000052,0x756c6176,0x00000065, + 0x00080005,0x00000058,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00002865, + 0x00080005,0x0000005a,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00002865, + 0x00050005,0x0000005c,0x646e6552,0x69537265,0x0028657a,0x00060005,0x0000005e,0x70736944, + 0x5379616c,0x28657a69,0x00000000,0x00070005,0x00000060,0x4f746547,0x63697470,0x6c466c61, + 0x6953776f,0x0028657a,0x00080005,0x00000062,0x4f746547,0x63697470,0x6c466c61,0x6953776f, + 0x2832657a,0x00000000,0x00070005,0x00000064,0x4d746547,0x65527861,0x7265646e,0x657a6953, + 0x00000028,0x00090005,0x00000067,0x6b636142,0x66667542,0x72547265,0x66736e61,0x75467265, + 0x6974636e,0x00286e6f,0x00060005,0x0000006a,0x4c6e694d,0x6e696d75,0x65636e61,0x00000028, + 0x00060005,0x0000006c,0x4c78614d,0x6e696d75,0x65636e61,0x00000028,0x00090005,0x00000071, + 0x64616f4c,0x76657250,0x73756f69,0x6b636142,0x66667562,0x76287265,0x003b3269,0x00040005, + 0x00000070,0x50785069,0x0000736f,0x00090005,0x00000074,0x64616f4c,0x72727543,0x42746e65, + 0x626b6361,0x65666675,0x69762872,0x00003b32,0x00040005,0x00000073,0x50785069,0x0000736f, + 0x00090005,0x00000079,0x706d6153,0x6944656c,0x63636f73,0x6973756c,0x614d6e6f,0x76286b73, + 0x003b3266,0x00030005,0x00000078,0x00765566,0x00080005,0x0000007e,0x64616f4c,0x656d6147, + 0x6c656946,0x28764d64,0x3b326976,0x00000000,0x00050005,0x0000007d,0x53785069,0x6c706d61, + 0x00000065,0x00090005,0x00000081,0x64616f4c,0x6974704f,0x466c6163,0x46776f6c,0x646c6569, + 0x7628764d,0x003b3269,0x00050005,0x00000080,0x53785069,0x6c706d61,0x00000065,0x000a0005, + 0x00000088,0x64616f4c,0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x31692864,0x3275763b, + 0x0000003b,0x00050005,0x00000086,0x4c70696d,0x6c657665,0x00000000,0x00050005,0x00000087, + 0x49785069,0x7475706e,0x00000000,0x00060005,0x0000008c,0x64616f4c,0x6e756f43,0x28726574, + 0x003b3169,0x00040005,0x0000008b,0x50785069,0x0000736f,0x00090005,0x0000008e,0x6d617246, + 0x646e4965,0x69537865,0x4c65636e,0x52747361,0x74657365,0x00000028,0x000c0005,0x00000094, + 0x726f7453,0x61724665,0x6e69656d,0x70726574,0x74616c6f,0x4f6e6f69,0x75707475,0x69762874, + 0x66763b32,0x00003b34,0x00040005,0x00000092,0x50785069,0x0000736f,0x00030005,0x00000093, + 0x006c6176,0x00090005,0x0000009a,0x73786666,0x42475263,0x694c6f54,0x7261656e,0x33667628, + 0x3b31663b,0x003b3166,0x00040005,0x00000097,0x756c6176,0x00000065,0x00060005,0x00000098, + 0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x00000099,0x4c78616d,0x6e696d75, + 0x65636e61,0x00000000,0x00070005,0x0000009d,0x52776152,0x6f544247,0x656e694c,0x76287261, + 0x003b3366,0x00040005,0x0000009c,0x77615266,0x00626752,0x00080005,0x000000a2,0x696c6942, + 0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006,0x000000a2,0x00000000, + 0x66664f69,0x73746573,0x00000000,0x00060006,0x000000a2,0x00000001,0x69655766,0x73746867, + 0x00000000,0x00060006,0x000000a2,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005, + 0x000000a6,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676, + 0x3b326976,0x00000000,0x00030005,0x000000a4,0x00765566,0x00040005,0x000000a5,0x7a695369, + 0x00000065,0x00070005,0x000000ac,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x000000aa,0x00736f70,0x00040005,0x000000ab,0x657a6973,0x00000000,0x00060005, + 0x000000b0,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x000000af,0x00765566, + 0x00080005,0x000000b6,0x6e497349,0x74636552,0x32697628,0x3269763b,0x3269763b,0x0000003b, + 0x00030005,0x000000b3,0x00736f70,0x00050005,0x000000b4,0x63655269,0x726f4374,0x0072656e, + 0x00050005,0x000000b5,0x63655269,0x7a695374,0x00000065,0x00080005,0x000000bb,0x6d726f4e, + 0x7a696c61,0x6f446465,0x76283374,0x763b3366,0x003b3366,0x00030005,0x000000b9,0x00003076, + 0x00030005,0x000000ba,0x00003176,0x00070005,0x000000bd,0x74636556,0x6946726f,0x45646c65, + 0x7972746e,0x00000000,0x00070006,0x000000bd,0x00000000,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00080006,0x000000bd,0x00000001,0x67694875,0x69725068,0x7469726f,0x63614679, + 0x00726f74,0x00080006,0x000000bd,0x00000002,0x776f4c75,0x6f697250,0x79746972,0x74636146, + 0x0000726f,0x00050006,0x000000bd,0x00000003,0x6c615662,0x00006469,0x00060006,0x000000bd, + 0x00000004,0x69725062,0x7972616d,0x00000000,0x00060006,0x000000bd,0x00000005,0x63655362, + 0x61646e6f,0x00007972,0x00060006,0x000000bd,0x00000006,0x506e4962,0x746e6961,0x00006465, + 0x00060006,0x000000bd,0x00000007,0x6c655666,0x7469636f,0x00000079,0x00060006,0x000000bd, + 0x00000008,0x67654e62,0x7374754f,0x00656469,0x00060006,0x000000bd,0x00000009,0x736f5062, + 0x7374754f,0x00656469,0x00080005,0x000000bf,0x5677654e,0x6f746365,0x65694672,0x6e45646c, + 0x28797274,0x00000000,0x000b0005,0x000000c3,0x6b636150,0x65566465,0x726f7463,0x6c656946, + 0x746e4564,0x73497972,0x6d697250,0x28797261,0x003b3175,0x00050005,0x000000c2,0x6b636170, + 0x6e456465,0x00797274,0x00180005,0x000000c9,0x61706e55,0x65566b63,0x726f7463,0x6c656946, + 0x746e4564,0x73656972,0x32757628,0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65, + 0x7972746e,0x3266762d,0x2d31662d,0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31, + 0x3131622d,0x0000003b,0x00040005,0x000000c7,0x6b636170,0x00006465,0x00050005,0x000000c8, + 0x6c456676,0x6e656d65,0x00000074,0x000c0005,0x000000cf,0x706d6f43,0x4d657475,0x706e4976, + 0x746e6961,0x4c676e69,0x6c657665,0x32667628,0x3b31693b,0x3b326976,0x00000000,0x00030005, + 0x000000cc,0x00765566,0x00050005,0x000000cd,0x70694d69,0x6576654c,0x0000006c,0x00050005, + 0x000000ce,0x78655469,0x657a6953,0x00000000,0x00180005,0x000000d4,0x64616f4c,0x61706e49, + 0x65746e69,0x6d614764,0x65694665,0x764d646c,0x32667628,0x7274733b,0x2d746375,0x74636556, + 0x6946726f,0x45646c65,0x7972746e,0x3266762d,0x2d31662d,0x622d3166,0x31622d31,0x2d31622d, + 0x662d3162,0x31622d31,0x3131622d,0x0000003b,0x00030005,0x000000d2,0x00765566,0x00050005, + 0x000000d3,0x6c456676,0x6e656d65,0x00000074,0x001a0005,0x000000d8,0x706d6153,0x704f656c, + 0x61636974,0x6f6c466c,0x746f4d77,0x566e6f69,0x6f746365,0x65694672,0x7628646c,0x733b3266, + 0x63757274,0x65562d74,0x726f7463,0x6c656946,0x746e4564,0x762d7972,0x662d3266,0x31662d31, + 0x2d31622d,0x622d3162,0x31622d31,0x2d31662d,0x622d3162,0x003b3131,0x00030005,0x000000d6, + 0x00765566,0x00050005,0x000000d7,0x6c456676,0x6e656d65,0x00000074,0x00090005,0x000000da, + 0x65746e49,0x6c6f7072,0x6f697461,0x756f536e,0x43656372,0x726f6c6f,0x00000000,0x00050006, + 0x000000da,0x00000000,0x77615266,0x00000000,0x00050006,0x000000da,0x00000001,0x6e694c66, + 0x00726165,0x00080006,0x000000da,0x00000002,0x6c694266,0x61656e69,0x69655772,0x53746867, + 0x00006d75,0x000a0005,0x000000dc,0x4977654e,0x7265746e,0x616c6f70,0x6e6f6974,0x72756f53, + 0x6f436563,0x28726f6c,0x00000000,0x000c0005,0x000000e4,0x706d6153,0x6554656c,0x72757478, + 0x6c694265,0x61656e69,0x31622872,0x3266763b,0x3266763b,0x3269763b,0x0000003b,0x00050005, + 0x000000e0,0x75437369,0x6e657272,0x00000074,0x00030005,0x000000e1,0x00765566,0x00060005, + 0x000000e2,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00040005,0x000000e3,0x53786574, + 0x00657a69,0x000a0005,0x000000e9,0x61647075,0x6e496574,0x6e696150,0x676e6974,0x67696557, + 0x66287468,0x31663b31,0x0000003b,0x00070005,0x000000e7,0x506e4966,0x746e6961,0x57676e69, + 0x68676965,0x00000074,0x00040005,0x000000e8,0x63614666,0x00726f74,0x000c0005,0x000000ef, + 0x706d6f63,0x49657475,0x7265746e,0x616c6f70,0x43646574,0x726f6c6f,0x32757628,0x3366763b, + 0x3b31663b,0x00000000,0x00040005,0x000000ec,0x50785069,0x0000736f,0x00070005,0x000000ed, + 0x746e4966,0x6f707265,0x6574616c,0x6c6f4364,0x0000726f,0x00070005,0x000000ee,0x506e4966, + 0x746e6961,0x57676e69,0x68676965,0x00000074,0x000a0005,0x000000f3,0x706d6f63,0x46657475, + 0x656d6172,0x65746e69,0x6c6f7072,0x6f697461,0x6976286e,0x00003b32,0x00040005,0x000000f2, + 0x50785069,0x0000736f,0x00040005,0x00000115,0x61726170,0x0000006d,0x00040005,0x00000117, + 0x61726170,0x0000006d,0x00040005,0x0000011d,0x61726170,0x0000006d,0x00040005,0x0000011f, + 0x61726170,0x0000006d,0x00030005,0x0000013b,0x00000072,0x00040005,0x0000014b,0x61726170, + 0x0000006d,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x00000150,0x61726170, + 0x0000006d,0x00030005,0x00000154,0x00000070,0x00040005,0x00000157,0x61726170,0x0000006d, + 0x00040005,0x0000015c,0x61726170,0x0000006d,0x00040005,0x0000015f,0x61726170,0x0000006d, + 0x00040005,0x00000162,0x61726170,0x0000006d,0x00040005,0x00000165,0x61726170,0x0000006d, + 0x00040005,0x0000016c,0x61726170,0x0000006d,0x00030005,0x00000171,0x0000006a,0x00030005, + 0x00000176,0x0000006b,0x00040005,0x0000017e,0x61726170,0x0000006d,0x00040005,0x0000018e, + 0x61726170,0x0000006d,0x00040005,0x0000018f,0x61726170,0x0000006d,0x00040005,0x00000190, + 0x61726170,0x0000006d,0x00040005,0x00000194,0x49466263,0x0000745f,0x00060006,0x00000194, + 0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006,0x00000194,0x00000001,0x70736964, + 0x5379616c,0x00657a69,0x00070006,0x00000194,0x00000002,0x70736964,0x5379616c,0x52657a69, + 0x00007063,0x00060006,0x00000194,0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006, + 0x00000194,0x00000004,0x656d6163,0x61466172,0x00000072,0x00080006,0x00000194,0x00000005, + 0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a,0x00050006,0x00000194,0x00000006, + 0x65646f4d,0x00000000,0x00050006,0x00000194,0x00000007,0x65736572,0x00000074,0x00080006, + 0x00000194,0x00000008,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006, + 0x00000194,0x00000009,0x746c6564,0x6d695461,0x00000065,0x00090006,0x00000194,0x0000000a, + 0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006,0x00000194, + 0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x00000194, + 0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006,0x00000194, + 0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006, + 0x00000194,0x0000000e,0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006,0x00000194, + 0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065,0x00090006,0x00000194,0x00000010, + 0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x00000194, + 0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000,0x00090006,0x00000194,0x00000012, + 0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006,0x00000194, + 0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006, + 0x00000194,0x00000014,0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x00000194, + 0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f, + 0x00070006,0x00000194,0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006, + 0x00000194,0x00000017,0x6e615466,0x666c6148,0x00564f46,0x00050006,0x00000194,0x00000018, + 0x6461705f,0x00000031,0x00050006,0x00000194,0x00000019,0x74694a66,0x00726574,0x00080006, + 0x00000194,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005, + 0x00000196,0x49466263,0x00000000,0x00070005,0x000001ac,0x74704f69,0x6c616369,0x776f6c46, + 0x657a6953,0x00000000,0x000a0005,0x000001dc,0x72705f72,0x6f697665,0x695f7375,0x7265746e, + 0x616c6f70,0x6e6f6974,0x756f735f,0x00656372,0x000a0005,0x000001e3,0x75635f72,0x6e657272, + 0x6e695f74,0x70726574,0x74616c6f,0x5f6e6f69,0x72756f73,0x00006563,0x00070005,0x000001ea, + 0x69645f72,0x63636f73,0x6973756c,0x6d5f6e6f,0x006b7361,0x00060005,0x000001ee,0x694c5f73, + 0x7261656e,0x6d616c43,0x00000070,0x00040005,0x000001f6,0x6b636170,0x00586465,0x000a0005, + 0x000001f9,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x785f646c, + 0x00000000,0x00040005,0x000001ff,0x6b636170,0x00596465,0x000a0005,0x00000200,0x61675f72, + 0x6d5f656d,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x795f646c,0x00000000,0x00040005, + 0x0000020a,0x6b636170,0x00586465,0x000c0005,0x0000020b,0x706f5f72,0x61636974,0x6c665f6c, + 0x6d5f776f,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x785f646c,0x00000000,0x00040005, + 0x00000210,0x6b636170,0x00596465,0x000c0005,0x00000211,0x706f5f72,0x61636974,0x6c665f6c, + 0x6d5f776f,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x795f646c,0x00000000,0x00080005, + 0x0000021b,0x6e695f72,0x6e696170,0x676e6974,0x7279705f,0x64696d61,0x00000000,0x000a0005, + 0x00000224,0x6d617246,0x746e4965,0x6f707265,0x6974616c,0x6f436e6f,0x65746e75,0x745f7372, + 0x00000000,0x00050006,0x00000224,0x00000000,0x61746164,0x00000000,0x00050005,0x00000226, + 0x6f635f72,0x65746e75,0x00007372,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00050005, + 0x00000233,0x6f5f7772,0x75707475,0x00000074,0x00030005,0x00000237,0x00000070,0x00040005, + 0x0000023c,0x61726170,0x0000006d,0x00040005,0x00000244,0x61726170,0x0000006d,0x00050005, + 0x0000024e,0x6e694c66,0x52726165,0x00006267,0x00040005,0x0000024f,0x61726170,0x0000006d, + 0x00040005,0x00000253,0x61726170,0x0000006d,0x00040005,0x0000025d,0x61726170,0x0000006d, + 0x00040005,0x0000025f,0x61726170,0x0000006d,0x00040005,0x00000260,0x61726170,0x0000006d, + 0x00050005,0x00000267,0x53785066,0x6c706d61,0x00000065,0x00040005,0x00000270,0x61746164, + 0x00000000,0x00040005,0x00000276,0x46785066,0x00636172,0x00040005,0x00000277,0x61726170, + 0x0000006d,0x00050005,0x000002e7,0x78614d66,0x676e654c,0x00006874,0x00040005,0x000002ea, + 0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170,0x0000006d,0x00030005,0x000002fd, + 0x00656676,0x00040005,0x0000032d,0x61726170,0x0000006d,0x00040005,0x00000347,0x61726170, + 0x0000006d,0x00040005,0x0000034d,0x61726170,0x0000006d,0x00060005,0x00000354,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x00000355,0x61726170,0x0000006d,0x00040005, + 0x00000357,0x61726170,0x0000006d,0x00040005,0x00000359,0x6d755366,0x00000000,0x00040005, + 0x0000035a,0x6c6f4366,0x0000726f,0x00060005,0x0000035e,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x00000366,0x66664f69,0x00746573,0x00050005,0x0000036a,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x0000036f,0x61726170,0x0000006d,0x00040005,0x00000371, + 0x61726170,0x0000006d,0x00040005,0x00000375,0x6d615366,0x00656c70,0x00040005,0x00000378, + 0x61726170,0x0000006d,0x00040005,0x00000379,0x61726170,0x0000006d,0x00060005,0x0000037b, + 0x69725066,0x7469726f,0x63614679,0x00726f74,0x00060005,0x0000037e,0x6c615666,0x764d6469, + 0x74636146,0x0000726f,0x00060005,0x00000383,0x6d615366,0x57656c70,0x68676965,0x00000074, + 0x00050005,0x0000039f,0x53785069,0x6c706d61,0x00000065,0x00070005,0x000003a5,0x6b636170, + 0x61476465,0x6946656d,0x4d646c65,0x00000076,0x00040005,0x000003a6,0x61726170,0x0000006d, + 0x00040005,0x000003a9,0x61726170,0x0000006d,0x00040005,0x000003ab,0x61726170,0x0000006d, + 0x00050005,0x000003b3,0x78655469,0x657a6953,0x00000000,0x00070005,0x000003b5,0x506e4966, + 0x746e6961,0x65566465,0x726f7463,0x00000000,0x00050005,0x000003b6,0x70694d69,0x6576654c, + 0x0000006c,0x00040005,0x000003cb,0x61726170,0x0000006d,0x00040005,0x000003df,0x61726170, + 0x0000006d,0x00040005,0x000003e7,0x61726170,0x0000006d,0x00060005,0x000003ef,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000003f4,0x61726170,0x0000006d,0x00040005, + 0x000003f6,0x61726170,0x0000006d,0x00050005,0x000003f9,0x69655766,0x53746867,0x00006d75, + 0x00060005,0x000003fa,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x00000402, + 0x66664f69,0x00746573,0x00050005,0x00000406,0x6d615369,0x50656c70,0x0000736f,0x00040005, + 0x0000040f,0x61726170,0x0000006d,0x00040005,0x00000411,0x61726170,0x0000006d,0x00040005, + 0x00000415,0x69655766,0x00746867,0x00060005,0x00000419,0x56664f66,0x6f746365,0x6d615372, + 0x00656c70,0x00070005,0x0000041b,0x6b636170,0x704f6465,0x61636974,0x6f6c466c,0x00764d77, + 0x00040005,0x0000041c,0x61726170,0x0000006d,0x00040005,0x00000422,0x61726170,0x0000006d, + 0x00040005,0x00000423,0x61726170,0x0000006d,0x00040005,0x0000045b,0x61726170,0x0000006d, + 0x00040005,0x00000463,0x61726170,0x0000006d,0x00030005,0x0000046c,0x00000063,0x00040005, + 0x00000474,0x75736572,0x0000746c,0x00060005,0x00000476,0x70655266,0x656a6f72,0x64657463, + 0x00007655,0x00060005,0x0000047a,0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005, + 0x0000047b,0x61726170,0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00040005, + 0x00000480,0x6c6f4366,0x0000726f,0x00050005,0x00000481,0x69655766,0x53746867,0x00006d75, + 0x00060005,0x00000482,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x0000048a, + 0x66664f69,0x00746573,0x00050005,0x0000048e,0x6d615369,0x50656c70,0x0000736f,0x00040005, + 0x00000495,0x61726170,0x0000006d,0x00040005,0x00000497,0x61726170,0x0000006d,0x00040005, + 0x00000498,0x61726170,0x0000006d,0x00040005,0x0000049c,0x69655766,0x00746867,0x00040005, + 0x000004a3,0x61726170,0x0000006d,0x00040005,0x000004ab,0x61726170,0x0000006d,0x00040005, + 0x000004c4,0x61726170,0x0000006d,0x00040005,0x000004cd,0x61726170,0x0000006d,0x00040005, + 0x000004cf,0x61726170,0x0000006d,0x00040005,0x000004d2,0x61726170,0x0000006d,0x00080005, + 0x000004d4,0x49765566,0x746e496e,0x6f707265,0x6974616c,0x65526e6f,0x00007463,0x00070005, + 0x000004df,0x49765566,0x7263536e,0x536e6565,0x65636170,0x00000000,0x00090005,0x000004e7, + 0x55724c66,0x496e4976,0x7265746e,0x616c6f70,0x6e6f6974,0x74636552,0x00000000,0x00070005, + 0x000004ef,0x4c765566,0x65747465,0x786f4272,0x6c616353,0x00000065,0x00040005,0x000004f5, + 0x656d6167,0x0000764d,0x00040005,0x000004f6,0x61726170,0x0000006d,0x00040005,0x000004f8, + 0x61726170,0x0000006d,0x00040005,0x000004fb,0x764d666f,0x00000000,0x00040005,0x000004fc, + 0x61726170,0x0000006d,0x00040005,0x000004fe,0x61726170,0x0000006d,0x00070005,0x00000501, + 0x73694466,0x6c63636f,0x6f697375,0x6361466e,0x00726f74,0x00040005,0x00000502,0x61726170, + 0x0000006d,0x00040005,0x00000505,0x61726170,0x0000006d,0x00060005,0x0000050b,0x65725066, + 0x6c6f4376,0x6147726f,0x0000656d,0x00040005,0x00000511,0x61726170,0x0000006d,0x00040005, + 0x00000512,0x61726170,0x0000006d,0x00040005,0x00000514,0x61726170,0x0000006d,0x00040005, + 0x00000515,0x61726170,0x0000006d,0x00060005,0x00000517,0x72754366,0x6c6f4372,0x6147726f, + 0x0000656d,0x00040005,0x0000051e,0x61726170,0x0000006d,0x00040005,0x0000051f,0x61726170, + 0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000522,0x61726170, + 0x0000006d,0x00060005,0x00000524,0x65725066,0x6c6f4376,0x464f726f,0x00000000,0x00040005, + 0x0000052a,0x61726170,0x0000006d,0x00040005,0x0000052b,0x61726170,0x0000006d,0x00040005, + 0x0000052d,0x61726170,0x0000006d,0x00040005,0x0000052e,0x61726170,0x0000006d,0x00060005, + 0x00000530,0x72754366,0x6c6f4372,0x464f726f,0x00000000,0x00040005,0x00000537,0x61726170, + 0x0000006d,0x00040005,0x00000538,0x61726170,0x0000006d,0x00040005,0x0000053a,0x61726170, + 0x0000006d,0x00040005,0x0000053b,0x61726170,0x0000006d,0x00070005,0x0000053d,0x73694466, + 0x6c63636f,0x64656475,0x74636146,0x0000726f,0x00040005,0x00000553,0x61726170,0x0000006d, + 0x00040005,0x00000555,0x61726170,0x0000006d,0x00030005,0x00000558,0x00000074,0x00040005, + 0x00000565,0x61726170,0x0000006d,0x00040005,0x00000568,0x61726170,0x0000006d,0x00040005, + 0x0000056b,0x61726170,0x0000006d,0x00040005,0x0000056e,0x61726170,0x0000006d,0x00040005, + 0x00000570,0x61726170,0x0000006d,0x00040005,0x00000573,0x61726170,0x0000006d,0x00040005, + 0x00000578,0x61726170,0x0000006d,0x00030005,0x00000594,0x0054666f,0x00040005,0x000005a7, + 0x6f43666f,0x00726f6c,0x00040005,0x000005a8,0x61726170,0x0000006d,0x00040005,0x000005ab, + 0x61726170,0x0000006d,0x00040005,0x000005ae,0x61726170,0x0000006d,0x00040005,0x000005b1, + 0x5f464f66,0x006d6953,0x00050005,0x000005b7,0x6d614766,0x69535f65,0x0000006d,0x00040005, + 0x000005bd,0x61726170,0x0000006d,0x00040005,0x000005be,0x61726170,0x0000006d,0x00040005, + 0x000005c1,0x61726170,0x0000006d,0x00040005,0x000005c4,0x61726170,0x0000006d,0x00040005, + 0x000005c5,0x61726170,0x0000006d,0x00040005,0x000005c6,0x61726170,0x0000006d,0x00050005, + 0x000005c8,0x6d614766,0x42764d65,0x00736169,0x00040005,0x000005ca,0x61726170,0x0000006d, + 0x00040005,0x000005cb,0x61726170,0x0000006d,0x00040005,0x000005cf,0x61726170,0x0000006d, + 0x00040005,0x000005d1,0x61726170,0x0000006d,0x00040005,0x000005d2,0x61726170,0x0000006d, + 0x00070005,0x000005d4,0x61724666,0x6e49656d,0x46786564,0x6f746361,0x00000072,0x00040005, + 0x000005d9,0x61726170,0x0000006d,0x00040005,0x000005db,0x61726170,0x0000006d,0x00040005, + 0x000005dc,0x61726170,0x0000006d,0x00040005,0x000005df,0x61726170,0x0000006d,0x00040005, + 0x000005e2,0x61726170,0x0000006d,0x00040005,0x000005e4,0x61726170,0x0000006d,0x00040005, + 0x000005e6,0x61726170,0x0000006d,0x00040005,0x000005e8,0x6c6f4366,0x0000726f,0x00070005, + 0x000005e9,0x506e4966,0x746e6961,0x57676e69,0x68676965,0x00000074,0x00040005,0x000005ec, + 0x61726170,0x0000006d,0x00040005,0x000005ee,0x61726170,0x0000006d,0x00040005,0x000005ef, + 0x61726170,0x0000006d,0x00040005,0x000005fa,0x61726170,0x0000006d,0x00040005,0x00000600, + 0x61726170,0x0000006d,0x00040005,0x00000601,0x61726170,0x0000006d,0x00040005,0x00000602, + 0x61726170,0x0000006d,0x00040005,0x0000060e,0x61726170,0x0000006d,0x00040005,0x0000060f, + 0x61726170,0x0000006d,0x00080005,0x00000613,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00040005,0x00000617,0x61726170,0x0000006d,0x00030047,0x00000194, + 0x00000002,0x00050048,0x00000194,0x00000000,0x00000023,0x00000000,0x00050048,0x00000194, + 0x00000001,0x00000023,0x00000008,0x00050048,0x00000194,0x00000002,0x00000023,0x00000010, + 0x00050048,0x00000194,0x00000003,0x00000023,0x00000018,0x00050048,0x00000194,0x00000004, + 0x00000023,0x0000001c,0x00050048,0x00000194,0x00000005,0x00000023,0x00000020,0x00050048, + 0x00000194,0x00000006,0x00000023,0x00000028,0x00050048,0x00000194,0x00000007,0x00000023, + 0x0000002c,0x00050048,0x00000194,0x00000008,0x00000023,0x00000030,0x00050048,0x00000194, + 0x00000009,0x00000023,0x00000040,0x00050048,0x00000194,0x0000000a,0x00000023,0x00000044, + 0x00050048,0x00000194,0x0000000b,0x00000023,0x00000048,0x00050048,0x00000194,0x0000000c, + 0x00000023,0x00000050,0x00050048,0x00000194,0x0000000d,0x00000023,0x00000058,0x00050048, + 0x00000194,0x0000000e,0x00000023,0x0000005c,0x00050048,0x00000194,0x0000000f,0x00000023, + 0x00000060,0x00050048,0x00000194,0x00000010,0x00000023,0x00000068,0x00050048,0x00000194, + 0x00000011,0x00000023,0x0000006c,0x00050048,0x00000194,0x00000012,0x00000023,0x00000070, + 0x00050048,0x00000194,0x00000013,0x00000023,0x00000078,0x00050048,0x00000194,0x00000014, + 0x00000023,0x00000080,0x00050048,0x00000194,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x00000194,0x00000016,0x00000023,0x00000090,0x00050048,0x00000194,0x00000017,0x00000023, + 0x00000098,0x00050048,0x00000194,0x00000018,0x00000023,0x0000009c,0x00050048,0x00000194, + 0x00000019,0x00000023,0x000000a0,0x00050048,0x00000194,0x0000001a,0x00000023,0x000000a8, + 0x00040047,0x00000196,0x00000021,0x0000000a,0x00040047,0x00000196,0x00000022,0x00000000, + 0x00040047,0x000001dc,0x00000021,0x00000004,0x00040047,0x000001dc,0x00000022,0x00000000, + 0x00040047,0x000001e3,0x00000021,0x00000005,0x00040047,0x000001e3,0x00000022,0x00000000, + 0x00040047,0x000001ea,0x00000021,0x00000006,0x00040047,0x000001ea,0x00000022,0x00000000, + 0x00040047,0x000001ee,0x00000021,0x000003e8,0x00040047,0x000001ee,0x00000022,0x00000000, + 0x00040047,0x000001f9,0x00000021,0x00000000,0x00040047,0x000001f9,0x00000022,0x00000000, + 0x00040047,0x00000200,0x00000021,0x00000001,0x00040047,0x00000200,0x00000022,0x00000000, + 0x00040047,0x0000020b,0x00000021,0x00000002,0x00040047,0x0000020b,0x00000022,0x00000000, + 0x00040047,0x00000211,0x00000021,0x00000003,0x00040047,0x00000211,0x00000022,0x00000000, + 0x00040047,0x0000021b,0x00000021,0x00000007,0x00040047,0x0000021b,0x00000022,0x00000000, + 0x00040047,0x00000223,0x00000006,0x00000004,0x00030047,0x00000224,0x00000002,0x00040048, + 0x00000224,0x00000000,0x00000018,0x00050048,0x00000224,0x00000000,0x00000023,0x00000000, + 0x00030047,0x00000226,0x00000018,0x00040047,0x00000226,0x00000021,0x00000008,0x00040047, + 0x00000226,0x00000022,0x00000000,0x00040047,0x00000233,0x00000021,0x00000009,0x00040047, + 0x00000233,0x00000022,0x00000000,0x00040047,0x00000613,0x0000000b,0x0000001c,0x00040047, + 0x00000621,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040020, + 0x0000000d,0x00000007,0x00000008,0x00040017,0x0000000e,0x00000008,0x00000002,0x00040021, + 0x0000000f,0x0000000e,0x0000000d,0x00040017,0x00000013,0x00000008,0x00000003,0x00040021, + 0x00000014,0x00000013,0x0000000d,0x00060021,0x00000018,0x00000008,0x0000000d,0x0000000d, + 0x0000000d,0x00040020,0x0000001e,0x00000007,0x00000013,0x00060021,0x0000001f,0x00000013, + 0x0000001e,0x0000001e,0x0000000d,0x00040021,0x00000025,0x00000008,0x0000000d,0x00040020, + 0x00000029,0x00000007,0x0000000e,0x00040021,0x0000002a,0x0000000e,0x00000029,0x00040021, + 0x0000002e,0x00000013,0x0000001e,0x00040021,0x00000035,0x0000000e,0x00000007,0x00050021, + 0x00000039,0x00000008,0x0000000d,0x0000000d,0x00060021,0x00000046,0x00000013,0x0000001e, + 0x0000001e,0x0000001e,0x00040015,0x00000055,0x00000020,0x00000001,0x00040017,0x00000056, + 0x00000055,0x00000002,0x00030021,0x00000057,0x00000056,0x00030021,0x00000066,0x00000006, + 0x00030021,0x00000069,0x00000008,0x00040020,0x0000006e,0x00000007,0x00000056,0x00040021, + 0x0000006f,0x00000013,0x0000006e,0x00040017,0x00000076,0x00000008,0x00000004,0x00040021, + 0x00000077,0x00000076,0x00000029,0x00040017,0x0000007b,0x00000006,0x00000002,0x00040021, + 0x0000007c,0x0000007b,0x0000006e,0x00040020,0x00000083,0x00000007,0x00000055,0x00040020, + 0x00000084,0x00000007,0x0000007b,0x00050021,0x00000085,0x00000076,0x00000083,0x00000084, + 0x00040021,0x0000008a,0x00000006,0x00000083,0x00040020,0x00000090,0x00000007,0x00000076, + 0x00050021,0x00000091,0x00000002,0x0000006e,0x00000090,0x00060021,0x00000096,0x00000013, + 0x0000001e,0x0000000d,0x0000000d,0x0004002b,0x00000006,0x0000009f,0x00000004,0x0004001c, + 0x000000a0,0x00000056,0x0000009f,0x0004001c,0x000000a1,0x00000008,0x0000009f,0x0005001e, + 0x000000a2,0x000000a0,0x000000a1,0x00000056,0x00050021,0x000000a3,0x000000a2,0x00000029, + 0x0000006e,0x00020014,0x000000a8,0x00050021,0x000000a9,0x000000a8,0x0000006e,0x0000006e, + 0x00040021,0x000000ae,0x000000a8,0x00000029,0x00060021,0x000000b2,0x000000a8,0x0000006e, + 0x0000006e,0x0000006e,0x00050021,0x000000b8,0x00000008,0x00000013,0x00000013,0x000c001e, + 0x000000bd,0x0000000e,0x00000008,0x00000008,0x000000a8,0x000000a8,0x000000a8,0x000000a8, + 0x00000008,0x000000a8,0x000000a8,0x00030021,0x000000be,0x000000bd,0x00040021,0x000000c1, + 0x000000a8,0x00000007,0x00040020,0x000000c5,0x00000007,0x000000bd,0x00050021,0x000000c6, + 0x00000002,0x00000084,0x000000c5,0x00060021,0x000000cb,0x00000076,0x00000029,0x00000055, + 0x00000056,0x00050021,0x000000d1,0x00000002,0x00000029,0x000000c5,0x0005001e,0x000000da, + 0x00000013,0x00000013,0x00000008,0x00030021,0x000000db,0x000000da,0x00040020,0x000000de, + 0x00000007,0x000000a8,0x00070021,0x000000df,0x000000da,0x000000de,0x00000029,0x00000029, + 0x0000006e,0x00050021,0x000000e6,0x00000002,0x0000000d,0x0000000d,0x00060021,0x000000eb, + 0x00000002,0x00000084,0x0000001e,0x0000000d,0x00040021,0x000000f1,0x00000002,0x0000006e, + 0x0004002b,0x00000008,0x0000010f,0x00000000,0x0004002b,0x00000008,0x00000110,0x3f800000, + 0x0004002b,0x00000006,0x0000014a,0xff800000,0x0004002b,0x00000008,0x00000156,0x3c4fcd9e, + 0x0004002b,0x00000008,0x0000015b,0x3f560008,0x0004002b,0x00000008,0x00000161,0x4196d014, + 0x0004002b,0x00000008,0x00000164,0x41958000,0x0004002b,0x00000008,0x0000016b,0x40c8e061, + 0x0004002b,0x00000008,0x00000172,0x3d25aee6,0x0004002b,0x00000008,0x00000173,0x3d9e8391, + 0x0004002b,0x00000008,0x00000174,0x4019999a,0x0006002c,0x00000013,0x00000175,0x00000172, + 0x00000173,0x00000174,0x0004002b,0x00000008,0x00000177,0x3f72a76e,0x0004002b,0x00000008, + 0x00000178,0x3d558919,0x0005002c,0x0000000e,0x00000179,0x00000177,0x00000178,0x001d001e, + 0x00000194,0x00000056,0x00000056,0x0000000e,0x00000008,0x00000008,0x00000056,0x00000055, + 0x00000055,0x00000076,0x00000008,0x00000055,0x00000056,0x0000000e,0x00000055,0x00000006, + 0x00000056,0x00000055,0x00000055,0x00000056,0x00000056,0x00000013,0x00000006,0x0000000e, + 0x00000008,0x00000055,0x0000000e,0x0000000e,0x00040020,0x00000195,0x00000002,0x00000194, + 0x0004003b,0x00000195,0x00000196,0x00000002,0x0004002b,0x00000055,0x00000197,0x00000012, + 0x00040020,0x00000198,0x00000002,0x00000056,0x0004002b,0x00000055,0x0000019d,0x00000013, + 0x0004002b,0x00000055,0x000001a2,0x00000000,0x0004002b,0x00000055,0x000001a7,0x00000001, + 0x0004002b,0x00000055,0x000001ad,0x0000000c,0x00040020,0x000001ae,0x00000002,0x0000000e, + 0x0004002b,0x00000055,0x000001b3,0x0000000d,0x00040020,0x000001b4,0x00000002,0x00000055, + 0x0004002b,0x00000055,0x000001c3,0x0000000f,0x0004002b,0x00000055,0x000001c8,0x00000015, + 0x00040020,0x000001c9,0x00000002,0x00000006,0x0004002b,0x00000055,0x000001ce,0x00000016, + 0x0004002b,0x00000006,0x000001cf,0x00000000,0x00040020,0x000001d0,0x00000002,0x00000008, + 0x0004002b,0x00000006,0x000001d5,0x00000001,0x00090019,0x000001da,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001db,0x00000000, + 0x000001da,0x0004003b,0x000001db,0x000001dc,0x00000000,0x0004003b,0x000001db,0x000001e3, + 0x00000000,0x0004003b,0x000001db,0x000001ea,0x00000000,0x0002001a,0x000001ec,0x00040020, + 0x000001ed,0x00000000,0x000001ec,0x0004003b,0x000001ed,0x000001ee,0x00000000,0x0003001b, + 0x000001f0,0x000001da,0x00090019,0x000001f7,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x000001f8,0x00000000,0x000001f7,0x0004003b, + 0x000001f8,0x000001f9,0x00000000,0x00040017,0x000001fc,0x00000006,0x00000004,0x0004003b, + 0x000001f8,0x00000200,0x00000000,0x0004003b,0x000001f8,0x0000020b,0x00000000,0x0004003b, + 0x000001f8,0x00000211,0x00000000,0x0004003b,0x000001db,0x0000021b,0x00000000,0x0003001d, + 0x00000223,0x00000006,0x0003001e,0x00000224,0x00000223,0x00040020,0x00000225,0x0000000c, + 0x00000224,0x0004003b,0x00000225,0x00000226,0x0000000c,0x00040020,0x00000228,0x0000000c, + 0x00000006,0x00090019,0x00000231,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000000,0x00040020,0x00000232,0x00000000,0x00000231,0x0004003b,0x00000232, + 0x00000233,0x00000000,0x0004002b,0x00000008,0x0000023a,0x42a00000,0x0004002b,0x00000008, + 0x00000256,0x461c4000,0x0004002b,0x00000008,0x0000026c,0x3f000000,0x0005002c,0x0000000e, + 0x0000026d,0x0000026c,0x0000026c,0x00040020,0x0000026f,0x00000007,0x000000a2,0x0004002b, + 0x00000055,0x00000271,0x00000002,0x0005002c,0x00000056,0x0000027a,0x000001a2,0x000001a2, + 0x0005002c,0x00000056,0x0000027c,0x000001a7,0x000001a2,0x0005002c,0x00000056,0x0000027e, + 0x000001a2,0x000001a7,0x0004002b,0x00000055,0x00000280,0x00000003,0x0005002c,0x00000056, + 0x00000281,0x000001a7,0x000001a7,0x00040017,0x000002a6,0x000000a8,0x00000002,0x0005002c, + 0x0000000e,0x000002fe,0x0000010f,0x0000010f,0x0003002a,0x000000a8,0x00000302,0x0004002b, + 0x00000055,0x00000304,0x00000004,0x0004002b,0x00000055,0x00000306,0x00000005,0x0004002b, + 0x00000055,0x00000308,0x00000006,0x0004002b,0x00000055,0x0000030a,0x00000007,0x0004002b, + 0x00000055,0x0000030c,0x00000008,0x0004002b,0x00000055,0x0000030e,0x00000009,0x0004002b, + 0x00000006,0x00000314,0x80000000,0x0004002b,0x00000006,0x0000031b,0x00000015,0x0004002b, + 0x00000006,0x0000031d,0x000003ff,0x0004002b,0x00000008,0x00000320,0x447fc000,0x0004002b, + 0x00000006,0x00000325,0x00000010,0x0004002b,0x00000006,0x00000327,0x0000001f,0x0004002b, + 0x00000008,0x0000032a,0x41f80000,0x0007002c,0x00000076,0x0000035b,0x0000010f,0x0000010f, + 0x0000010f,0x0000010f,0x0004002b,0x00000006,0x0000035c,0x00000002,0x0004002b,0x00000055, + 0x000003bd,0x0000000b,0x0004002b,0x00000006,0x000003c1,0x00000003,0x00030029,0x000000a8, + 0x000003d9,0x00040020,0x0000046b,0x00000007,0x000000da,0x0006002c,0x00000013,0x0000046d, + 0x0000010f,0x0000010f,0x0000010f,0x0005002c,0x0000000e,0x00000508,0x00000110,0x00000110, + 0x0004002b,0x00000008,0x00000550,0x3a83126f,0x0004002b,0x00000006,0x000005d6,0x0000000a, + 0x00040017,0x00000611,0x00000006,0x00000003,0x00040020,0x00000612,0x00000001,0x00000611, + 0x0004003b,0x00000612,0x00000613,0x00000001,0x0004002b,0x00000008,0x00000619,0x387fda40, + 0x0004002b,0x00000008,0x0000061a,0x477fe000,0x0004002b,0x00000008,0x0000061b,0x37801002, + 0x0004002b,0x00000008,0x0000061c,0x7f7fffff,0x0004002b,0x00000008,0x0000061d,0x00800000, + 0x0004002b,0x00000006,0x0000061e,0x00000020,0x0004002b,0x00000006,0x0000061f,0x00000005, + 0x0004002b,0x00000006,0x00000620,0x00000008,0x0006002c,0x00000611,0x00000621,0x00000620, + 0x00000620,0x000001d5,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x0000006e,0x00000617,0x00000007,0x0004003d,0x00000611,0x00000614, + 0x00000613,0x0007004f,0x0000007b,0x00000615,0x00000614,0x00000614,0x00000000,0x00000001, + 0x0004007c,0x00000056,0x00000616,0x00000615,0x0003003e,0x00000617,0x00000616,0x00050039, + 0x00000002,0x00000618,0x000000f3,0x00000617,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003d,0x00000006,0x000000f5,0x0000000a,0x0004007c,0x00000008,0x000000f6,0x000000f5, + 0x000200fe,0x000000f6,0x00010038,0x00050036,0x0000000e,0x00000011,0x00000000,0x0000000f, + 0x00030037,0x0000000d,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000008,0x000000f9, + 0x00000010,0x00050050,0x0000000e,0x000000fa,0x000000f9,0x000000f9,0x000200fe,0x000000fa, + 0x00010038,0x00050036,0x00000013,0x00000016,0x00000000,0x00000014,0x00030037,0x0000000d, + 0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000008,0x000000fd,0x00000015,0x00060050, + 0x00000013,0x000000fe,0x000000fd,0x000000fd,0x000000fd,0x000200fe,0x000000fe,0x00010038, + 0x00050036,0x00000008,0x0000001c,0x00000000,0x00000018,0x00030037,0x0000000d,0x00000019, + 0x00030037,0x0000000d,0x0000001a,0x00030037,0x0000000d,0x0000001b,0x000200f8,0x0000001d, + 0x0004003d,0x00000008,0x00000101,0x00000019,0x0004003d,0x00000008,0x00000102,0x0000001a, + 0x0004003d,0x00000008,0x00000103,0x0000001b,0x0008000c,0x00000008,0x00000104,0x00000001, + 0x0000002e,0x00000101,0x00000102,0x00000103,0x000200fe,0x00000104,0x00010038,0x00050036, + 0x00000013,0x00000023,0x00000000,0x0000001f,0x00030037,0x0000001e,0x00000020,0x00030037, + 0x0000001e,0x00000021,0x00030037,0x0000000d,0x00000022,0x000200f8,0x00000024,0x0004003d, + 0x00000013,0x00000107,0x00000020,0x0004003d,0x00000013,0x00000108,0x00000021,0x0004003d, + 0x00000008,0x00000109,0x00000022,0x00060050,0x00000013,0x0000010a,0x00000109,0x00000109, + 0x00000109,0x0008000c,0x00000013,0x0000010b,0x00000001,0x0000002e,0x00000107,0x00000108, + 0x0000010a,0x000200fe,0x0000010b,0x00010038,0x00050036,0x00000008,0x00000027,0x00000000, + 0x00000025,0x00030037,0x0000000d,0x00000026,0x000200f8,0x00000028,0x0004003d,0x00000008, + 0x0000010e,0x00000026,0x0008000c,0x00000008,0x00000111,0x00000001,0x0000002b,0x0000010e, + 0x0000010f,0x00000110,0x000200fe,0x00000111,0x00010038,0x00050036,0x0000000e,0x0000002c, + 0x00000000,0x0000002a,0x00030037,0x00000029,0x0000002b,0x000200f8,0x0000002d,0x0004003b, + 0x0000000d,0x00000115,0x00000007,0x0004003b,0x0000000d,0x00000117,0x00000007,0x0004003d, + 0x0000000e,0x00000114,0x0000002b,0x0003003e,0x00000115,0x0000010f,0x00050039,0x0000000e, + 0x00000116,0x00000011,0x00000115,0x0003003e,0x00000117,0x00000110,0x00050039,0x0000000e, + 0x00000118,0x00000011,0x00000117,0x0008000c,0x0000000e,0x00000119,0x00000001,0x0000002b, + 0x00000114,0x00000116,0x00000118,0x000200fe,0x00000119,0x00010038,0x00050036,0x00000013, + 0x00000030,0x00000000,0x0000002e,0x00030037,0x0000001e,0x0000002f,0x000200f8,0x00000031, + 0x0004003b,0x0000000d,0x0000011d,0x00000007,0x0004003b,0x0000000d,0x0000011f,0x00000007, + 0x0004003d,0x00000013,0x0000011c,0x0000002f,0x0003003e,0x0000011d,0x0000010f,0x00050039, + 0x00000013,0x0000011e,0x00000016,0x0000011d,0x0003003e,0x0000011f,0x00000110,0x00050039, + 0x00000013,0x00000120,0x00000016,0x0000011f,0x0008000c,0x00000013,0x00000121,0x00000001, + 0x0000002b,0x0000011c,0x0000011e,0x00000120,0x000200fe,0x00000121,0x00010038,0x00050036, + 0x0000000e,0x00000033,0x00000000,0x0000002a,0x00030037,0x00000029,0x00000032,0x000200f8, + 0x00000034,0x0004003d,0x0000000e,0x00000124,0x00000032,0x0006000c,0x0000000e,0x00000125, + 0x00000001,0x0000000a,0x00000124,0x000200fe,0x00000125,0x00010038,0x00050036,0x0000000e, + 0x00000037,0x00000000,0x00000035,0x00030037,0x00000007,0x00000036,0x000200f8,0x00000038, + 0x0004003d,0x00000006,0x00000128,0x00000036,0x0006000c,0x0000000e,0x00000129,0x00000001, + 0x0000003e,0x00000128,0x000200fe,0x00000129,0x00010038,0x00050036,0x00000008,0x0000003c, + 0x00000000,0x00000039,0x00030037,0x0000000d,0x0000003a,0x00030037,0x0000000d,0x0000003b, + 0x000200f8,0x0000003d,0x0004003d,0x00000008,0x0000012c,0x0000003a,0x0004003d,0x00000008, + 0x0000012d,0x0000003b,0x0007000c,0x00000008,0x0000012e,0x00000001,0x00000025,0x0000012c, + 0x0000012d,0x000200fe,0x0000012e,0x00010038,0x00050036,0x00000008,0x00000040,0x00000000, + 0x00000039,0x00030037,0x0000000d,0x0000003e,0x00030037,0x0000000d,0x0000003f,0x000200f8, + 0x00000041,0x0004003d,0x00000008,0x00000131,0x0000003e,0x0004003d,0x00000008,0x00000132, + 0x0000003f,0x0007000c,0x00000008,0x00000133,0x00000001,0x00000028,0x00000131,0x00000132, + 0x000200fe,0x00000133,0x00010038,0x00050036,0x00000008,0x00000044,0x00000000,0x00000039, + 0x00030037,0x0000000d,0x00000042,0x00030037,0x0000000d,0x00000043,0x000200f8,0x00000045, + 0x0004003d,0x00000008,0x00000136,0x00000042,0x0004003d,0x00000008,0x00000137,0x00000043, + 0x0007000c,0x00000008,0x00000138,0x00000001,0x0000001a,0x00000136,0x00000137,0x000200fe, + 0x00000138,0x00010038,0x00050036,0x00000013,0x0000004a,0x00000000,0x00000046,0x00030037, + 0x0000001e,0x00000047,0x00030037,0x0000001e,0x00000048,0x00030037,0x0000001e,0x00000049, + 0x000200f8,0x0000004b,0x0004003b,0x0000001e,0x0000013b,0x00000007,0x0004003d,0x00000013, + 0x0000013c,0x00000047,0x0004007f,0x00000013,0x0000013d,0x0000013c,0x0004003d,0x00000013, + 0x0000013e,0x00000049,0x00050085,0x00000013,0x0000013f,0x0000013d,0x0000013e,0x0004003d, + 0x00000013,0x00000140,0x00000049,0x00050081,0x00000013,0x00000141,0x0000013f,0x00000140, + 0x0003003e,0x0000013b,0x00000141,0x0004003d,0x00000013,0x00000142,0x00000047,0x0004003d, + 0x00000013,0x00000143,0x00000048,0x00050085,0x00000013,0x00000144,0x00000142,0x00000143, + 0x0004003d,0x00000013,0x00000145,0x0000013b,0x00050081,0x00000013,0x00000146,0x00000144, + 0x00000145,0x000200fe,0x00000146,0x00010038,0x00050036,0x00000013,0x0000004d,0x00000000, + 0x0000002e,0x00030037,0x0000001e,0x0000004c,0x000200f8,0x0000004e,0x0004003b,0x00000007, + 0x0000014b,0x00000007,0x0004003b,0x0000000d,0x0000014d,0x00000007,0x0004003b,0x0000001e, + 0x00000150,0x00000007,0x0004003d,0x00000013,0x00000149,0x0000004c,0x0003003e,0x0000014b, + 0x0000014a,0x00050039,0x00000008,0x0000014c,0x0000000b,0x0000014b,0x0003003e,0x0000014d, + 0x0000014c,0x00050039,0x00000013,0x0000014e,0x00000016,0x0000014d,0x00050085,0x00000013, + 0x0000014f,0x00000149,0x0000014e,0x0003003e,0x00000150,0x0000014f,0x00050039,0x00000013, + 0x00000151,0x00000030,0x00000150,0x000200fe,0x00000151,0x00010038,0x00050036,0x00000013, + 0x00000050,0x00000000,0x0000002e,0x00030037,0x0000001e,0x0000004f,0x000200f8,0x00000051, + 0x0004003b,0x0000001e,0x00000154,0x00000007,0x0004003b,0x0000000d,0x00000157,0x00000007, + 0x0004003b,0x0000000d,0x0000015c,0x00000007,0x0004003b,0x0000001e,0x0000015f,0x00000007, + 0x0004003b,0x0000000d,0x00000162,0x00000007,0x0004003b,0x0000000d,0x00000165,0x00000007, + 0x0004003b,0x0000000d,0x0000016c,0x00000007,0x0004003d,0x00000013,0x00000155,0x0000004f, + 0x0003003e,0x00000157,0x00000156,0x00050039,0x00000013,0x00000158,0x00000016,0x00000157, + 0x0007000c,0x00000013,0x00000159,0x00000001,0x0000001a,0x00000155,0x00000158,0x0003003e, + 0x00000154,0x00000159,0x0004003d,0x00000013,0x0000015a,0x00000154,0x0003003e,0x0000015c, + 0x0000015b,0x00050039,0x00000013,0x0000015d,0x00000016,0x0000015c,0x00050083,0x00000013, + 0x0000015e,0x0000015a,0x0000015d,0x0003003e,0x0000015f,0x0000015e,0x00050039,0x00000013, + 0x00000160,0x00000030,0x0000015f,0x0003003e,0x00000162,0x00000161,0x00050039,0x00000013, + 0x00000163,0x00000016,0x00000162,0x0003003e,0x00000165,0x00000164,0x00050039,0x00000013, + 0x00000166,0x00000016,0x00000165,0x0004003d,0x00000013,0x00000167,0x00000154,0x00050085, + 0x00000013,0x00000168,0x00000166,0x00000167,0x00050083,0x00000013,0x00000169,0x00000163, + 0x00000168,0x00050088,0x00000013,0x0000016a,0x00000160,0x00000169,0x0003003e,0x0000016c, + 0x0000016b,0x00050039,0x00000013,0x0000016d,0x00000016,0x0000016c,0x0007000c,0x00000013, + 0x0000016e,0x00000001,0x0000001a,0x0000016a,0x0000016d,0x000200fe,0x0000016e,0x00010038, + 0x00050036,0x00000013,0x00000053,0x00000000,0x0000002e,0x00030037,0x0000001e,0x00000052, + 0x000200f8,0x00000054,0x0004003b,0x0000001e,0x00000171,0x00000007,0x0004003b,0x00000029, + 0x00000176,0x00000007,0x0004003b,0x0000001e,0x0000017e,0x00000007,0x0004003b,0x0000001e, + 0x0000018e,0x00000007,0x0004003b,0x0000001e,0x0000018f,0x00000007,0x0004003b,0x0000001e, + 0x00000190,0x00000007,0x0003003e,0x00000171,0x00000175,0x0003003e,0x00000176,0x00000179, + 0x0004003d,0x00000013,0x0000017a,0x00000052,0x0004003d,0x00000013,0x0000017b,0x00000171, + 0x0008004f,0x00000013,0x0000017c,0x0000017b,0x0000017b,0x00000000,0x00000000,0x00000000, + 0x00050083,0x00000013,0x0000017d,0x0000017a,0x0000017c,0x0003003e,0x0000017e,0x0000017d, + 0x00050039,0x00000013,0x0000017f,0x0000004d,0x0000017e,0x0004003d,0x00000013,0x00000180, + 0x00000052,0x0004003d,0x00000013,0x00000181,0x00000171,0x0008004f,0x00000013,0x00000182, + 0x00000181,0x00000181,0x00000001,0x00000001,0x00000001,0x00050085,0x00000013,0x00000183, + 0x00000180,0x00000182,0x0004003d,0x00000013,0x00000184,0x00000052,0x0004003d,0x0000000e, + 0x00000185,0x00000176,0x0008004f,0x00000013,0x00000186,0x00000185,0x00000185,0x00000000, + 0x00000000,0x00000000,0x00050085,0x00000013,0x00000187,0x00000184,0x00000186,0x0004003d, + 0x0000000e,0x00000188,0x00000176,0x0008004f,0x00000013,0x00000189,0x00000188,0x00000188, + 0x00000001,0x00000001,0x00000001,0x00050081,0x00000013,0x0000018a,0x00000187,0x00000189, + 0x0004003d,0x00000013,0x0000018b,0x00000171,0x0008004f,0x00000013,0x0000018c,0x0000018b, + 0x0000018b,0x00000002,0x00000002,0x00000002,0x0007000c,0x00000013,0x0000018d,0x00000001, + 0x0000001a,0x0000018a,0x0000018c,0x0003003e,0x0000018e,0x0000017f,0x0003003e,0x0000018f, + 0x00000183,0x0003003e,0x00000190,0x0000018d,0x00070039,0x00000013,0x00000191,0x0000004a, + 0x0000018e,0x0000018f,0x00000190,0x000200fe,0x00000191,0x00010038,0x00050036,0x00000056, + 0x00000058,0x00000000,0x00000057,0x000200f8,0x00000059,0x00050041,0x00000198,0x00000199, + 0x00000196,0x00000197,0x0004003d,0x00000056,0x0000019a,0x00000199,0x000200fe,0x0000019a, + 0x00010038,0x00050036,0x00000056,0x0000005a,0x00000000,0x00000057,0x000200f8,0x0000005b, + 0x00050041,0x00000198,0x0000019e,0x00000196,0x0000019d,0x0004003d,0x00000056,0x0000019f, + 0x0000019e,0x000200fe,0x0000019f,0x00010038,0x00050036,0x00000056,0x0000005c,0x00000000, + 0x00000057,0x000200f8,0x0000005d,0x00050041,0x00000198,0x000001a3,0x00000196,0x000001a2, + 0x0004003d,0x00000056,0x000001a4,0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036, + 0x00000056,0x0000005e,0x00000000,0x00000057,0x000200f8,0x0000005f,0x00050041,0x00000198, + 0x000001a8,0x00000196,0x000001a7,0x0004003d,0x00000056,0x000001a9,0x000001a8,0x000200fe, + 0x000001a9,0x00010038,0x00050036,0x00000056,0x00000060,0x00000000,0x00000057,0x000200f8, + 0x00000061,0x0004003b,0x0000006e,0x000001ac,0x00000007,0x00050041,0x000001ae,0x000001af, + 0x00000196,0x000001ad,0x0004003d,0x0000000e,0x000001b0,0x000001af,0x00050050,0x0000000e, + 0x000001b1,0x00000110,0x00000110,0x00050088,0x0000000e,0x000001b2,0x000001b1,0x000001b0, + 0x00050041,0x000001b4,0x000001b5,0x00000196,0x000001b3,0x0004003d,0x00000055,0x000001b6, + 0x000001b5,0x00050050,0x00000056,0x000001b7,0x000001b6,0x000001b6,0x0004006f,0x0000000e, + 0x000001b8,0x000001b7,0x00050088,0x0000000e,0x000001b9,0x000001b2,0x000001b8,0x0004006e, + 0x00000056,0x000001ba,0x000001b9,0x0003003e,0x000001ac,0x000001ba,0x0004003d,0x00000056, + 0x000001bb,0x000001ac,0x000200fe,0x000001bb,0x00010038,0x00050036,0x00000056,0x00000062, + 0x00000000,0x00000057,0x000200f8,0x00000063,0x00040039,0x00000056,0x000001be,0x00000060, + 0x00050050,0x00000056,0x000001bf,0x000001a7,0x000001a7,0x00050084,0x00000056,0x000001c0, + 0x000001be,0x000001bf,0x000200fe,0x000001c0,0x00010038,0x00050036,0x00000056,0x00000064, + 0x00000000,0x00000057,0x000200f8,0x00000065,0x00050041,0x00000198,0x000001c4,0x00000196, + 0x000001c3,0x0004003d,0x00000056,0x000001c5,0x000001c4,0x000200fe,0x000001c5,0x00010038, + 0x00050036,0x00000006,0x00000067,0x00000000,0x00000066,0x000200f8,0x00000068,0x00050041, + 0x000001c9,0x000001ca,0x00000196,0x000001c8,0x0004003d,0x00000006,0x000001cb,0x000001ca, + 0x000200fe,0x000001cb,0x00010038,0x00050036,0x00000008,0x0000006a,0x00000000,0x00000069, + 0x000200f8,0x0000006b,0x00060041,0x000001d0,0x000001d1,0x00000196,0x000001ce,0x000001cf, + 0x0004003d,0x00000008,0x000001d2,0x000001d1,0x000200fe,0x000001d2,0x00010038,0x00050036, + 0x00000008,0x0000006c,0x00000000,0x00000069,0x000200f8,0x0000006d,0x00060041,0x000001d0, + 0x000001d6,0x00000196,0x000001ce,0x000001d5,0x0004003d,0x00000008,0x000001d7,0x000001d6, + 0x000200fe,0x000001d7,0x00010038,0x00050036,0x00000013,0x00000071,0x00000000,0x0000006f, + 0x00030037,0x0000006e,0x00000070,0x000200f8,0x00000072,0x0004003d,0x000001da,0x000001dd, + 0x000001dc,0x0004003d,0x00000056,0x000001de,0x00000070,0x0007005f,0x00000076,0x000001df, + 0x000001dd,0x000001de,0x00000002,0x000001a2,0x0008004f,0x00000013,0x000001e0,0x000001df, + 0x000001df,0x00000000,0x00000001,0x00000002,0x000200fe,0x000001e0,0x00010038,0x00050036, + 0x00000013,0x00000074,0x00000000,0x0000006f,0x00030037,0x0000006e,0x00000073,0x000200f8, + 0x00000075,0x0004003d,0x000001da,0x000001e4,0x000001e3,0x0004003d,0x00000056,0x000001e5, + 0x00000073,0x0007005f,0x00000076,0x000001e6,0x000001e4,0x000001e5,0x00000002,0x000001a2, + 0x0008004f,0x00000013,0x000001e7,0x000001e6,0x000001e6,0x00000000,0x00000001,0x00000002, + 0x000200fe,0x000001e7,0x00010038,0x00050036,0x00000076,0x00000079,0x00000000,0x00000077, + 0x00030037,0x00000029,0x00000078,0x000200f8,0x0000007a,0x0004003d,0x000001da,0x000001eb, + 0x000001ea,0x0004003d,0x000001ec,0x000001ef,0x000001ee,0x00050056,0x000001f0,0x000001f1, + 0x000001eb,0x000001ef,0x0004003d,0x0000000e,0x000001f2,0x00000078,0x00070058,0x00000076, + 0x000001f3,0x000001f1,0x000001f2,0x00000002,0x0000010f,0x000200fe,0x000001f3,0x00010038, + 0x00050036,0x0000007b,0x0000007e,0x00000000,0x0000007c,0x00030037,0x0000006e,0x0000007d, + 0x000200f8,0x0000007f,0x0004003b,0x00000007,0x000001f6,0x00000007,0x0004003b,0x00000007, + 0x000001ff,0x00000007,0x0004003d,0x000001f7,0x000001fa,0x000001f9,0x0004003d,0x00000056, + 0x000001fb,0x0000007d,0x0007005f,0x000001fc,0x000001fd,0x000001fa,0x000001fb,0x00000002, + 0x000001a2,0x00050051,0x00000006,0x000001fe,0x000001fd,0x00000000,0x0003003e,0x000001f6, + 0x000001fe,0x0004003d,0x000001f7,0x00000201,0x00000200,0x0004003d,0x00000056,0x00000202, + 0x0000007d,0x0007005f,0x000001fc,0x00000203,0x00000201,0x00000202,0x00000002,0x000001a2, + 0x00050051,0x00000006,0x00000204,0x00000203,0x00000000,0x0003003e,0x000001ff,0x00000204, + 0x0004003d,0x00000006,0x00000205,0x000001f6,0x0004003d,0x00000006,0x00000206,0x000001ff, + 0x00050050,0x0000007b,0x00000207,0x00000205,0x00000206,0x000200fe,0x00000207,0x00010038, + 0x00050036,0x0000007b,0x00000081,0x00000000,0x0000007c,0x00030037,0x0000006e,0x00000080, + 0x000200f8,0x00000082,0x0004003b,0x00000007,0x0000020a,0x00000007,0x0004003b,0x00000007, + 0x00000210,0x00000007,0x0004003d,0x000001f7,0x0000020c,0x0000020b,0x0004003d,0x00000056, + 0x0000020d,0x00000080,0x0007005f,0x000001fc,0x0000020e,0x0000020c,0x0000020d,0x00000002, + 0x000001a2,0x00050051,0x00000006,0x0000020f,0x0000020e,0x00000000,0x0003003e,0x0000020a, + 0x0000020f,0x0004003d,0x000001f7,0x00000212,0x00000211,0x0004003d,0x00000056,0x00000213, + 0x00000080,0x0007005f,0x000001fc,0x00000214,0x00000212,0x00000213,0x00000002,0x000001a2, + 0x00050051,0x00000006,0x00000215,0x00000214,0x00000000,0x0003003e,0x00000210,0x00000215, + 0x0004003d,0x00000006,0x00000216,0x0000020a,0x0004003d,0x00000006,0x00000217,0x00000210, + 0x00050050,0x0000007b,0x00000218,0x00000216,0x00000217,0x000200fe,0x00000218,0x00010038, + 0x00050036,0x00000076,0x00000088,0x00000000,0x00000085,0x00030037,0x00000083,0x00000086, + 0x00030037,0x00000084,0x00000087,0x000200f8,0x00000089,0x0004003d,0x000001da,0x0000021c, + 0x0000021b,0x0004003d,0x0000007b,0x0000021d,0x00000087,0x0004007c,0x00000056,0x0000021e, + 0x0000021d,0x0004003d,0x00000055,0x0000021f,0x00000086,0x0007005f,0x00000076,0x00000220, + 0x0000021c,0x0000021e,0x00000002,0x0000021f,0x000200fe,0x00000220,0x00010038,0x00050036, + 0x00000006,0x0000008c,0x00000000,0x0000008a,0x00030037,0x00000083,0x0000008b,0x000200f8, + 0x0000008d,0x0004003d,0x00000055,0x00000227,0x0000008b,0x00060041,0x00000228,0x00000229, + 0x00000226,0x000001a2,0x00000227,0x0004003d,0x00000006,0x0000022a,0x00000229,0x000200fe, + 0x0000022a,0x00010038,0x00050036,0x00000006,0x0000008e,0x00000000,0x00000066,0x000200f8, + 0x0000008f,0x0004003b,0x00000083,0x0000022d,0x00000007,0x0003003e,0x0000022d,0x000001a7, + 0x00050039,0x00000006,0x0000022e,0x0000008c,0x0000022d,0x000200fe,0x0000022e,0x00010038, + 0x00050036,0x00000002,0x00000094,0x00000000,0x00000091,0x00030037,0x0000006e,0x00000092, + 0x00030037,0x00000090,0x00000093,0x000200f8,0x00000095,0x0004003d,0x00000231,0x00000234, + 0x00000233,0x0004003d,0x00000056,0x00000235,0x00000092,0x0004003d,0x00000076,0x00000236, + 0x00000093,0x00040063,0x00000234,0x00000235,0x00000236,0x000100fd,0x00010038,0x00050036, + 0x00000013,0x0000009a,0x00000000,0x00000096,0x00030037,0x0000001e,0x00000097,0x00030037, + 0x0000000d,0x00000098,0x00030037,0x0000000d,0x00000099,0x000200f8,0x0000009b,0x0004003b, + 0x0000001e,0x00000237,0x00000007,0x0004003b,0x0000000d,0x0000023c,0x00000007,0x0004003b, + 0x0000000d,0x00000244,0x00000007,0x0004003d,0x00000013,0x00000238,0x00000097,0x0004003d, + 0x00000008,0x00000239,0x00000098,0x00050088,0x00000008,0x0000023b,0x00000239,0x0000023a, + 0x0003003e,0x0000023c,0x0000023b,0x00050039,0x00000013,0x0000023d,0x00000016,0x0000023c, + 0x00050083,0x00000013,0x0000023e,0x00000238,0x0000023d,0x0003003e,0x00000237,0x0000023e, + 0x0004003d,0x00000013,0x0000023f,0x00000237,0x0004003d,0x00000008,0x00000240,0x00000099, + 0x0004003d,0x00000008,0x00000241,0x00000098,0x00050083,0x00000008,0x00000242,0x00000240, + 0x00000241,0x00050088,0x00000008,0x00000243,0x00000242,0x0000023a,0x0003003e,0x00000244, + 0x00000243,0x00050039,0x00000013,0x00000245,0x00000016,0x00000244,0x00050088,0x00000013, + 0x00000246,0x0000023f,0x00000245,0x000200fe,0x00000246,0x00010038,0x00050036,0x00000013, + 0x0000009d,0x00000000,0x0000002e,0x00030037,0x0000001e,0x0000009c,0x000200f8,0x0000009e, + 0x0004003b,0x0000001e,0x0000024e,0x00000007,0x0004003b,0x0000001e,0x0000024f,0x00000007, + 0x0004003b,0x0000001e,0x00000253,0x00000007,0x0004003b,0x0000001e,0x0000025d,0x00000007, + 0x0004003b,0x0000000d,0x0000025f,0x00000007,0x0004003b,0x0000000d,0x00000260,0x00000007, + 0x00040039,0x00000006,0x00000249,0x00000067,0x000300f7,0x0000024d,0x00000000,0x000900fb, + 0x00000249,0x0000024d,0x00000000,0x0000024a,0x00000001,0x0000024b,0x00000002,0x0000024c, + 0x000200f8,0x0000024a,0x0004003d,0x00000013,0x00000250,0x0000009c,0x0003003e,0x0000024f, + 0x00000250,0x00050039,0x00000013,0x00000251,0x00000053,0x0000024f,0x0003003e,0x0000024e, + 0x00000251,0x000200f9,0x0000024d,0x000200f8,0x0000024b,0x0004003d,0x00000013,0x00000254, + 0x0000009c,0x0003003e,0x00000253,0x00000254,0x00050039,0x00000013,0x00000255,0x00000050, + 0x00000253,0x00040039,0x00000008,0x00000257,0x0000006c,0x00050088,0x00000008,0x00000258, + 0x00000256,0x00000257,0x0005008e,0x00000013,0x00000259,0x00000255,0x00000258,0x0003003e, + 0x0000024e,0x00000259,0x000200f9,0x0000024d,0x000200f8,0x0000024c,0x00040039,0x00000008, + 0x0000025b,0x0000006a,0x00040039,0x00000008,0x0000025c,0x0000006c,0x0004003d,0x00000013, + 0x0000025e,0x0000009c,0x0003003e,0x0000025d,0x0000025e,0x0003003e,0x0000025f,0x0000025b, + 0x0003003e,0x00000260,0x0000025c,0x00070039,0x00000013,0x00000261,0x0000009a,0x0000025d, + 0x0000025f,0x00000260,0x0003003e,0x0000024e,0x00000261,0x000200f9,0x0000024d,0x000200f8, + 0x0000024d,0x0004003d,0x00000013,0x00000264,0x0000024e,0x000200fe,0x00000264,0x00010038, + 0x00050036,0x000000a2,0x000000a6,0x00000000,0x000000a3,0x00030037,0x00000029,0x000000a4, + 0x00030037,0x0000006e,0x000000a5,0x000200f8,0x000000a7,0x0004003b,0x00000029,0x00000267, + 0x00000007,0x0004003b,0x0000026f,0x00000270,0x00000007,0x0004003b,0x00000029,0x00000276, + 0x00000007,0x0004003b,0x00000029,0x00000277,0x00000007,0x0004003d,0x0000000e,0x00000268, + 0x000000a4,0x0004003d,0x00000056,0x00000269,0x000000a5,0x0004006f,0x0000000e,0x0000026a, + 0x00000269,0x00050085,0x0000000e,0x0000026b,0x00000268,0x0000026a,0x00050083,0x0000000e, + 0x0000026e,0x0000026b,0x0000026d,0x0003003e,0x00000267,0x0000026e,0x0004003d,0x0000000e, + 0x00000272,0x00000267,0x0006000c,0x0000000e,0x00000273,0x00000001,0x00000008,0x00000272, + 0x0004006e,0x00000056,0x00000274,0x00000273,0x00050041,0x0000006e,0x00000275,0x00000270, + 0x00000271,0x0003003e,0x00000275,0x00000274,0x0004003d,0x0000000e,0x00000278,0x00000267, + 0x0003003e,0x00000277,0x00000278,0x00050039,0x0000000e,0x00000279,0x00000033,0x00000277, + 0x0003003e,0x00000276,0x00000279,0x00060041,0x0000006e,0x0000027b,0x00000270,0x000001a2, + 0x000001a2,0x0003003e,0x0000027b,0x0000027a,0x00060041,0x0000006e,0x0000027d,0x00000270, + 0x000001a2,0x000001a7,0x0003003e,0x0000027d,0x0000027c,0x00060041,0x0000006e,0x0000027f, + 0x00000270,0x000001a2,0x00000271,0x0003003e,0x0000027f,0x0000027e,0x00060041,0x0000006e, + 0x00000282,0x00000270,0x000001a2,0x00000280,0x0003003e,0x00000282,0x00000281,0x00050041, + 0x0000000d,0x00000283,0x00000276,0x000001cf,0x0004003d,0x00000008,0x00000284,0x00000283, + 0x00050083,0x00000008,0x00000285,0x00000110,0x00000284,0x00050041,0x0000000d,0x00000286, + 0x00000276,0x000001d5,0x0004003d,0x00000008,0x00000287,0x00000286,0x00050083,0x00000008, + 0x00000288,0x00000110,0x00000287,0x00050085,0x00000008,0x00000289,0x00000285,0x00000288, + 0x00060041,0x0000000d,0x0000028a,0x00000270,0x000001a7,0x000001a2,0x0003003e,0x0000028a, + 0x00000289,0x00050041,0x0000000d,0x0000028b,0x00000276,0x000001cf,0x0004003d,0x00000008, + 0x0000028c,0x0000028b,0x00050041,0x0000000d,0x0000028d,0x00000276,0x000001d5,0x0004003d, + 0x00000008,0x0000028e,0x0000028d,0x00050083,0x00000008,0x0000028f,0x00000110,0x0000028e, + 0x00050085,0x00000008,0x00000290,0x0000028c,0x0000028f,0x00060041,0x0000000d,0x00000291, + 0x00000270,0x000001a7,0x000001a7,0x0003003e,0x00000291,0x00000290,0x00050041,0x0000000d, + 0x00000292,0x00000276,0x000001cf,0x0004003d,0x00000008,0x00000293,0x00000292,0x00050083, + 0x00000008,0x00000294,0x00000110,0x00000293,0x00050041,0x0000000d,0x00000295,0x00000276, + 0x000001d5,0x0004003d,0x00000008,0x00000296,0x00000295,0x00050085,0x00000008,0x00000297, + 0x00000294,0x00000296,0x00060041,0x0000000d,0x00000298,0x00000270,0x000001a7,0x00000271, + 0x0003003e,0x00000298,0x00000297,0x00050041,0x0000000d,0x00000299,0x00000276,0x000001cf, + 0x0004003d,0x00000008,0x0000029a,0x00000299,0x00050041,0x0000000d,0x0000029b,0x00000276, + 0x000001d5,0x0004003d,0x00000008,0x0000029c,0x0000029b,0x00050085,0x00000008,0x0000029d, + 0x0000029a,0x0000029c,0x00060041,0x0000000d,0x0000029e,0x00000270,0x000001a7,0x00000280, + 0x0003003e,0x0000029e,0x0000029d,0x0004003d,0x000000a2,0x0000029f,0x00000270,0x000200fe, + 0x0000029f,0x00010038,0x00050036,0x000000a8,0x000000ac,0x00000000,0x000000a9,0x00030037, + 0x0000006e,0x000000aa,0x00030037,0x0000006e,0x000000ab,0x000200f8,0x000000ad,0x0004003d, + 0x00000056,0x000002a2,0x000000aa,0x0004007c,0x0000007b,0x000002a3,0x000002a2,0x0004003d, + 0x00000056,0x000002a4,0x000000ab,0x0004007c,0x0000007b,0x000002a5,0x000002a4,0x000500b0, + 0x000002a6,0x000002a7,0x000002a3,0x000002a5,0x0004009b,0x000000a8,0x000002a8,0x000002a7, + 0x000200fe,0x000002a8,0x00010038,0x00050036,0x000000a8,0x000000b0,0x00000000,0x000000ae, + 0x00030037,0x00000029,0x000000af,0x000200f8,0x000000b1,0x00050041,0x0000000d,0x000002ab, + 0x000000af,0x000001cf,0x0004003d,0x00000008,0x000002ac,0x000002ab,0x000500ba,0x000000a8, + 0x000002ad,0x000002ac,0x0000010f,0x000300f7,0x000002af,0x00000000,0x000400fa,0x000002ad, + 0x000002ae,0x000002af,0x000200f8,0x000002ae,0x00050041,0x0000000d,0x000002b0,0x000000af, + 0x000001cf,0x0004003d,0x00000008,0x000002b1,0x000002b0,0x000500b8,0x000000a8,0x000002b2, + 0x000002b1,0x00000110,0x000200f9,0x000002af,0x000200f8,0x000002af,0x000700f5,0x000000a8, + 0x000002b3,0x000002ad,0x000000b1,0x000002b2,0x000002ae,0x000300f7,0x000002b5,0x00000000, + 0x000400fa,0x000002b3,0x000002b4,0x000002b5,0x000200f8,0x000002b4,0x00050041,0x0000000d, + 0x000002b6,0x000000af,0x000001d5,0x0004003d,0x00000008,0x000002b7,0x000002b6,0x000500ba, + 0x000000a8,0x000002b8,0x000002b7,0x0000010f,0x000300f7,0x000002ba,0x00000000,0x000400fa, + 0x000002b8,0x000002b9,0x000002ba,0x000200f8,0x000002b9,0x00050041,0x0000000d,0x000002bb, + 0x000000af,0x000001d5,0x0004003d,0x00000008,0x000002bc,0x000002bb,0x000500b8,0x000000a8, + 0x000002bd,0x000002bc,0x00000110,0x000200f9,0x000002ba,0x000200f8,0x000002ba,0x000700f5, + 0x000000a8,0x000002be,0x000002b8,0x000002b4,0x000002bd,0x000002b9,0x000200f9,0x000002b5, + 0x000200f8,0x000002b5,0x000700f5,0x000000a8,0x000002bf,0x000002b3,0x000002af,0x000002be, + 0x000002ba,0x000200fe,0x000002bf,0x00010038,0x00050036,0x000000a8,0x000000b6,0x00000000, + 0x000000b2,0x00030037,0x0000006e,0x000000b3,0x00030037,0x0000006e,0x000000b4,0x00030037, + 0x0000006e,0x000000b5,0x000200f8,0x000000b7,0x00050041,0x00000083,0x000002c2,0x000000b3, + 0x000001cf,0x0004003d,0x00000055,0x000002c3,0x000002c2,0x00050041,0x00000083,0x000002c4, + 0x000000b4,0x000001cf,0x0004003d,0x00000055,0x000002c5,0x000002c4,0x000500af,0x000000a8, + 0x000002c6,0x000002c3,0x000002c5,0x000300f7,0x000002c8,0x00000000,0x000400fa,0x000002c6, + 0x000002c7,0x000002c8,0x000200f8,0x000002c7,0x00050041,0x00000083,0x000002c9,0x000000b3, + 0x000001cf,0x0004003d,0x00000055,0x000002ca,0x000002c9,0x00050041,0x00000083,0x000002cb, + 0x000000b5,0x000001cf,0x0004003d,0x00000055,0x000002cc,0x000002cb,0x00050041,0x00000083, + 0x000002cd,0x000000b4,0x000001cf,0x0004003d,0x00000055,0x000002ce,0x000002cd,0x00050080, + 0x00000055,0x000002cf,0x000002cc,0x000002ce,0x000500b1,0x000000a8,0x000002d0,0x000002ca, + 0x000002cf,0x000200f9,0x000002c8,0x000200f8,0x000002c8,0x000700f5,0x000000a8,0x000002d1, + 0x000002c6,0x000000b7,0x000002d0,0x000002c7,0x000300f7,0x000002d3,0x00000000,0x000400fa, + 0x000002d1,0x000002d2,0x000002d3,0x000200f8,0x000002d2,0x00050041,0x00000083,0x000002d4, + 0x000000b3,0x000001d5,0x0004003d,0x00000055,0x000002d5,0x000002d4,0x00050041,0x00000083, + 0x000002d6,0x000000b4,0x000001d5,0x0004003d,0x00000055,0x000002d7,0x000002d6,0x000500af, + 0x000000a8,0x000002d8,0x000002d5,0x000002d7,0x000200f9,0x000002d3,0x000200f8,0x000002d3, + 0x000700f5,0x000000a8,0x000002d9,0x000002d1,0x000002c8,0x000002d8,0x000002d2,0x000300f7, + 0x000002db,0x00000000,0x000400fa,0x000002d9,0x000002da,0x000002db,0x000200f8,0x000002da, + 0x00050041,0x00000083,0x000002dc,0x000000b3,0x000001d5,0x0004003d,0x00000055,0x000002dd, + 0x000002dc,0x00050041,0x00000083,0x000002de,0x000000b5,0x000001d5,0x0004003d,0x00000055, + 0x000002df,0x000002de,0x00050041,0x00000083,0x000002e0,0x000000b4,0x000001d5,0x0004003d, + 0x00000055,0x000002e1,0x000002e0,0x00050080,0x00000055,0x000002e2,0x000002df,0x000002e1, + 0x000500b1,0x000000a8,0x000002e3,0x000002dd,0x000002e2,0x000200f9,0x000002db,0x000200f8, + 0x000002db,0x000700f5,0x000000a8,0x000002e4,0x000002d9,0x000002d3,0x000002e3,0x000002da, + 0x000200fe,0x000002e4,0x00010038,0x00050036,0x00000008,0x000000bb,0x00000000,0x000000b8, + 0x00030037,0x00000013,0x000000b9,0x00030037,0x00000013,0x000000ba,0x000200f8,0x000000bc, + 0x0004003b,0x0000000d,0x000002e7,0x00000007,0x0004003b,0x0000000d,0x000002ea,0x00000007, + 0x0004003b,0x0000000d,0x000002eb,0x00000007,0x0004003b,0x0000000d,0x000002ef,0x00000007, + 0x0006000c,0x00000008,0x000002e8,0x00000001,0x00000042,0x000000b9,0x0006000c,0x00000008, + 0x000002e9,0x00000001,0x00000042,0x000000ba,0x0003003e,0x000002ea,0x000002e8,0x0003003e, + 0x000002eb,0x000002e9,0x00060039,0x00000008,0x000002ec,0x00000040,0x000002ea,0x000002eb, + 0x0003003e,0x000002e7,0x000002ec,0x0004003d,0x00000008,0x000002ed,0x000002e7,0x000500ba, + 0x000000a8,0x000002ee,0x000002ed,0x0000010f,0x000300f7,0x000002f1,0x00000000,0x000400fa, + 0x000002ee,0x000002f0,0x000002f9,0x000200f8,0x000002f0,0x0004003d,0x00000008,0x000002f2, + 0x000002e7,0x00060050,0x00000013,0x000002f3,0x000002f2,0x000002f2,0x000002f2,0x00050088, + 0x00000013,0x000002f4,0x000000b9,0x000002f3,0x0004003d,0x00000008,0x000002f5,0x000002e7, + 0x00060050,0x00000013,0x000002f6,0x000002f5,0x000002f5,0x000002f5,0x00050088,0x00000013, + 0x000002f7,0x000000ba,0x000002f6,0x00050094,0x00000008,0x000002f8,0x000002f4,0x000002f7, + 0x0003003e,0x000002ef,0x000002f8,0x000200f9,0x000002f1,0x000200f8,0x000002f9,0x0003003e, + 0x000002ef,0x00000110,0x000200f9,0x000002f1,0x000200f8,0x000002f1,0x0004003d,0x00000008, + 0x000002fa,0x000002ef,0x000200fe,0x000002fa,0x00010038,0x00050036,0x000000bd,0x000000bf, + 0x00000000,0x000000be,0x000200f8,0x000000c0,0x0004003b,0x000000c5,0x000002fd,0x00000007, + 0x00050041,0x00000029,0x000002ff,0x000002fd,0x000001a2,0x0003003e,0x000002ff,0x000002fe, + 0x00050041,0x0000000d,0x00000300,0x000002fd,0x000001a7,0x0003003e,0x00000300,0x0000010f, + 0x00050041,0x0000000d,0x00000301,0x000002fd,0x00000271,0x0003003e,0x00000301,0x0000010f, + 0x00050041,0x000000de,0x00000303,0x000002fd,0x00000280,0x0003003e,0x00000303,0x00000302, + 0x00050041,0x000000de,0x00000305,0x000002fd,0x00000304,0x0003003e,0x00000305,0x00000302, + 0x00050041,0x000000de,0x00000307,0x000002fd,0x00000306,0x0003003e,0x00000307,0x00000302, + 0x00050041,0x000000de,0x00000309,0x000002fd,0x00000308,0x0003003e,0x00000309,0x00000302, + 0x00050041,0x0000000d,0x0000030b,0x000002fd,0x0000030a,0x0003003e,0x0000030b,0x0000010f, + 0x00050041,0x000000de,0x0000030d,0x000002fd,0x0000030c,0x0003003e,0x0000030d,0x00000302, + 0x00050041,0x000000de,0x0000030f,0x000002fd,0x0000030e,0x0003003e,0x0000030f,0x00000302, + 0x0004003d,0x000000bd,0x00000310,0x000002fd,0x000200fe,0x00000310,0x00010038,0x00050036, + 0x000000a8,0x000000c3,0x00000000,0x000000c1,0x00030037,0x00000007,0x000000c2,0x000200f8, + 0x000000c4,0x0004003d,0x00000006,0x00000313,0x000000c2,0x000500c7,0x00000006,0x00000315, + 0x00000313,0x00000314,0x000500ab,0x000000a8,0x00000316,0x00000315,0x000001cf,0x000200fe, + 0x00000316,0x00010038,0x00050036,0x00000002,0x000000c9,0x00000000,0x000000c6,0x00030037, + 0x00000084,0x000000c7,0x00030037,0x000000c5,0x000000c8,0x000200f8,0x000000ca,0x0004003b, + 0x00000007,0x0000032d,0x00000007,0x0004003b,0x00000007,0x00000347,0x00000007,0x0004003b, + 0x00000007,0x0000034d,0x00000007,0x00050041,0x00000007,0x00000319,0x000000c7,0x000001cf, + 0x0004003d,0x00000006,0x0000031a,0x00000319,0x000500c2,0x00000006,0x0000031c,0x0000031a, + 0x0000031b,0x000500c7,0x00000006,0x0000031e,0x0000031c,0x0000031d,0x00040070,0x00000008, + 0x0000031f,0x0000031e,0x00050088,0x00000008,0x00000321,0x0000031f,0x00000320,0x00050041, + 0x0000000d,0x00000322,0x000000c8,0x000001a7,0x0003003e,0x00000322,0x00000321,0x00050041, + 0x00000007,0x00000323,0x000000c7,0x000001cf,0x0004003d,0x00000006,0x00000324,0x00000323, + 0x000500c2,0x00000006,0x00000326,0x00000324,0x00000325,0x000500c7,0x00000006,0x00000328, + 0x00000326,0x00000327,0x00040070,0x00000008,0x00000329,0x00000328,0x00050088,0x00000008, + 0x0000032b,0x00000329,0x0000032a,0x00050041,0x0000000d,0x0000032c,0x000000c8,0x00000271, + 0x0003003e,0x0000032c,0x0000032b,0x00050041,0x00000007,0x0000032e,0x000000c7,0x000001cf, + 0x0004003d,0x00000006,0x0000032f,0x0000032e,0x0003003e,0x0000032d,0x0000032f,0x00050039, + 0x000000a8,0x00000330,0x000000c3,0x0000032d,0x00050041,0x000000de,0x00000331,0x000000c8, + 0x00000304,0x0003003e,0x00000331,0x00000330,0x00050041,0x0000000d,0x00000332,0x000000c8, + 0x000001a7,0x0004003d,0x00000008,0x00000333,0x00000332,0x000500ba,0x000000a8,0x00000334, + 0x00000333,0x0000010f,0x00050041,0x000000de,0x00000335,0x000000c8,0x00000280,0x0003003e, + 0x00000335,0x00000334,0x00050041,0x000000de,0x00000336,0x000000c8,0x00000280,0x0004003d, + 0x000000a8,0x00000337,0x00000336,0x000300f7,0x00000339,0x00000000,0x000400fa,0x00000337, + 0x00000338,0x00000339,0x000200f8,0x00000338,0x00050041,0x000000de,0x0000033a,0x000000c8, + 0x00000304,0x0004003d,0x000000a8,0x0000033b,0x0000033a,0x000400a8,0x000000a8,0x0000033c, + 0x0000033b,0x000200f9,0x00000339,0x000200f8,0x00000339,0x000700f5,0x000000a8,0x0000033d, + 0x00000337,0x000000ca,0x0000033c,0x00000338,0x00050041,0x000000de,0x0000033e,0x000000c8, + 0x00000306,0x0003003e,0x0000033e,0x0000033d,0x00050041,0x000000de,0x0000033f,0x000000c8, + 0x00000306,0x0004003d,0x000000a8,0x00000340,0x0000033f,0x000300f7,0x00000342,0x00000000, + 0x000400fa,0x00000340,0x00000341,0x00000342,0x000200f8,0x00000341,0x00050041,0x0000000d, + 0x00000343,0x000000c8,0x000001a7,0x0004003d,0x00000008,0x00000344,0x00000343,0x00050083, + 0x00000008,0x00000345,0x00000110,0x00000344,0x00050041,0x0000000d,0x00000346,0x000000c8, + 0x000001a7,0x0003003e,0x00000346,0x00000345,0x000200f9,0x00000342,0x000200f8,0x00000342, + 0x00050041,0x00000007,0x00000348,0x000000c7,0x000001cf,0x0004003d,0x00000006,0x00000349, + 0x00000348,0x0003003e,0x00000347,0x00000349,0x00050039,0x0000000e,0x0000034a,0x00000037, + 0x00000347,0x00050051,0x00000008,0x0000034b,0x0000034a,0x00000000,0x00060041,0x0000000d, + 0x0000034c,0x000000c8,0x000001a2,0x000001cf,0x0003003e,0x0000034c,0x0000034b,0x00050041, + 0x00000007,0x0000034e,0x000000c7,0x000001d5,0x0004003d,0x00000006,0x0000034f,0x0000034e, + 0x0003003e,0x0000034d,0x0000034f,0x00050039,0x0000000e,0x00000350,0x00000037,0x0000034d, + 0x00050051,0x00000008,0x00000351,0x00000350,0x00000000,0x00060041,0x0000000d,0x00000352, + 0x000000c8,0x000001a2,0x000001d5,0x0003003e,0x00000352,0x00000351,0x00050041,0x000000de, + 0x00000353,0x000000c8,0x00000308,0x0003003e,0x00000353,0x00000302,0x000100fd,0x00010038, + 0x00050036,0x00000076,0x000000cf,0x00000000,0x000000cb,0x00030037,0x00000029,0x000000cc, + 0x00030037,0x00000055,0x000000cd,0x00030037,0x00000056,0x000000ce,0x000200f8,0x000000d0, + 0x0004003b,0x0000026f,0x00000354,0x00000007,0x0004003b,0x00000029,0x00000355,0x00000007, + 0x0004003b,0x0000006e,0x00000357,0x00000007,0x0004003b,0x0000000d,0x00000359,0x00000007, + 0x0004003b,0x00000090,0x0000035a,0x00000007,0x0004003b,0x00000083,0x0000035e,0x00000007, + 0x0004003b,0x0000006e,0x00000366,0x00000007,0x0004003b,0x0000006e,0x0000036a,0x00000007, + 0x0004003b,0x0000006e,0x0000036f,0x00000007,0x0004003b,0x0000006e,0x00000371,0x00000007, + 0x0004003b,0x00000090,0x00000375,0x00000007,0x0004003b,0x00000083,0x00000378,0x00000007, + 0x0004003b,0x00000084,0x00000379,0x00000007,0x0004003b,0x0000000d,0x0000037b,0x00000007, + 0x0004003b,0x0000000d,0x0000037e,0x00000007,0x0004003b,0x0000000d,0x00000383,0x00000007, + 0x0004003d,0x0000000e,0x00000356,0x000000cc,0x0003003e,0x00000355,0x00000356,0x0003003e, + 0x00000357,0x000000ce,0x00060039,0x000000a2,0x00000358,0x000000a6,0x00000355,0x00000357, + 0x0003003e,0x00000354,0x00000358,0x0003003e,0x00000359,0x0000010f,0x0003003e,0x0000035a, + 0x0000035b,0x00050041,0x0000000d,0x0000035d,0x0000035a,0x0000035c,0x0003003e,0x0000035d, + 0x0000010f,0x0003003e,0x0000035e,0x000001a2,0x000200f9,0x0000035f,0x000200f8,0x0000035f, + 0x000400f6,0x00000361,0x00000362,0x00000000,0x000200f9,0x00000363,0x000200f8,0x00000363, + 0x0004003d,0x00000055,0x00000364,0x0000035e,0x000500b1,0x000000a8,0x00000365,0x00000364, + 0x00000304,0x000400fa,0x00000365,0x00000360,0x00000361,0x000200f8,0x00000360,0x0004003d, + 0x00000055,0x00000367,0x0000035e,0x00060041,0x0000006e,0x00000368,0x00000354,0x000001a2, + 0x00000367,0x0004003d,0x00000056,0x00000369,0x00000368,0x0003003e,0x00000366,0x00000369, + 0x00050041,0x0000006e,0x0000036b,0x00000354,0x00000271,0x0004003d,0x00000056,0x0000036c, + 0x0000036b,0x0004003d,0x00000056,0x0000036d,0x00000366,0x00050080,0x00000056,0x0000036e, + 0x0000036c,0x0000036d,0x0003003e,0x0000036a,0x0000036e,0x0004003d,0x00000056,0x00000370, + 0x0000036a,0x0003003e,0x0000036f,0x00000370,0x0003003e,0x00000371,0x000000ce,0x00060039, + 0x000000a8,0x00000372,0x000000ac,0x0000036f,0x00000371,0x000300f7,0x00000374,0x00000000, + 0x000400fa,0x00000372,0x00000373,0x00000374,0x000200f8,0x00000373,0x0004003d,0x00000056, + 0x00000376,0x0000036a,0x0004007c,0x0000007b,0x00000377,0x00000376,0x0003003e,0x00000378, + 0x000000cd,0x0003003e,0x00000379,0x00000377,0x00060039,0x00000076,0x0000037a,0x00000088, + 0x00000378,0x00000379,0x0003003e,0x00000375,0x0000037a,0x00050041,0x0000000d,0x0000037c, + 0x00000375,0x0000035c,0x0004003d,0x00000008,0x0000037d,0x0000037c,0x0003003e,0x0000037b, + 0x0000037d,0x00050041,0x0000000d,0x0000037f,0x00000375,0x0000035c,0x0004003d,0x00000008, + 0x00000380,0x0000037f,0x000500ba,0x000000a8,0x00000381,0x00000380,0x0000010f,0x000600a9, + 0x00000008,0x00000382,0x00000381,0x00000110,0x0000010f,0x0003003e,0x0000037e,0x00000382, + 0x0004003d,0x00000055,0x00000384,0x0000035e,0x00060041,0x0000000d,0x00000385,0x00000354, + 0x000001a7,0x00000384,0x0004003d,0x00000008,0x00000386,0x00000385,0x0004003d,0x00000008, + 0x00000387,0x0000037e,0x00050085,0x00000008,0x00000388,0x00000386,0x00000387,0x0004003d, + 0x00000008,0x00000389,0x0000037b,0x00050085,0x00000008,0x0000038a,0x00000388,0x00000389, + 0x0003003e,0x00000383,0x0000038a,0x0004003d,0x00000008,0x0000038b,0x00000383,0x0004003d, + 0x00000008,0x0000038c,0x00000359,0x00050081,0x00000008,0x0000038d,0x0000038c,0x0000038b, + 0x0003003e,0x00000359,0x0000038d,0x0004003d,0x00000076,0x0000038e,0x00000375,0x0004003d, + 0x00000008,0x0000038f,0x00000383,0x0005008e,0x00000076,0x00000390,0x0000038e,0x0000038f, + 0x0004003d,0x00000076,0x00000391,0x0000035a,0x00050081,0x00000076,0x00000392,0x00000391, + 0x00000390,0x0003003e,0x0000035a,0x00000392,0x000200f9,0x00000374,0x000200f8,0x00000374, + 0x000200f9,0x00000362,0x000200f8,0x00000362,0x0004003d,0x00000055,0x00000393,0x0000035e, + 0x00050080,0x00000055,0x00000394,0x00000393,0x000001a7,0x0003003e,0x0000035e,0x00000394, + 0x000200f9,0x0000035f,0x000200f8,0x00000361,0x0004003d,0x00000008,0x00000395,0x00000359, + 0x000500ba,0x000000a8,0x00000396,0x00000395,0x0000010f,0x0004003d,0x00000008,0x00000397, + 0x00000359,0x000600a9,0x00000008,0x00000398,0x00000396,0x00000397,0x00000110,0x0004003d, + 0x00000076,0x00000399,0x0000035a,0x00070050,0x00000076,0x0000039a,0x00000398,0x00000398, + 0x00000398,0x00000398,0x00050088,0x00000076,0x0000039b,0x00000399,0x0000039a,0x0003003e, + 0x0000035a,0x0000039b,0x0004003d,0x00000076,0x0000039c,0x0000035a,0x000200fe,0x0000039c, + 0x00010038,0x00050036,0x00000002,0x000000d4,0x00000000,0x000000d1,0x00030037,0x00000029, + 0x000000d2,0x00030037,0x000000c5,0x000000d3,0x000200f8,0x000000d5,0x0004003b,0x0000006e, + 0x0000039f,0x00000007,0x0004003b,0x00000084,0x000003a5,0x00000007,0x0004003b,0x0000006e, + 0x000003a6,0x00000007,0x0004003b,0x00000084,0x000003a9,0x00000007,0x0004003b,0x000000c5, + 0x000003ab,0x00000007,0x0004003b,0x0000006e,0x000003b3,0x00000007,0x0004003b,0x00000090, + 0x000003b5,0x00000007,0x0004003b,0x00000083,0x000003b6,0x00000007,0x0004003b,0x00000029, + 0x000003cb,0x00000007,0x0004003b,0x00000029,0x000003df,0x00000007,0x0004003b,0x00000029, + 0x000003e7,0x00000007,0x0004003d,0x0000000e,0x000003a0,0x000000d2,0x00040039,0x00000056, + 0x000003a1,0x0000005c,0x0004006f,0x0000000e,0x000003a2,0x000003a1,0x00050085,0x0000000e, + 0x000003a3,0x000003a0,0x000003a2,0x0004006e,0x00000056,0x000003a4,0x000003a3,0x0003003e, + 0x0000039f,0x000003a4,0x0004003d,0x00000056,0x000003a7,0x0000039f,0x0003003e,0x000003a6, + 0x000003a7,0x00050039,0x0000007b,0x000003a8,0x0000007e,0x000003a6,0x0003003e,0x000003a5, + 0x000003a8,0x0004003d,0x0000007b,0x000003aa,0x000003a5,0x0003003e,0x000003a9,0x000003aa, + 0x00060039,0x00000002,0x000003ac,0x000000c9,0x000003a9,0x000003ab,0x0004003d,0x000000bd, + 0x000003ad,0x000003ab,0x0003003e,0x000000d3,0x000003ad,0x00050041,0x000000de,0x000003ae, + 0x000000d3,0x00000280,0x0004003d,0x000000a8,0x000003af,0x000003ae,0x000400a8,0x000000a8, + 0x000003b0,0x000003af,0x000300f7,0x000003b2,0x00000000,0x000400fa,0x000003b0,0x000003b1, + 0x000003b2,0x000200f8,0x000003b1,0x00040039,0x00000056,0x000003b4,0x0000005c,0x0003003e, + 0x000003b3,0x000003b4,0x0003003e,0x000003b5,0x0000035b,0x0003003e,0x000003b6,0x000001a2, + 0x000200f9,0x000003b7,0x000200f8,0x000003b7,0x000400f6,0x000003b9,0x000003ba,0x00000000, + 0x000200f9,0x000003bb,0x000200f8,0x000003bb,0x0004003d,0x00000055,0x000003bc,0x000003b6, + 0x000500b1,0x000000a8,0x000003be,0x000003bc,0x000003bd,0x000300f7,0x000003c0,0x00000000, + 0x000400fa,0x000003be,0x000003bf,0x000003c0,0x000200f8,0x000003bf,0x00050041,0x0000000d, + 0x000003c2,0x000003b5,0x000003c1,0x0004003d,0x00000008,0x000003c3,0x000003c2,0x000500b4, + 0x000000a8,0x000003c4,0x000003c3,0x0000010f,0x000200f9,0x000003c0,0x000200f8,0x000003c0, + 0x000700f5,0x000000a8,0x000003c5,0x000003be,0x000003bb,0x000003c4,0x000003bf,0x000400fa, + 0x000003c5,0x000003b8,0x000003b9,0x000200f8,0x000003b8,0x0004003d,0x00000056,0x000003c6, + 0x000003b3,0x00050050,0x00000056,0x000003c7,0x00000271,0x00000271,0x00050087,0x00000056, + 0x000003c8,0x000003c6,0x000003c7,0x0003003e,0x000003b3,0x000003c8,0x0004003d,0x00000055, + 0x000003c9,0x000003b6,0x0004003d,0x00000056,0x000003ca,0x000003b3,0x0004003d,0x0000000e, + 0x000003cc,0x000000d2,0x0003003e,0x000003cb,0x000003cc,0x00070039,0x00000076,0x000003cd, + 0x000000cf,0x000003cb,0x000003c9,0x000003ca,0x0003003e,0x000003b5,0x000003cd,0x000200f9, + 0x000003ba,0x000200f8,0x000003ba,0x0004003d,0x00000055,0x000003ce,0x000003b6,0x00050080, + 0x00000055,0x000003cf,0x000003ce,0x000001a7,0x0003003e,0x000003b6,0x000003cf,0x000200f9, + 0x000003b7,0x000200f8,0x000003b9,0x0004003d,0x00000076,0x000003d0,0x000003b5,0x0007004f, + 0x0000000e,0x000003d1,0x000003d0,0x000003d0,0x00000000,0x00000001,0x00050041,0x00000029, + 0x000003d2,0x000000d3,0x000001a2,0x0003003e,0x000003d2,0x000003d1,0x00050041,0x0000000d, + 0x000003d3,0x000003b5,0x0000035c,0x0004003d,0x00000008,0x000003d4,0x000003d3,0x00050041, + 0x0000000d,0x000003d5,0x000000d3,0x000001a7,0x0003003e,0x000003d5,0x000003d4,0x00050041, + 0x0000000d,0x000003d6,0x000003b5,0x000003c1,0x0004003d,0x00000008,0x000003d7,0x000003d6, + 0x00050041,0x0000000d,0x000003d8,0x000000d3,0x00000271,0x0003003e,0x000003d8,0x000003d7, + 0x00050041,0x000000de,0x000003da,0x000000d3,0x00000308,0x0003003e,0x000003da,0x000003d9, + 0x000200f9,0x000003b2,0x000200f8,0x000003b2,0x0004003d,0x0000000e,0x000003db,0x000000d2, + 0x00050041,0x00000029,0x000003dc,0x000000d3,0x000001a2,0x0004003d,0x0000000e,0x000003dd, + 0x000003dc,0x00050083,0x0000000e,0x000003de,0x000003db,0x000003dd,0x0003003e,0x000003df, + 0x000003de,0x00050039,0x000000a8,0x000003e0,0x000000b0,0x000003df,0x000400a8,0x000000a8, + 0x000003e1,0x000003e0,0x00050041,0x000000de,0x000003e2,0x000000d3,0x0000030c,0x0003003e, + 0x000003e2,0x000003e1,0x0004003d,0x0000000e,0x000003e3,0x000000d2,0x00050041,0x00000029, + 0x000003e4,0x000000d3,0x000001a2,0x0004003d,0x0000000e,0x000003e5,0x000003e4,0x00050081, + 0x0000000e,0x000003e6,0x000003e3,0x000003e5,0x0003003e,0x000003e7,0x000003e6,0x00050039, + 0x000000a8,0x000003e8,0x000000b0,0x000003e7,0x000400a8,0x000000a8,0x000003e9,0x000003e8, + 0x00050041,0x000000de,0x000003ea,0x000000d3,0x0000030e,0x0003003e,0x000003ea,0x000003e9, + 0x00050041,0x00000029,0x000003eb,0x000000d3,0x000001a2,0x0004003d,0x0000000e,0x000003ec, + 0x000003eb,0x0006000c,0x00000008,0x000003ed,0x00000001,0x00000042,0x000003ec,0x00050041, + 0x0000000d,0x000003ee,0x000000d3,0x0000030a,0x0003003e,0x000003ee,0x000003ed,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000d8,0x00000000,0x000000d1,0x00030037,0x00000029, + 0x000000d6,0x00030037,0x000000c5,0x000000d7,0x000200f8,0x000000d9,0x0004003b,0x0000026f, + 0x000003ef,0x00000007,0x0004003b,0x00000029,0x000003f4,0x00000007,0x0004003b,0x0000006e, + 0x000003f6,0x00000007,0x0004003b,0x0000000d,0x000003f9,0x00000007,0x0004003b,0x00000083, + 0x000003fa,0x00000007,0x0004003b,0x0000006e,0x00000402,0x00000007,0x0004003b,0x0000006e, + 0x00000406,0x00000007,0x0004003b,0x0000006e,0x0000040f,0x00000007,0x0004003b,0x0000006e, + 0x00000411,0x00000007,0x0004003b,0x0000000d,0x00000415,0x00000007,0x0004003b,0x000000c5, + 0x00000419,0x00000007,0x0004003b,0x0000006e,0x0000041b,0x00000007,0x0004003b,0x0000006e, + 0x0000041c,0x00000007,0x0004003b,0x00000084,0x00000422,0x00000007,0x0004003b,0x000000c5, + 0x00000423,0x00000007,0x0004003b,0x00000029,0x0000045b,0x00000007,0x0004003b,0x00000029, + 0x00000463,0x00000007,0x00040039,0x00000056,0x000003f0,0x00000062,0x0004006f,0x0000000e, + 0x000003f1,0x000003f0,0x0005008e,0x0000000e,0x000003f2,0x000003f1,0x00000110,0x0004006e, + 0x00000056,0x000003f3,0x000003f2,0x0004003d,0x0000000e,0x000003f5,0x000000d6,0x0003003e, + 0x000003f4,0x000003f5,0x0003003e,0x000003f6,0x000003f3,0x00060039,0x000000a2,0x000003f7, + 0x000000a6,0x000003f4,0x000003f6,0x0003003e,0x000003ef,0x000003f7,0x00040039,0x000000bd, + 0x000003f8,0x000000bf,0x0003003e,0x000000d7,0x000003f8,0x0003003e,0x000003f9,0x0000010f, + 0x0003003e,0x000003fa,0x000001a2,0x000200f9,0x000003fb,0x000200f8,0x000003fb,0x000400f6, + 0x000003fd,0x000003fe,0x00000000,0x000200f9,0x000003ff,0x000200f8,0x000003ff,0x0004003d, + 0x00000055,0x00000400,0x000003fa,0x000500b1,0x000000a8,0x00000401,0x00000400,0x00000304, + 0x000400fa,0x00000401,0x000003fc,0x000003fd,0x000200f8,0x000003fc,0x0004003d,0x00000055, + 0x00000403,0x000003fa,0x00060041,0x0000006e,0x00000404,0x000003ef,0x000001a2,0x00000403, + 0x0004003d,0x00000056,0x00000405,0x00000404,0x0003003e,0x00000402,0x00000405,0x00050041, + 0x0000006e,0x00000407,0x000003ef,0x00000271,0x0004003d,0x00000056,0x00000408,0x00000407, + 0x0004003d,0x00000056,0x00000409,0x00000402,0x00050080,0x00000056,0x0000040a,0x00000408, + 0x00000409,0x0003003e,0x00000406,0x0000040a,0x00040039,0x00000056,0x0000040b,0x00000062, + 0x0004006f,0x0000000e,0x0000040c,0x0000040b,0x0005008e,0x0000000e,0x0000040d,0x0000040c, + 0x00000110,0x0004006e,0x00000056,0x0000040e,0x0000040d,0x0004003d,0x00000056,0x00000410, + 0x00000406,0x0003003e,0x0000040f,0x00000410,0x0003003e,0x00000411,0x0000040e,0x00060039, + 0x000000a8,0x00000412,0x000000ac,0x0000040f,0x00000411,0x000300f7,0x00000414,0x00000000, + 0x000400fa,0x00000412,0x00000413,0x00000414,0x000200f8,0x00000413,0x0004003d,0x00000055, + 0x00000416,0x000003fa,0x00060041,0x0000000d,0x00000417,0x000003ef,0x000001a7,0x00000416, + 0x0004003d,0x00000008,0x00000418,0x00000417,0x0003003e,0x00000415,0x00000418,0x00040039, + 0x000000bd,0x0000041a,0x000000bf,0x0003003e,0x00000419,0x0000041a,0x0004003d,0x00000056, + 0x0000041d,0x00000406,0x0003003e,0x0000041c,0x0000041d,0x00050039,0x0000007b,0x0000041e, + 0x00000081,0x0000041c,0x0004007c,0x00000056,0x0000041f,0x0000041e,0x0003003e,0x0000041b, + 0x0000041f,0x0004003d,0x00000056,0x00000420,0x0000041b,0x0004007c,0x0000007b,0x00000421, + 0x00000420,0x0003003e,0x00000422,0x00000421,0x00060039,0x00000002,0x00000424,0x000000c9, + 0x00000422,0x00000423,0x0004003d,0x000000bd,0x00000425,0x00000423,0x0003003e,0x00000419, + 0x00000425,0x00050041,0x00000029,0x00000426,0x00000419,0x000001a2,0x0004003d,0x0000000e, + 0x00000427,0x00000426,0x0004003d,0x00000008,0x00000428,0x00000415,0x0005008e,0x0000000e, + 0x00000429,0x00000427,0x00000428,0x00050041,0x00000029,0x0000042a,0x000000d7,0x000001a2, + 0x0004003d,0x0000000e,0x0000042b,0x0000042a,0x00050081,0x0000000e,0x0000042c,0x0000042b, + 0x00000429,0x00050041,0x00000029,0x0000042d,0x000000d7,0x000001a2,0x0003003e,0x0000042d, + 0x0000042c,0x00050041,0x0000000d,0x0000042e,0x00000419,0x000001a7,0x0004003d,0x00000008, + 0x0000042f,0x0000042e,0x0004003d,0x00000008,0x00000430,0x00000415,0x00050085,0x00000008, + 0x00000431,0x0000042f,0x00000430,0x00050041,0x0000000d,0x00000432,0x000000d7,0x000001a7, + 0x0004003d,0x00000008,0x00000433,0x00000432,0x00050081,0x00000008,0x00000434,0x00000433, + 0x00000431,0x00050041,0x0000000d,0x00000435,0x000000d7,0x000001a7,0x0003003e,0x00000435, + 0x00000434,0x00050041,0x0000000d,0x00000436,0x00000419,0x00000271,0x0004003d,0x00000008, + 0x00000437,0x00000436,0x0004003d,0x00000008,0x00000438,0x00000415,0x00050085,0x00000008, + 0x00000439,0x00000437,0x00000438,0x00050041,0x0000000d,0x0000043a,0x000000d7,0x00000271, + 0x0004003d,0x00000008,0x0000043b,0x0000043a,0x00050081,0x00000008,0x0000043c,0x0000043b, + 0x00000439,0x00050041,0x0000000d,0x0000043d,0x000000d7,0x00000271,0x0003003e,0x0000043d, + 0x0000043c,0x0004003d,0x00000008,0x0000043e,0x00000415,0x0004003d,0x00000008,0x0000043f, + 0x000003f9,0x00050081,0x00000008,0x00000440,0x0000043f,0x0000043e,0x0003003e,0x000003f9, + 0x00000440,0x000200f9,0x00000414,0x000200f8,0x00000414,0x000200f9,0x000003fe,0x000200f8, + 0x000003fe,0x0004003d,0x00000055,0x00000441,0x000003fa,0x00050080,0x00000055,0x00000442, + 0x00000441,0x000001a7,0x0003003e,0x000003fa,0x00000442,0x000200f9,0x000003fb,0x000200f8, + 0x000003fd,0x0004003d,0x00000008,0x00000443,0x000003f9,0x000500ba,0x000000a8,0x00000444, + 0x00000443,0x0000010f,0x000300f7,0x00000446,0x00000000,0x000400fa,0x00000444,0x00000445, + 0x00000446,0x000200f8,0x00000445,0x0004003d,0x00000008,0x00000447,0x000003f9,0x00050041, + 0x00000029,0x00000448,0x000000d7,0x000001a2,0x0004003d,0x0000000e,0x00000449,0x00000448, + 0x00050050,0x0000000e,0x0000044a,0x00000447,0x00000447,0x00050088,0x0000000e,0x0000044b, + 0x00000449,0x0000044a,0x00050041,0x00000029,0x0000044c,0x000000d7,0x000001a2,0x0003003e, + 0x0000044c,0x0000044b,0x0004003d,0x00000008,0x0000044d,0x000003f9,0x00050041,0x0000000d, + 0x0000044e,0x000000d7,0x000001a7,0x0004003d,0x00000008,0x0000044f,0x0000044e,0x00050088, + 0x00000008,0x00000450,0x0000044f,0x0000044d,0x00050041,0x0000000d,0x00000451,0x000000d7, + 0x000001a7,0x0003003e,0x00000451,0x00000450,0x0004003d,0x00000008,0x00000452,0x000003f9, + 0x00050041,0x0000000d,0x00000453,0x000000d7,0x00000271,0x0004003d,0x00000008,0x00000454, + 0x00000453,0x00050088,0x00000008,0x00000455,0x00000454,0x00000452,0x00050041,0x0000000d, + 0x00000456,0x000000d7,0x00000271,0x0003003e,0x00000456,0x00000455,0x000200f9,0x00000446, + 0x000200f8,0x00000446,0x0004003d,0x0000000e,0x00000457,0x000000d6,0x00050041,0x00000029, + 0x00000458,0x000000d7,0x000001a2,0x0004003d,0x0000000e,0x00000459,0x00000458,0x00050083, + 0x0000000e,0x0000045a,0x00000457,0x00000459,0x0003003e,0x0000045b,0x0000045a,0x00050039, + 0x000000a8,0x0000045c,0x000000b0,0x0000045b,0x000400a8,0x000000a8,0x0000045d,0x0000045c, + 0x00050041,0x000000de,0x0000045e,0x000000d7,0x0000030c,0x0003003e,0x0000045e,0x0000045d, + 0x0004003d,0x0000000e,0x0000045f,0x000000d6,0x00050041,0x00000029,0x00000460,0x000000d7, + 0x000001a2,0x0004003d,0x0000000e,0x00000461,0x00000460,0x00050081,0x0000000e,0x00000462, + 0x0000045f,0x00000461,0x0003003e,0x00000463,0x00000462,0x00050039,0x000000a8,0x00000464, + 0x000000b0,0x00000463,0x000400a8,0x000000a8,0x00000465,0x00000464,0x00050041,0x000000de, + 0x00000466,0x000000d7,0x0000030e,0x0003003e,0x00000466,0x00000465,0x00050041,0x00000029, + 0x00000467,0x000000d7,0x000001a2,0x0004003d,0x0000000e,0x00000468,0x00000467,0x0006000c, + 0x00000008,0x00000469,0x00000001,0x00000042,0x00000468,0x00050041,0x0000000d,0x0000046a, + 0x000000d7,0x0000030a,0x0003003e,0x0000046a,0x00000469,0x000100fd,0x00010038,0x00050036, + 0x000000da,0x000000dc,0x00000000,0x000000db,0x000200f8,0x000000dd,0x0004003b,0x0000046b, + 0x0000046c,0x00000007,0x00050041,0x0000001e,0x0000046e,0x0000046c,0x000001a2,0x0003003e, + 0x0000046e,0x0000046d,0x00050041,0x0000001e,0x0000046f,0x0000046c,0x000001a7,0x0003003e, + 0x0000046f,0x0000046d,0x00050041,0x0000000d,0x00000470,0x0000046c,0x00000271,0x0003003e, + 0x00000470,0x0000010f,0x0004003d,0x000000da,0x00000471,0x0000046c,0x000200fe,0x00000471, + 0x00010038,0x00050036,0x000000da,0x000000e4,0x00000000,0x000000df,0x00030037,0x000000de, + 0x000000e0,0x00030037,0x00000029,0x000000e1,0x00030037,0x00000029,0x000000e2,0x00030037, + 0x0000006e,0x000000e3,0x000200f8,0x000000e5,0x0004003b,0x0000046b,0x00000474,0x00000007, + 0x0004003b,0x00000029,0x00000476,0x00000007,0x0004003b,0x0000026f,0x0000047a,0x00000007, + 0x0004003b,0x00000029,0x0000047b,0x00000007,0x0004003b,0x0000006e,0x0000047d,0x00000007, + 0x0004003b,0x0000001e,0x00000480,0x00000007,0x0004003b,0x0000000d,0x00000481,0x00000007, + 0x0004003b,0x00000083,0x00000482,0x00000007,0x0004003b,0x0000006e,0x0000048a,0x00000007, + 0x0004003b,0x0000006e,0x0000048e,0x00000007,0x0004003b,0x0000006e,0x00000495,0x00000007, + 0x0004003b,0x0000006e,0x00000497,0x00000007,0x0004003b,0x0000006e,0x00000498,0x00000007, + 0x0004003b,0x0000000d,0x0000049c,0x00000007,0x0004003b,0x0000006e,0x000004a3,0x00000007, + 0x0004003b,0x0000006e,0x000004ab,0x00000007,0x0004003b,0x0000001e,0x000004b9,0x00000007, + 0x0004003b,0x0000001e,0x000004c4,0x00000007,0x00040039,0x000000da,0x00000475,0x000000dc, + 0x0003003e,0x00000474,0x00000475,0x0004003d,0x0000000e,0x00000477,0x000000e1,0x0004003d, + 0x0000000e,0x00000478,0x000000e2,0x00050081,0x0000000e,0x00000479,0x00000477,0x00000478, + 0x0003003e,0x00000476,0x00000479,0x0004003d,0x0000000e,0x0000047c,0x00000476,0x0003003e, + 0x0000047b,0x0000047c,0x0004003d,0x00000056,0x0000047e,0x000000e3,0x0003003e,0x0000047d, + 0x0000047e,0x00060039,0x000000a2,0x0000047f,0x000000a6,0x0000047b,0x0000047d,0x0003003e, + 0x0000047a,0x0000047f,0x0003003e,0x00000480,0x0000046d,0x0003003e,0x00000481,0x0000010f, + 0x0003003e,0x00000482,0x000001a2,0x000200f9,0x00000483,0x000200f8,0x00000483,0x000400f6, + 0x00000485,0x00000486,0x00000000,0x000200f9,0x00000487,0x000200f8,0x00000487,0x0004003d, + 0x00000055,0x00000488,0x00000482,0x000500b1,0x000000a8,0x00000489,0x00000488,0x00000304, + 0x000400fa,0x00000489,0x00000484,0x00000485,0x000200f8,0x00000484,0x0004003d,0x00000055, + 0x0000048b,0x00000482,0x00060041,0x0000006e,0x0000048c,0x0000047a,0x000001a2,0x0000048b, + 0x0004003d,0x00000056,0x0000048d,0x0000048c,0x0003003e,0x0000048a,0x0000048d,0x00050041, + 0x0000006e,0x0000048f,0x0000047a,0x00000271,0x0004003d,0x00000056,0x00000490,0x0000048f, + 0x0004003d,0x00000056,0x00000491,0x0000048a,0x00050080,0x00000056,0x00000492,0x00000490, + 0x00000491,0x0003003e,0x0000048e,0x00000492,0x00040039,0x00000056,0x00000493,0x00000058, + 0x00040039,0x00000056,0x00000494,0x0000005a,0x0004003d,0x00000056,0x00000496,0x0000048e, + 0x0003003e,0x00000495,0x00000496,0x0003003e,0x00000497,0x00000493,0x0003003e,0x00000498, + 0x00000494,0x00070039,0x000000a8,0x00000499,0x000000b6,0x00000495,0x00000497,0x00000498, + 0x000300f7,0x0000049b,0x00000000,0x000400fa,0x00000499,0x0000049a,0x0000049b,0x000200f8, + 0x0000049a,0x0004003d,0x00000055,0x0000049d,0x00000482,0x00060041,0x0000000d,0x0000049e, + 0x0000047a,0x000001a7,0x0000049d,0x0004003d,0x00000008,0x0000049f,0x0000049e,0x0003003e, + 0x0000049c,0x0000049f,0x0004003d,0x000000a8,0x000004a0,0x000000e0,0x000300f7,0x000004a2, + 0x00000000,0x000400fa,0x000004a0,0x000004a1,0x000004aa,0x000200f8,0x000004a1,0x0004003d, + 0x00000056,0x000004a4,0x0000048e,0x0003003e,0x000004a3,0x000004a4,0x00050039,0x00000013, + 0x000004a5,0x00000074,0x000004a3,0x0004003d,0x00000008,0x000004a6,0x0000049c,0x0005008e, + 0x00000013,0x000004a7,0x000004a5,0x000004a6,0x0004003d,0x00000013,0x000004a8,0x00000480, + 0x00050081,0x00000013,0x000004a9,0x000004a8,0x000004a7,0x0003003e,0x00000480,0x000004a9, + 0x000200f9,0x000004a2,0x000200f8,0x000004aa,0x0004003d,0x00000056,0x000004ac,0x0000048e, + 0x0003003e,0x000004ab,0x000004ac,0x00050039,0x00000013,0x000004ad,0x00000071,0x000004ab, + 0x0004003d,0x00000008,0x000004ae,0x0000049c,0x0005008e,0x00000013,0x000004af,0x000004ad, + 0x000004ae,0x0004003d,0x00000013,0x000004b0,0x00000480,0x00050081,0x00000013,0x000004b1, + 0x000004b0,0x000004af,0x0003003e,0x00000480,0x000004b1,0x000200f9,0x000004a2,0x000200f8, + 0x000004a2,0x0004003d,0x00000008,0x000004b2,0x0000049c,0x0004003d,0x00000008,0x000004b3, + 0x00000481,0x00050081,0x00000008,0x000004b4,0x000004b3,0x000004b2,0x0003003e,0x00000481, + 0x000004b4,0x000200f9,0x0000049b,0x000200f8,0x0000049b,0x000200f9,0x00000486,0x000200f8, + 0x00000486,0x0004003d,0x00000055,0x000004b5,0x00000482,0x00050080,0x00000055,0x000004b6, + 0x000004b5,0x000001a7,0x0003003e,0x00000482,0x000004b6,0x000200f9,0x00000483,0x000200f8, + 0x00000485,0x0004003d,0x00000008,0x000004b7,0x00000481,0x000500b7,0x000000a8,0x000004b8, + 0x000004b7,0x0000010f,0x000300f7,0x000004bb,0x00000000,0x000400fa,0x000004b8,0x000004ba, + 0x000004c0,0x000200f8,0x000004ba,0x0004003d,0x00000013,0x000004bc,0x00000480,0x0004003d, + 0x00000008,0x000004bd,0x00000481,0x00060050,0x00000013,0x000004be,0x000004bd,0x000004bd, + 0x000004bd,0x00050088,0x00000013,0x000004bf,0x000004bc,0x000004be,0x0003003e,0x000004b9, + 0x000004bf,0x000200f9,0x000004bb,0x000200f8,0x000004c0,0x0003003e,0x000004b9,0x0000046d, + 0x000200f9,0x000004bb,0x000200f8,0x000004bb,0x0004003d,0x00000013,0x000004c1,0x000004b9, + 0x0003003e,0x00000480,0x000004c1,0x0004003d,0x00000013,0x000004c2,0x00000480,0x00050041, + 0x0000001e,0x000004c3,0x00000474,0x000001a2,0x0003003e,0x000004c3,0x000004c2,0x0004003d, + 0x00000013,0x000004c5,0x00000480,0x0003003e,0x000004c4,0x000004c5,0x00050039,0x00000013, + 0x000004c6,0x0000009d,0x000004c4,0x00050041,0x0000001e,0x000004c7,0x00000474,0x000001a7, + 0x0003003e,0x000004c7,0x000004c6,0x0004003d,0x00000008,0x000004c8,0x00000481,0x00050041, + 0x0000000d,0x000004c9,0x00000474,0x00000271,0x0003003e,0x000004c9,0x000004c8,0x0004003d, + 0x000000da,0x000004ca,0x00000474,0x000200fe,0x000004ca,0x00010038,0x00050036,0x00000002, + 0x000000e9,0x00000000,0x000000e6,0x00030037,0x0000000d,0x000000e7,0x00030037,0x0000000d, + 0x000000e8,0x000200f8,0x000000ea,0x0004003b,0x0000000d,0x000004cd,0x00000007,0x0004003b, + 0x0000000d,0x000004cf,0x00000007,0x0004003b,0x0000000d,0x000004d2,0x00000007,0x0004003d, + 0x00000008,0x000004ce,0x000000e7,0x0003003e,0x000004cd,0x000004ce,0x0004003d,0x00000008, + 0x000004d0,0x000000e8,0x0003003e,0x000004cf,0x000004d0,0x00060039,0x00000008,0x000004d1, + 0x00000040,0x000004cd,0x000004cf,0x0003003e,0x000004d2,0x000004d1,0x00050039,0x00000008, + 0x000004d3,0x00000027,0x000004d2,0x0003003e,0x000000e7,0x000004d3,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000ef,0x00000000,0x000000eb,0x00030037,0x00000084,0x000000ec, + 0x00030037,0x0000001e,0x000000ed,0x00030037,0x0000000d,0x000000ee,0x000200f8,0x000000f0, + 0x0004003b,0x00000029,0x000004d4,0x00000007,0x0004003b,0x00000029,0x000004df,0x00000007, + 0x0004003b,0x00000029,0x000004e7,0x00000007,0x0004003b,0x00000029,0x000004ef,0x00000007, + 0x0004003b,0x000000c5,0x000004f5,0x00000007,0x0004003b,0x00000029,0x000004f6,0x00000007, + 0x0004003b,0x000000c5,0x000004f8,0x00000007,0x0004003b,0x000000c5,0x000004fb,0x00000007, + 0x0004003b,0x00000029,0x000004fc,0x00000007,0x0004003b,0x000000c5,0x000004fe,0x00000007, + 0x0004003b,0x00000029,0x00000501,0x00000007,0x0004003b,0x00000029,0x00000502,0x00000007, + 0x0004003b,0x00000029,0x00000505,0x00000007,0x0004003b,0x0000046b,0x0000050b,0x00000007, + 0x0004003b,0x000000de,0x00000511,0x00000007,0x0004003b,0x00000029,0x00000512,0x00000007, + 0x0004003b,0x00000029,0x00000514,0x00000007,0x0004003b,0x0000006e,0x00000515,0x00000007, + 0x0004003b,0x0000046b,0x00000517,0x00000007,0x0004003b,0x000000de,0x0000051e,0x00000007, + 0x0004003b,0x00000029,0x0000051f,0x00000007,0x0004003b,0x00000029,0x00000521,0x00000007, + 0x0004003b,0x0000006e,0x00000522,0x00000007,0x0004003b,0x0000046b,0x00000524,0x00000007, + 0x0004003b,0x000000de,0x0000052a,0x00000007,0x0004003b,0x00000029,0x0000052b,0x00000007, + 0x0004003b,0x00000029,0x0000052d,0x00000007,0x0004003b,0x0000006e,0x0000052e,0x00000007, + 0x0004003b,0x0000046b,0x00000530,0x00000007,0x0004003b,0x000000de,0x00000537,0x00000007, + 0x0004003b,0x00000029,0x00000538,0x00000007,0x0004003b,0x00000029,0x0000053a,0x00000007, + 0x0004003b,0x0000006e,0x0000053b,0x00000007,0x0004003b,0x0000000d,0x0000053d,0x00000007, + 0x0004003b,0x0000000d,0x00000553,0x00000007,0x0004003b,0x0000000d,0x00000555,0x00000007, + 0x0004003b,0x0000000d,0x00000558,0x00000007,0x0004003b,0x0000000d,0x00000565,0x00000007, + 0x0004003b,0x0000001e,0x00000568,0x00000007,0x0004003b,0x0000001e,0x0000056b,0x00000007, + 0x0004003b,0x0000000d,0x0000056e,0x00000007,0x0004003b,0x0000000d,0x00000570,0x00000007, + 0x0004003b,0x0000000d,0x00000573,0x00000007,0x0004003b,0x0000000d,0x00000578,0x00000007, + 0x0004003b,0x0000000d,0x00000594,0x00000007,0x0004003b,0x0000001e,0x000005a7,0x00000007, + 0x0004003b,0x0000001e,0x000005a8,0x00000007,0x0004003b,0x0000001e,0x000005ab,0x00000007, + 0x0004003b,0x0000000d,0x000005ae,0x00000007,0x0004003b,0x0000000d,0x000005b1,0x00000007, + 0x0004003b,0x0000000d,0x000005b7,0x00000007,0x0004003b,0x0000000d,0x000005bd,0x00000007, + 0x0004003b,0x0000000d,0x000005be,0x00000007,0x0004003b,0x0000000d,0x000005c1,0x00000007, + 0x0004003b,0x0000000d,0x000005c4,0x00000007,0x0004003b,0x0000000d,0x000005c5,0x00000007, + 0x0004003b,0x0000000d,0x000005c6,0x00000007,0x0004003b,0x0000000d,0x000005c8,0x00000007, + 0x0004003b,0x0000000d,0x000005ca,0x00000007,0x0004003b,0x0000000d,0x000005cb,0x00000007, + 0x0004003b,0x0000000d,0x000005cf,0x00000007,0x0004003b,0x0000000d,0x000005d1,0x00000007, + 0x0004003b,0x0000000d,0x000005d2,0x00000007,0x0004003b,0x0000000d,0x000005d4,0x00000007, + 0x0004003b,0x0000000d,0x000005d9,0x00000007,0x0004003b,0x0000000d,0x000005db,0x00000007, + 0x0004003b,0x0000000d,0x000005dc,0x00000007,0x0004003b,0x0000000d,0x000005df,0x00000007, + 0x0004003b,0x0000001e,0x000005e2,0x00000007,0x0004003b,0x0000001e,0x000005e4,0x00000007, + 0x0004003b,0x0000000d,0x000005e6,0x00000007,0x0004003d,0x0000007b,0x000004d5,0x000000ec, + 0x00040039,0x00000056,0x000004d6,0x00000058,0x0004007c,0x0000007b,0x000004d7,0x000004d6, + 0x00050082,0x0000007b,0x000004d8,0x000004d5,0x000004d7,0x00040070,0x0000000e,0x000004d9, + 0x000004d8,0x00050050,0x0000000e,0x000004da,0x0000026c,0x0000026c,0x00050081,0x0000000e, + 0x000004db,0x000004d9,0x000004da,0x00040039,0x00000056,0x000004dc,0x0000005a,0x0004006f, + 0x0000000e,0x000004dd,0x000004dc,0x00050088,0x0000000e,0x000004de,0x000004db,0x000004dd, + 0x0003003e,0x000004d4,0x000004de,0x0004003d,0x0000007b,0x000004e0,0x000000ec,0x00040070, + 0x0000000e,0x000004e1,0x000004e0,0x00050050,0x0000000e,0x000004e2,0x0000026c,0x0000026c, + 0x00050081,0x0000000e,0x000004e3,0x000004e1,0x000004e2,0x00040039,0x00000056,0x000004e4, + 0x0000005e,0x0004006f,0x0000000e,0x000004e5,0x000004e4,0x00050088,0x0000000e,0x000004e6, + 0x000004e3,0x000004e5,0x0003003e,0x000004df,0x000004e6,0x0004003d,0x0000000e,0x000004e8, + 0x000004d4,0x00040039,0x00000056,0x000004e9,0x0000005c,0x0004006f,0x0000000e,0x000004ea, + 0x000004e9,0x00040039,0x00000056,0x000004eb,0x00000064,0x0004006f,0x0000000e,0x000004ec, + 0x000004eb,0x00050088,0x0000000e,0x000004ed,0x000004ea,0x000004ec,0x00050085,0x0000000e, + 0x000004ee,0x000004e8,0x000004ed,0x0003003e,0x000004e7,0x000004ee,0x00040039,0x00000056, + 0x000004f0,0x0000005a,0x0004006f,0x0000000e,0x000004f1,0x000004f0,0x00040039,0x00000056, + 0x000004f2,0x0000005e,0x0004006f,0x0000000e,0x000004f3,0x000004f2,0x00050088,0x0000000e, + 0x000004f4,0x000004f1,0x000004f3,0x0003003e,0x000004ef,0x000004f4,0x0004003d,0x0000000e, + 0x000004f7,0x000004d4,0x0003003e,0x000004f6,0x000004f7,0x00060039,0x00000002,0x000004f9, + 0x000000d4,0x000004f6,0x000004f8,0x0004003d,0x000000bd,0x000004fa,0x000004f8,0x0003003e, + 0x000004f5,0x000004fa,0x0004003d,0x0000000e,0x000004fd,0x000004df,0x0003003e,0x000004fc, + 0x000004fd,0x00060039,0x00000002,0x000004ff,0x000000d8,0x000004fc,0x000004fe,0x0004003d, + 0x000000bd,0x00000500,0x000004fe,0x0003003e,0x000004fb,0x00000500,0x0004003d,0x0000000e, + 0x00000503,0x000004e7,0x0003003e,0x00000502,0x00000503,0x00050039,0x00000076,0x00000504, + 0x00000079,0x00000502,0x0007004f,0x0000000e,0x00000506,0x00000504,0x00000504,0x00000000, + 0x00000001,0x0003003e,0x00000505,0x00000506,0x00050039,0x0000000e,0x00000507,0x0000002c, + 0x00000505,0x000500b4,0x000002a6,0x00000509,0x00000507,0x00000508,0x000600a9,0x0000000e, + 0x0000050a,0x00000509,0x00000508,0x000002fe,0x0003003e,0x00000501,0x0000050a,0x00050041, + 0x00000029,0x0000050c,0x000004f5,0x000001a2,0x0004003d,0x0000000e,0x0000050d,0x0000050c, + 0x0004003d,0x0000000e,0x0000050e,0x000004ef,0x00050085,0x0000000e,0x0000050f,0x0000050d, + 0x0000050e,0x00040039,0x00000056,0x00000510,0x0000005e,0x0003003e,0x00000511,0x00000302, + 0x0004003d,0x0000000e,0x00000513,0x000004df,0x0003003e,0x00000512,0x00000513,0x0003003e, + 0x00000514,0x0000050f,0x0003003e,0x00000515,0x00000510,0x00080039,0x000000da,0x00000516, + 0x000000e4,0x00000511,0x00000512,0x00000514,0x00000515,0x0003003e,0x0000050b,0x00000516, + 0x00050041,0x00000029,0x00000518,0x000004f5,0x000001a2,0x0004003d,0x0000000e,0x00000519, + 0x00000518,0x0004007f,0x0000000e,0x0000051a,0x00000519,0x0004003d,0x0000000e,0x0000051b, + 0x000004ef,0x00050085,0x0000000e,0x0000051c,0x0000051a,0x0000051b,0x00040039,0x00000056, + 0x0000051d,0x0000005e,0x0003003e,0x0000051e,0x000003d9,0x0004003d,0x0000000e,0x00000520, + 0x000004df,0x0003003e,0x0000051f,0x00000520,0x0003003e,0x00000521,0x0000051c,0x0003003e, + 0x00000522,0x0000051d,0x00080039,0x000000da,0x00000523,0x000000e4,0x0000051e,0x0000051f, + 0x00000521,0x00000522,0x0003003e,0x00000517,0x00000523,0x00050041,0x00000029,0x00000525, + 0x000004fb,0x000001a2,0x0004003d,0x0000000e,0x00000526,0x00000525,0x0004003d,0x0000000e, + 0x00000527,0x000004ef,0x00050085,0x0000000e,0x00000528,0x00000526,0x00000527,0x00040039, + 0x00000056,0x00000529,0x0000005e,0x0003003e,0x0000052a,0x00000302,0x0004003d,0x0000000e, + 0x0000052c,0x000004df,0x0003003e,0x0000052b,0x0000052c,0x0003003e,0x0000052d,0x00000528, + 0x0003003e,0x0000052e,0x00000529,0x00080039,0x000000da,0x0000052f,0x000000e4,0x0000052a, + 0x0000052b,0x0000052d,0x0000052e,0x0003003e,0x00000524,0x0000052f,0x00050041,0x00000029, + 0x00000531,0x000004fb,0x000001a2,0x0004003d,0x0000000e,0x00000532,0x00000531,0x0004007f, + 0x0000000e,0x00000533,0x00000532,0x0004003d,0x0000000e,0x00000534,0x000004ef,0x00050085, + 0x0000000e,0x00000535,0x00000533,0x00000534,0x00040039,0x00000056,0x00000536,0x0000005e, + 0x0003003e,0x00000537,0x000003d9,0x0004003d,0x0000000e,0x00000539,0x000004df,0x0003003e, + 0x00000538,0x00000539,0x0003003e,0x0000053a,0x00000535,0x0003003e,0x0000053b,0x00000536, + 0x00080039,0x000000da,0x0000053c,0x000000e4,0x00000537,0x00000538,0x0000053a,0x0000053b, + 0x0003003e,0x00000530,0x0000053c,0x0003003e,0x0000053d,0x0000010f,0x00050041,0x000000de, + 0x0000053e,0x000004f5,0x0000030e,0x0004003d,0x000000a8,0x0000053f,0x0000053e,0x000400a8, + 0x000000a8,0x00000540,0x0000053f,0x000600a9,0x00000008,0x00000541,0x00000540,0x00000110, + 0x0000010f,0x00050041,0x0000000d,0x00000542,0x00000501,0x000001cf,0x0004003d,0x00000008, + 0x00000543,0x00000542,0x00050085,0x00000008,0x00000544,0x00000543,0x00000541,0x00050041, + 0x0000000d,0x00000545,0x00000501,0x000001cf,0x0003003e,0x00000545,0x00000544,0x00050041, + 0x000000de,0x00000546,0x000004f5,0x0000030c,0x0004003d,0x000000a8,0x00000547,0x00000546, + 0x000400a8,0x000000a8,0x00000548,0x00000547,0x000600a9,0x00000008,0x00000549,0x00000548, + 0x00000110,0x0000010f,0x00050041,0x0000000d,0x0000054a,0x00000501,0x000001d5,0x0004003d, + 0x00000008,0x0000054b,0x0000054a,0x00050085,0x00000008,0x0000054c,0x0000054b,0x00000549, + 0x00050041,0x0000000d,0x0000054d,0x00000501,0x000001d5,0x0003003e,0x0000054d,0x0000054c, + 0x0004003d,0x0000000e,0x0000054e,0x00000501,0x0006000c,0x00000008,0x0000054f,0x00000001, + 0x00000042,0x0000054e,0x000500bc,0x000000a8,0x00000551,0x0000054f,0x00000550,0x000600a9, + 0x00000008,0x00000552,0x00000551,0x00000110,0x0000010f,0x0004003d,0x00000008,0x00000554, + 0x000000ee,0x0003003e,0x00000553,0x00000554,0x0003003e,0x00000555,0x00000552,0x00060039, + 0x00000002,0x00000556,0x000000e9,0x00000553,0x00000555,0x0004003d,0x00000008,0x00000557, + 0x00000553,0x0003003e,0x000000ee,0x00000557,0x0003003e,0x00000558,0x0000026c,0x00050041, + 0x0000000d,0x00000559,0x00000501,0x000001cf,0x0004003d,0x00000008,0x0000055a,0x00000559, + 0x00050083,0x00000008,0x0000055b,0x00000110,0x0000055a,0x00050085,0x00000008,0x0000055c, + 0x0000026c,0x0000055b,0x0004003d,0x00000008,0x0000055d,0x00000558,0x00050081,0x00000008, + 0x0000055e,0x0000055d,0x0000055c,0x0003003e,0x00000558,0x0000055e,0x00050041,0x0000000d, + 0x0000055f,0x00000501,0x000001d5,0x0004003d,0x00000008,0x00000560,0x0000055f,0x00050083, + 0x00000008,0x00000561,0x00000110,0x00000560,0x00050085,0x00000008,0x00000562,0x0000026c, + 0x00000561,0x0004003d,0x00000008,0x00000563,0x00000558,0x00050083,0x00000008,0x00000564, + 0x00000563,0x00000562,0x0003003e,0x00000558,0x00000564,0x0004003d,0x00000008,0x00000566, + 0x00000558,0x0003003e,0x00000565,0x00000566,0x00050039,0x00000008,0x00000567,0x00000027, + 0x00000565,0x00050041,0x0000001e,0x00000569,0x0000050b,0x000001a2,0x0004003d,0x00000013, + 0x0000056a,0x00000569,0x0003003e,0x00000568,0x0000056a,0x00050041,0x0000001e,0x0000056c, + 0x00000517,0x000001a2,0x0004003d,0x00000013,0x0000056d,0x0000056c,0x0003003e,0x0000056b, + 0x0000056d,0x0003003e,0x0000056e,0x00000567,0x00070039,0x00000013,0x0000056f,0x00000023, + 0x00000568,0x0000056b,0x0000056e,0x0003003e,0x000000ed,0x0000056f,0x00050041,0x0000000d, + 0x00000571,0x00000501,0x000001cf,0x0004003d,0x00000008,0x00000572,0x00000571,0x0003003e, + 0x00000570,0x00000572,0x00050041,0x0000000d,0x00000574,0x00000501,0x000001d5,0x0004003d, + 0x00000008,0x00000575,0x00000574,0x0003003e,0x00000573,0x00000575,0x00060039,0x00000008, + 0x00000576,0x0000003c,0x00000570,0x00000573,0x00050083,0x00000008,0x00000577,0x00000110, + 0x00000576,0x0003003e,0x00000578,0x00000577,0x00050039,0x00000008,0x00000579,0x00000027, + 0x00000578,0x0003003e,0x0000053d,0x00000579,0x00050041,0x0000000d,0x0000057a,0x0000050b, + 0x00000271,0x0004003d,0x00000008,0x0000057b,0x0000057a,0x000500b4,0x000000a8,0x0000057c, + 0x0000057b,0x0000010f,0x000300f7,0x0000057e,0x00000000,0x000400fa,0x0000057c,0x0000057d, + 0x00000581,0x000200f8,0x0000057d,0x00050041,0x0000001e,0x0000057f,0x00000517,0x000001a2, + 0x0004003d,0x00000013,0x00000580,0x0000057f,0x0003003e,0x000000ed,0x00000580,0x000200f9, + 0x0000057e,0x000200f8,0x00000581,0x00050041,0x0000000d,0x00000582,0x00000517,0x00000271, + 0x0004003d,0x00000008,0x00000583,0x00000582,0x000500b4,0x000000a8,0x00000584,0x00000583, + 0x0000010f,0x000300f7,0x00000586,0x00000000,0x000400fa,0x00000584,0x00000585,0x00000586, + 0x000200f8,0x00000585,0x00050041,0x0000001e,0x00000587,0x0000050b,0x000001a2,0x0004003d, + 0x00000013,0x00000588,0x00000587,0x0003003e,0x000000ed,0x00000588,0x000200f9,0x00000586, + 0x000200f8,0x00000586,0x000200f9,0x0000057e,0x000200f8,0x0000057e,0x00050041,0x0000000d, + 0x00000589,0x0000050b,0x00000271,0x0004003d,0x00000008,0x0000058a,0x00000589,0x000500b4, + 0x000000a8,0x0000058b,0x0000058a,0x0000010f,0x000300f7,0x0000058d,0x00000000,0x000400fa, + 0x0000058b,0x0000058c,0x0000058d,0x000200f8,0x0000058c,0x00050041,0x0000000d,0x0000058e, + 0x00000517,0x00000271,0x0004003d,0x00000008,0x0000058f,0x0000058e,0x000500b4,0x000000a8, + 0x00000590,0x0000058f,0x0000010f,0x000200f9,0x0000058d,0x000200f8,0x0000058d,0x000700f5, + 0x000000a8,0x00000591,0x0000058b,0x0000057e,0x00000590,0x0000058c,0x000300f7,0x00000593, + 0x00000000,0x000400fa,0x00000591,0x00000592,0x00000593,0x000200f8,0x00000592,0x0003003e, + 0x000000ee,0x00000110,0x000200f9,0x00000593,0x000200f8,0x00000593,0x0003003e,0x00000594, + 0x0000026c,0x00050041,0x0000000d,0x00000595,0x00000524,0x00000271,0x0004003d,0x00000008, + 0x00000596,0x00000595,0x000500ba,0x000000a8,0x00000597,0x00000596,0x0000010f,0x000300f7, + 0x00000599,0x00000000,0x000400fa,0x00000597,0x00000598,0x00000599,0x000200f8,0x00000598, + 0x00050041,0x0000000d,0x0000059a,0x00000530,0x00000271,0x0004003d,0x00000008,0x0000059b, + 0x0000059a,0x000500ba,0x000000a8,0x0000059c,0x0000059b,0x0000010f,0x000200f9,0x00000599, + 0x000200f8,0x00000599,0x000700f5,0x000000a8,0x0000059d,0x00000597,0x00000593,0x0000059c, + 0x00000598,0x000300f7,0x0000059f,0x00000000,0x000400fa,0x0000059d,0x0000059e,0x000005a0, + 0x000200f8,0x0000059e,0x0003003e,0x00000594,0x0000026c,0x000200f9,0x0000059f,0x000200f8, + 0x000005a0,0x00050041,0x0000000d,0x000005a1,0x00000524,0x00000271,0x0004003d,0x00000008, + 0x000005a2,0x000005a1,0x000500ba,0x000000a8,0x000005a3,0x000005a2,0x0000010f,0x000300f7, + 0x000005a5,0x00000000,0x000400fa,0x000005a3,0x000005a4,0x000005a6,0x000200f8,0x000005a4, + 0x0003003e,0x00000594,0x0000010f,0x000200f9,0x000005a5,0x000200f8,0x000005a6,0x0003003e, + 0x00000594,0x00000110,0x000200f9,0x000005a5,0x000200f8,0x000005a5,0x000200f9,0x0000059f, + 0x000200f8,0x0000059f,0x00050041,0x0000001e,0x000005a9,0x00000524,0x000001a2,0x0004003d, + 0x00000013,0x000005aa,0x000005a9,0x0003003e,0x000005a8,0x000005aa,0x00050041,0x0000001e, + 0x000005ac,0x00000530,0x000001a2,0x0004003d,0x00000013,0x000005ad,0x000005ac,0x0003003e, + 0x000005ab,0x000005ad,0x0004003d,0x00000008,0x000005af,0x00000594,0x0003003e,0x000005ae, + 0x000005af,0x00070039,0x00000013,0x000005b0,0x00000023,0x000005a8,0x000005ab,0x000005ae, + 0x0003003e,0x000005a7,0x000005b0,0x00050041,0x0000001e,0x000005b2,0x00000524,0x000001a2, + 0x0004003d,0x00000013,0x000005b3,0x000005b2,0x00050041,0x0000001e,0x000005b4,0x00000530, + 0x000001a2,0x0004003d,0x00000013,0x000005b5,0x000005b4,0x00060039,0x00000008,0x000005b6, + 0x000000bb,0x000005b3,0x000005b5,0x0003003e,0x000005b1,0x000005b6,0x00050041,0x0000001e, + 0x000005b8,0x0000050b,0x000001a2,0x0004003d,0x00000013,0x000005b9,0x000005b8,0x00050041, + 0x0000001e,0x000005ba,0x00000517,0x000001a2,0x0004003d,0x00000013,0x000005bb,0x000005ba, + 0x00060039,0x00000008,0x000005bc,0x000000bb,0x000005b9,0x000005bb,0x0003003e,0x000005b7, + 0x000005bc,0x0003003e,0x000005bd,0x00000550,0x0004003d,0x00000008,0x000005bf,0x000005b7, + 0x0003003e,0x000005be,0x000005bf,0x00060039,0x00000008,0x000005c0,0x00000040,0x000005bd, + 0x000005be,0x0004003d,0x00000008,0x000005c2,0x0000053d,0x0003003e,0x000005c1,0x000005c2, + 0x00050039,0x00000008,0x000005c3,0x00000027,0x000005c1,0x0003003e,0x000005c4,0x000005c0, + 0x0003003e,0x000005c5,0x00000110,0x0003003e,0x000005c6,0x000005c3,0x00070039,0x00000008, + 0x000005c7,0x0000001c,0x000005c4,0x000005c5,0x000005c6,0x0003003e,0x000005b7,0x000005c7, + 0x0004003d,0x00000008,0x000005c9,0x000005b7,0x0003003e,0x000005ca,0x00000550,0x0004003d, + 0x00000008,0x000005cc,0x000005b1,0x0003003e,0x000005cb,0x000005cc,0x00060039,0x00000008, + 0x000005cd,0x00000040,0x000005ca,0x000005cb,0x00050088,0x00000008,0x000005ce,0x000005c9, + 0x000005cd,0x0003003e,0x000005cf,0x000005ce,0x00050039,0x00000008,0x000005d0,0x00000027, + 0x000005cf,0x0003003e,0x000005d1,0x000005d0,0x0003003e,0x000005d2,0x00000110,0x00060039, + 0x00000008,0x000005d3,0x00000044,0x000005d1,0x000005d2,0x0003003e,0x000005c8,0x000005d3, + 0x00040039,0x00000006,0x000005d5,0x0000008e,0x000500b0,0x000000a8,0x000005d7,0x000005d5, + 0x000005d6,0x000600a9,0x00000008,0x000005d8,0x000005d7,0x00000110,0x0000010f,0x0003003e, + 0x000005d4,0x000005d8,0x0004003d,0x00000008,0x000005da,0x000005c8,0x0003003e,0x000005d9, + 0x000005da,0x0003003e,0x000005db,0x00000110,0x0004003d,0x00000008,0x000005dd,0x000005d4, + 0x0003003e,0x000005dc,0x000005dd,0x00070039,0x00000008,0x000005de,0x0000001c,0x000005d9, + 0x000005db,0x000005dc,0x0003003e,0x000005c8,0x000005de,0x0004003d,0x00000008,0x000005e0, + 0x000005c8,0x0003003e,0x000005df,0x000005e0,0x00050039,0x00000008,0x000005e1,0x00000027, + 0x000005df,0x0004003d,0x00000013,0x000005e3,0x000005a7,0x0003003e,0x000005e2,0x000005e3, + 0x0004003d,0x00000013,0x000005e5,0x000000ed,0x0003003e,0x000005e4,0x000005e5,0x0003003e, + 0x000005e6,0x000005e1,0x00070039,0x00000013,0x000005e7,0x00000023,0x000005e2,0x000005e4, + 0x000005e6,0x0003003e,0x000000ed,0x000005e7,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000f3,0x00000000,0x000000f1,0x00030037,0x0000006e,0x000000f2,0x000200f8,0x000000f4, + 0x0004003b,0x0000001e,0x000005e8,0x00000007,0x0004003b,0x0000000d,0x000005e9,0x00000007, + 0x0004003b,0x0000006e,0x000005ec,0x00000007,0x0004003b,0x0000006e,0x000005ee,0x00000007, + 0x0004003b,0x0000006e,0x000005ef,0x00000007,0x0004003b,0x0000006e,0x000005fa,0x00000007, + 0x0004003b,0x00000084,0x00000600,0x00000007,0x0004003b,0x0000001e,0x00000601,0x00000007, + 0x0004003b,0x0000000d,0x00000602,0x00000007,0x0004003b,0x0000006e,0x0000060e,0x00000007, + 0x0004003b,0x00000090,0x0000060f,0x00000007,0x0003003e,0x000005e8,0x0000046d,0x0003003e, + 0x000005e9,0x0000010f,0x00040039,0x00000056,0x000005ea,0x00000058,0x00040039,0x00000056, + 0x000005eb,0x0000005a,0x0004003d,0x00000056,0x000005ed,0x000000f2,0x0003003e,0x000005ec, + 0x000005ed,0x0003003e,0x000005ee,0x000005ea,0x0003003e,0x000005ef,0x000005eb,0x00070039, + 0x000000a8,0x000005f0,0x000000b6,0x000005ec,0x000005ee,0x000005ef,0x000500a4,0x000000a8, + 0x000005f1,0x000005f0,0x00000302,0x000400a8,0x000000a8,0x000005f2,0x000005f1,0x000300f7, + 0x000005f4,0x00000000,0x000400fa,0x000005f2,0x000005f3,0x000005f4,0x000200f8,0x000005f3, + 0x00040039,0x00000006,0x000005f5,0x0000008e,0x000500aa,0x000000a8,0x000005f6,0x000005f5, + 0x000001cf,0x000200f9,0x000005f4,0x000200f8,0x000005f4,0x000700f5,0x000000a8,0x000005f7, + 0x000005f1,0x000000f4,0x000005f6,0x000005f3,0x000300f7,0x000005f9,0x00000000,0x000400fa, + 0x000005f7,0x000005f8,0x000005fd,0x000200f8,0x000005f8,0x0004003d,0x00000056,0x000005fb, + 0x000000f2,0x0003003e,0x000005fa,0x000005fb,0x00050039,0x00000013,0x000005fc,0x00000074, + 0x000005fa,0x0003003e,0x000005e8,0x000005fc,0x000200f9,0x000005f9,0x000200f8,0x000005fd, + 0x0004003d,0x00000056,0x000005fe,0x000000f2,0x0004007c,0x0000007b,0x000005ff,0x000005fe, + 0x0003003e,0x00000600,0x000005ff,0x0004003d,0x00000008,0x00000603,0x000005e9,0x0003003e, + 0x00000602,0x00000603,0x00070039,0x00000002,0x00000604,0x000000ef,0x00000600,0x00000601, + 0x00000602,0x0004003d,0x00000013,0x00000605,0x00000601,0x0003003e,0x000005e8,0x00000605, + 0x0004003d,0x00000008,0x00000606,0x00000602,0x0003003e,0x000005e9,0x00000606,0x000200f9, + 0x000005f9,0x000200f8,0x000005f9,0x0004003d,0x00000056,0x00000607,0x000000f2,0x0004003d, + 0x00000013,0x00000608,0x000005e8,0x0004003d,0x00000008,0x00000609,0x000005e9,0x00050051, + 0x00000008,0x0000060a,0x00000608,0x00000000,0x00050051,0x00000008,0x0000060b,0x00000608, + 0x00000001,0x00050051,0x00000008,0x0000060c,0x00000608,0x00000002,0x00070050,0x00000076, + 0x0000060d,0x0000060a,0x0000060b,0x0000060c,0x00000609,0x0003003e,0x0000060e,0x00000607, + 0x0003003e,0x0000060f,0x0000060d,0x00060039,0x00000002,0x00000610,0x00000094,0x0000060e, + 0x0000060f,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h b/gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h new file mode 100644 index 000000000..ac138fd81 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h @@ -0,0 +1,789 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_OPTICAL_FLOW_VECTOR_FIELD_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000003e8,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000003d7,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70, + 0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461, + 0x00003b31,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000010,0x46786666,0x6f543233, + 0x28363146,0x003b3166,0x00040005,0x0000000f,0x756c6176,0x00000065,0x00070005,0x00000015, + 0x42786666,0x64616f72,0x74736163,0x31662833,0x0000003b,0x00040005,0x00000014,0x756c6176, + 0x00000065,0x00060005,0x00000019,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x00000018,0x00000078,0x00070005,0x0000001e,0x53786666,0x72757461,0x28657461,0x3b336676, + 0x00000000,0x00030005,0x0000001d,0x00000078,0x00060005,0x00000024,0x46786666,0x74636172, + 0x32667628,0x0000003b,0x00030005,0x00000023,0x00000078,0x00060005,0x00000027,0x52786666, + 0x646e756f,0x3b316628,0x00000000,0x00030005,0x00000026,0x00000078,0x00060005,0x0000002c, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x0000002a,0x00000078,0x00030005, + 0x0000002b,0x00000079,0x00060005,0x00000030,0x4d786666,0x66287861,0x31663b31,0x0000003b, + 0x00030005,0x0000002e,0x00000078,0x00030005,0x0000002f,0x00000079,0x00060005,0x00000034, + 0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000032,0x00000078,0x00030005, + 0x00000033,0x00000079,0x000a0005,0x0000003a,0x5a786666,0x4f6f7265,0x6553656e,0x7463656c, + 0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005,0x00000037,0x00000078,0x00030005, + 0x00000038,0x00000079,0x00030005,0x00000039,0x0000007a,0x00080005,0x0000003d,0x5a786666, + 0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366,0x00030005,0x0000003c,0x00000078, + 0x00080005,0x00000040,0x4c786666,0x61656e69,0x6f724672,0x2851506d,0x3b336676,0x00000000, + 0x00040005,0x0000003f,0x756c6176,0x00000065,0x00080005,0x00000043,0x4c786666,0x61656e69, + 0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005,0x00000042,0x756c6176,0x00000065, + 0x00080005,0x00000048,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00002865, + 0x00070005,0x0000004a,0x4f746547,0x63697470,0x6c466c61,0x6953776f,0x0028657a,0x00080005, + 0x0000004c,0x4f746547,0x63697470,0x6c466c61,0x6953776f,0x2832657a,0x00000000,0x00080005, + 0x0000004f,0x4f746547,0x63697470,0x6c466c61,0x6353776f,0x28656c61,0x00000000,0x00090005, + 0x00000052,0x6b636142,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00286e6f, + 0x00060005,0x00000055,0x4c6e694d,0x6e696d75,0x65636e61,0x00000028,0x00060005,0x00000057, + 0x4c78614d,0x6e696d75,0x65636e61,0x00000028,0x000a0005,0x0000005b,0x706d6153,0x7250656c, + 0x6f697665,0x61427375,0x75626b63,0x72656666,0x32667628,0x0000003b,0x00030005,0x0000005a, + 0x00765566,0x000a0005,0x0000005e,0x706d6153,0x7543656c,0x6e657272,0x63614274,0x6675626b, + 0x28726566,0x3b326676,0x00000000,0x00030005,0x0000005d,0x00765566,0x00080005,0x00000063, + 0x64616f4c,0x6974704f,0x466c6163,0x28776f6c,0x3b326976,0x00000000,0x00040005,0x00000062, + 0x50785069,0x0000736f,0x000a0005,0x00000067,0x64616f4c,0x6974704f,0x466c6163,0x43776f6c, + 0x69666e6f,0x636e6564,0x69762865,0x00003b32,0x00040005,0x00000066,0x50785069,0x0000736f, + 0x000d0005,0x0000006e,0x61647055,0x704f6574,0x61636974,0x6f6c666c,0x746f4d77,0x566e6f69, + 0x6f746365,0x65694672,0x7628646c,0x763b3269,0x003b3275,0x00040005,0x0000006c,0x50785069, + 0x0000736f,0x00060005,0x0000006d,0x6b636170,0x65566465,0x726f7463,0x00000000,0x00060005, + 0x00000072,0x54424752,0x6d754c6f,0x66762861,0x00003b33,0x00050005,0x00000071,0x6e694c66, + 0x52726165,0x00006267,0x000a0005,0x00000075,0x656e694c,0x65527261,0x32303263,0x4c6f5430, + 0x6e696d75,0x65636e61,0x33667628,0x0000003b,0x00070005,0x00000074,0x656e696c,0x65527261, + 0x32303263,0x42475230,0x00000000,0x00090005,0x0000007b,0x73786666,0x42475263,0x694c6f54, + 0x7261656e,0x33667628,0x3b31663b,0x003b3166,0x00040005,0x00000078,0x756c6176,0x00000065, + 0x00060005,0x00000079,0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x0000007a, + 0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x00070005,0x0000007e,0x52776152,0x6f544247, + 0x656e694c,0x76287261,0x003b3366,0x00040005,0x0000007d,0x77615266,0x00626752,0x00080005, + 0x00000081,0x52776152,0x6f544247,0x696d754c,0x636e616e,0x66762865,0x00003b33,0x00040005, + 0x00000080,0x77615266,0x00626752,0x00080005,0x00000086,0x696c6942,0x7261656e,0x706d6153, + 0x676e696c,0x61746144,0x00000000,0x00060006,0x00000086,0x00000000,0x66664f69,0x73746573, + 0x00000000,0x00060006,0x00000086,0x00000001,0x69655766,0x73746867,0x00000000,0x00060006, + 0x00000086,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005,0x0000008a,0x42746547, + 0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000, + 0x00030005,0x00000088,0x00765566,0x00040005,0x00000089,0x7a695369,0x00000065,0x00070005, + 0x00000090,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000008e, + 0x00736f70,0x00040005,0x0000008f,0x657a6973,0x00000000,0x00060005,0x00000094,0x76557349, + 0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000093,0x00765566,0x00080005,0x00000099, + 0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31,0x00030005,0x00000097, + 0x00003076,0x00030005,0x00000098,0x00003176,0x000c0005,0x000000a1,0x6b636150,0x74636556, + 0x6946726f,0x45646c65,0x6972746e,0x62287365,0x31753b31,0x3b31753b,0x3b326676,0x00000000, + 0x00050005,0x0000009d,0x50734962,0x616d6972,0x00007972,0x00070005,0x0000009e,0x67694875, + 0x69725068,0x7469726f,0x63614679,0x00726f74,0x00070005,0x0000009f,0x776f4c75,0x6f697250, + 0x79746972,0x74636146,0x0000726f,0x00060005,0x000000a0,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x000b0005,0x000000a6,0x706d6f63,0x4f657475,0x63697470,0x6c466c61,0x6946776f, + 0x4d646c65,0x76287376,0x763b3275,0x003b3266,0x00040005,0x000000a4,0x44497464,0x00000000, + 0x00070005,0x000000a5,0x74704f66,0x6c616369,0x776f6c46,0x74636556,0x0000726f,0x000b0005, + 0x000000aa,0x706d6f63,0x4f657475,0x63697470,0x6c466c61,0x6556776f,0x726f7463,0x6c656946, + 0x69762864,0x00003b32,0x00040005,0x000000a9,0x50785069,0x0000736f,0x00040005,0x000000c0, + 0x61726170,0x0000006d,0x00040005,0x000000c2,0x61726170,0x0000006d,0x00030005,0x000000de, + 0x00000072,0x00040005,0x000000ee,0x61726170,0x0000006d,0x00040005,0x000000f0,0x61726170, + 0x0000006d,0x00040005,0x000000f3,0x61726170,0x0000006d,0x00030005,0x000000f7,0x00000070, + 0x00040005,0x000000fa,0x61726170,0x0000006d,0x00040005,0x000000ff,0x61726170,0x0000006d, + 0x00040005,0x00000102,0x61726170,0x0000006d,0x00040005,0x00000105,0x61726170,0x0000006d, + 0x00040005,0x00000108,0x61726170,0x0000006d,0x00040005,0x0000010f,0x61726170,0x0000006d, + 0x00030005,0x00000114,0x0000006a,0x00030005,0x00000119,0x0000006b,0x00040005,0x00000121, + 0x61726170,0x0000006d,0x00040005,0x00000131,0x61726170,0x0000006d,0x00040005,0x00000132, + 0x61726170,0x0000006d,0x00040005,0x00000133,0x61726170,0x0000006d,0x00040005,0x00000138, + 0x49466263,0x0000745f,0x00060006,0x00000138,0x00000000,0x646e6572,0x69537265,0x0000657a, + 0x00060006,0x00000138,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x00000138, + 0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x00000138,0x00000003, + 0x656d6163,0x654e6172,0x00007261,0x00060006,0x00000138,0x00000004,0x656d6163,0x61466172, + 0x00000072,0x00080006,0x00000138,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465, + 0x0000657a,0x00050006,0x00000138,0x00000006,0x65646f4d,0x00000000,0x00050006,0x00000138, + 0x00000007,0x65736572,0x00000074,0x00080006,0x00000138,0x00000008,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00060006,0x00000138,0x00000009,0x746c6564,0x6d695461, + 0x00000065,0x00090006,0x00000138,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568, + 0x6f746361,0x00000072,0x00080006,0x00000138,0x0000000b,0x74736964,0x6974726f,0x69466e6f, + 0x53646c65,0x00657a69,0x00080006,0x00000138,0x0000000c,0x6974706f,0x466c6163,0x53776f6c, + 0x656c6163,0x00000000,0x00090006,0x00000138,0x0000000d,0x6974706f,0x466c6163,0x42776f6c, + 0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x00000138,0x0000000e,0x70736964,0x68637461, + 0x67616c46,0x00000073,0x00070006,0x00000138,0x0000000f,0x5278616d,0x65646e65,0x7a695372, + 0x00000065,0x00090006,0x00000138,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61, + 0x6f4d7365,0x00006564,0x00070006,0x00000138,0x00000011,0x496d754e,0x6174736e,0x7365636e, + 0x00000000,0x00090006,0x00000138,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x73614274,0x00000065,0x00090006,0x00000138,0x00000013,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x7a695374,0x00000065,0x00070006,0x00000138,0x00000014,0x75626564,0x72614267, + 0x6f6c6f43,0x00000072,0x000a0006,0x00000138,0x00000015,0x6b636162,0x66667542,0x72547265, + 0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x00000138,0x00000016,0x4d6e696d, + 0x754c7861,0x616e696d,0x0065636e,0x00060006,0x00000138,0x00000017,0x6e615466,0x666c6148, + 0x00564f46,0x00050006,0x00000138,0x00000018,0x6461705f,0x00000031,0x00050006,0x00000138, + 0x00000019,0x74694a66,0x00726574,0x00080006,0x00000138,0x0000001a,0x746f4d66,0x566e6f69, + 0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000013a,0x49466263,0x00000000,0x00070005, + 0x00000141,0x74704f69,0x6c616369,0x776f6c46,0x657a6953,0x00000000,0x000a0005,0x00000171, + 0x72705f72,0x6f697665,0x695f7375,0x7265746e,0x616c6f70,0x6e6f6974,0x756f735f,0x00656372, + 0x00060005,0x00000175,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x000a0005,0x0000017e, + 0x75635f72,0x6e657272,0x6e695f74,0x70726574,0x74616c6f,0x5f6e6f69,0x72756f73,0x00006563, + 0x00060005,0x00000189,0x706f5f72,0x61636974,0x6c665f6c,0x0000776f,0x00090005,0x00000197, + 0x706f5f72,0x61636974,0x6c665f6c,0x635f776f,0x69666e6f,0x636e6564,0x00000065,0x000c0005, + 0x000001a2,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365, + 0x69665f72,0x5f646c65,0x00000078,0x000c0005,0x000001a9,0x6f5f7772,0x63697470,0x665f6c61, + 0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65,0x00000079,0x00030005, + 0x000001b7,0x00005966,0x00030005,0x000001ca,0x00000070,0x00040005,0x000001cf,0x61726170, + 0x0000006d,0x00040005,0x000001d7,0x61726170,0x0000006d,0x00050005,0x000001e1,0x6e694c66, + 0x52726165,0x00006267,0x00040005,0x000001e2,0x61726170,0x0000006d,0x00040005,0x000001e6, + 0x61726170,0x0000006d,0x00040005,0x000001f0,0x61726170,0x0000006d,0x00040005,0x000001f2, + 0x61726170,0x0000006d,0x00040005,0x000001f3,0x61726170,0x0000006d,0x00050005,0x000001fa, + 0x6d754c66,0x6e616e69,0x00006563,0x00040005,0x00000200,0x61726170,0x0000006d,0x00040005, + 0x00000203,0x61726170,0x0000006d,0x00040005,0x00000206,0x61726170,0x0000006d,0x00040005, + 0x00000209,0x61726170,0x0000006d,0x00040005,0x0000020c,0x61726170,0x0000006d,0x00040005, + 0x0000020f,0x61726170,0x0000006d,0x00050005,0x00000216,0x53785066,0x6c706d61,0x00000065, + 0x00040005,0x0000021f,0x61746164,0x00000000,0x00040005,0x00000225,0x46785066,0x00636172, + 0x00040005,0x00000226,0x61726170,0x0000006d,0x00030005,0x00000271,0x0000006d,0x00040005, + 0x00000272,0x61726170,0x0000006d,0x00040005,0x00000273,0x61726170,0x0000006d,0x00040005, + 0x0000027a,0x61726170,0x0000006d,0x00040005,0x0000027b,0x61726170,0x0000006d,0x00050005, + 0x00000283,0x69725075,0x7469726f,0x00000079,0x00040005,0x00000294,0x6b636170,0x00586465, + 0x00040005,0x00000296,0x61726170,0x0000006d,0x00040005,0x0000029b,0x6b636170,0x00596465, + 0x00040005,0x0000029d,0x61726170,0x0000006d,0x00030005,0x000002a7,0x00765566,0x00070005, + 0x000002af,0x746f4d66,0x566e6f69,0x6f746365,0x6c614872,0x00000066,0x00070005,0x000002b2, + 0x76657270,0x6b636142,0x66667562,0x6f437265,0x0000006c,0x00040005,0x000002b6,0x61726170, + 0x0000006d,0x00070005,0x000002b8,0x42727563,0x626b6361,0x65666675,0x6c6f4372,0x00000000, + 0x00040005,0x000002b9,0x61726170,0x0000006d,0x00050005,0x000002bc,0x76657270,0x616d754c, + 0x00000000,0x00040005,0x000002be,0x61726170,0x0000006d,0x00050005,0x000002c2,0x72727563, + 0x616d754c,0x00000000,0x00040005,0x000002c3,0x61726170,0x0000006d,0x00050005,0x000002c7, + 0x6c655666,0x7469636f,0x00000079,0x00070005,0x000002cd,0x67694875,0x69725068,0x7469726f, + 0x63614679,0x00726f74,0x00040005,0x000002d8,0x61726170,0x0000006d,0x00070005,0x000002e2, + 0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f,0x00040005,0x000002e6,0x61726170, + 0x0000006d,0x00040005,0x000002e7,0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170, + 0x0000006d,0x00040005,0x000002f1,0x61726170,0x0000006d,0x00070005,0x000002f5,0x6b636170, + 0x65566465,0x726f7463,0x6d697250,0x00797261,0x00040005,0x000002f7,0x61726170,0x0000006d, + 0x00040005,0x000002f8,0x61726170,0x0000006d,0x00040005,0x000002fa,0x61726170,0x0000006d, + 0x00040005,0x000002fc,0x61726170,0x0000006d,0x00060005,0x000002ff,0x696c6962,0x7261656e, + 0x6f666e49,0x00000000,0x00040005,0x00000304,0x61726170,0x0000006d,0x00040005,0x00000305, + 0x61726170,0x0000006d,0x00060005,0x00000308,0x6d615369,0x49656c70,0x7865646e,0x00000000, + 0x00040005,0x00000311,0x66664f69,0x00746573,0x00050005,0x00000315,0x6d615369,0x50656c70, + 0x0000736f,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00040005,0x0000031d,0x61726170, + 0x0000006d,0x00040005,0x00000321,0x61726170,0x0000006d,0x00040005,0x00000323,0x61726170, + 0x0000006d,0x00070005,0x00000328,0x74704f66,0x6c616369,0x776f6c46,0x74636556,0x0000726f, + 0x00090005,0x0000032a,0x74704f66,0x6c616369,0x776f6c46,0x74636556,0x7833726f,0x67764133, + 0x00000000,0x00040005,0x0000032b,0x657a6973,0x00000000,0x00030005,0x0000032c,0x00007773, + 0x00030005,0x0000032d,0x00000079,0x00030005,0x00000338,0x00000078,0x00050005,0x00000343, + 0x706d6173,0x6f50656c,0x00000073,0x00030005,0x00000349,0x00007376,0x00040005,0x0000034a, + 0x61726170,0x0000006d,0x00070005,0x0000034d,0x6e6f4366,0x65646966,0x4665636e,0x6f746361, + 0x00000072,0x00040005,0x0000034e,0x61726170,0x0000006d,0x00040005,0x00000351,0x61726170, + 0x0000006d,0x00040005,0x00000352,0x61726170,0x0000006d,0x00030005,0x00000354,0x006e656c, + 0x00050005,0x0000035a,0x5f6e656c,0x74636166,0x0000726f,0x00040005,0x0000035e,0x61726170, + 0x0000006d,0x00040005,0x0000035f,0x61726170,0x0000006d,0x00030005,0x00000365,0x00000077, + 0x00030005,0x00000377,0x00000079,0x00030005,0x00000382,0x00000078,0x00050005,0x0000038d, + 0x706d6173,0x6f50656c,0x00000073,0x00030005,0x00000393,0x00007376,0x00040005,0x00000394, + 0x61726170,0x0000006d,0x00070005,0x00000397,0x6e6f4366,0x65646966,0x4665636e,0x6f746361, + 0x00000072,0x00040005,0x00000398,0x61726170,0x0000006d,0x00040005,0x0000039b,0x61726170, + 0x0000006d,0x00040005,0x0000039c,0x61726170,0x0000006d,0x00030005,0x0000039e,0x006e656c, + 0x00050005,0x000003a4,0x5f6e656c,0x74636166,0x0000726f,0x00040005,0x000003a7,0x61726170, + 0x0000006d,0x00040005,0x000003a8,0x61726170,0x0000006d,0x00030005,0x000003ae,0x00000077, + 0x00040005,0x000003b3,0x61726170,0x0000006d,0x00040005,0x000003b4,0x61726170,0x0000006d, + 0x00040005,0x000003b6,0x61726170,0x0000006d,0x00040005,0x000003b7,0x61726170,0x0000006d, + 0x00040005,0x000003d1,0x61726170,0x0000006d,0x00040005,0x000003d2,0x61726170,0x0000006d, + 0x00080005,0x000003d7,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044, + 0x00040005,0x000003db,0x61726170,0x0000006d,0x00060005,0x000003e0,0x69645f72,0x6574616c, + 0x65645f64,0x00687470,0x00030047,0x00000138,0x00000002,0x00050048,0x00000138,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000138,0x00000001,0x00000023,0x00000008,0x00050048, + 0x00000138,0x00000002,0x00000023,0x00000010,0x00050048,0x00000138,0x00000003,0x00000023, + 0x00000018,0x00050048,0x00000138,0x00000004,0x00000023,0x0000001c,0x00050048,0x00000138, + 0x00000005,0x00000023,0x00000020,0x00050048,0x00000138,0x00000006,0x00000023,0x00000028, + 0x00050048,0x00000138,0x00000007,0x00000023,0x0000002c,0x00050048,0x00000138,0x00000008, + 0x00000023,0x00000030,0x00050048,0x00000138,0x00000009,0x00000023,0x00000040,0x00050048, + 0x00000138,0x0000000a,0x00000023,0x00000044,0x00050048,0x00000138,0x0000000b,0x00000023, + 0x00000048,0x00050048,0x00000138,0x0000000c,0x00000023,0x00000050,0x00050048,0x00000138, + 0x0000000d,0x00000023,0x00000058,0x00050048,0x00000138,0x0000000e,0x00000023,0x0000005c, + 0x00050048,0x00000138,0x0000000f,0x00000023,0x00000060,0x00050048,0x00000138,0x00000010, + 0x00000023,0x00000068,0x00050048,0x00000138,0x00000011,0x00000023,0x0000006c,0x00050048, + 0x00000138,0x00000012,0x00000023,0x00000070,0x00050048,0x00000138,0x00000013,0x00000023, + 0x00000078,0x00050048,0x00000138,0x00000014,0x00000023,0x00000080,0x00050048,0x00000138, + 0x00000015,0x00000023,0x0000008c,0x00050048,0x00000138,0x00000016,0x00000023,0x00000090, + 0x00050048,0x00000138,0x00000017,0x00000023,0x00000098,0x00050048,0x00000138,0x00000018, + 0x00000023,0x0000009c,0x00050048,0x00000138,0x00000019,0x00000023,0x000000a0,0x00050048, + 0x00000138,0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000013a,0x00000021,0x00000008, + 0x00040047,0x0000013a,0x00000022,0x00000000,0x00040047,0x00000171,0x00000021,0x00000003, + 0x00040047,0x00000171,0x00000022,0x00000000,0x00040047,0x00000175,0x00000021,0x000003e8, + 0x00040047,0x00000175,0x00000022,0x00000000,0x00040047,0x0000017e,0x00000021,0x00000004, + 0x00040047,0x0000017e,0x00000022,0x00000000,0x00040047,0x00000189,0x00000021,0x00000000, + 0x00040047,0x00000189,0x00000022,0x00000000,0x00040047,0x00000197,0x00000021,0x00000001, + 0x00040047,0x00000197,0x00000022,0x00000000,0x00040047,0x000001a2,0x00000021,0x00000006, + 0x00040047,0x000001a2,0x00000022,0x00000000,0x00040047,0x000001a9,0x00000021,0x00000007, + 0x00040047,0x000001a9,0x00000022,0x00000000,0x00040047,0x000003d7,0x0000000b,0x0000001c, + 0x00040047,0x000003e0,0x00000021,0x00000002,0x00040047,0x000003e0,0x00000022,0x00000000, + 0x00040047,0x000003e7,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007, + 0x00040020,0x0000000d,0x00000007,0x00000008,0x00040021,0x0000000e,0x00000006,0x0000000d, + 0x00040017,0x00000012,0x00000008,0x00000003,0x00040021,0x00000013,0x00000012,0x0000000d, + 0x00040021,0x00000017,0x00000008,0x0000000d,0x00040020,0x0000001b,0x00000007,0x00000012, + 0x00040021,0x0000001c,0x00000012,0x0000001b,0x00040017,0x00000020,0x00000008,0x00000002, + 0x00040020,0x00000021,0x00000007,0x00000020,0x00040021,0x00000022,0x00000020,0x00000021, + 0x00050021,0x00000029,0x00000008,0x0000000d,0x0000000d,0x00060021,0x00000036,0x00000012, + 0x0000001b,0x0000001b,0x0000001b,0x00040015,0x00000045,0x00000020,0x00000001,0x00040017, + 0x00000046,0x00000045,0x00000002,0x00030021,0x00000047,0x00000046,0x00030021,0x0000004e, + 0x00000020,0x00030021,0x00000051,0x00000006,0x00030021,0x00000054,0x00000008,0x00040021, + 0x00000059,0x00000012,0x00000021,0x00040020,0x00000060,0x00000007,0x00000046,0x00040021, + 0x00000061,0x00000020,0x00000060,0x00040021,0x00000065,0x00000008,0x00000060,0x00040017, + 0x00000069,0x00000006,0x00000002,0x00040020,0x0000006a,0x00000007,0x00000069,0x00050021, + 0x0000006b,0x00000002,0x00000060,0x0000006a,0x00040021,0x00000070,0x00000008,0x0000001b, + 0x00060021,0x00000077,0x00000012,0x0000001b,0x0000000d,0x0000000d,0x0004002b,0x00000006, + 0x00000083,0x00000004,0x0004001c,0x00000084,0x00000046,0x00000083,0x0004001c,0x00000085, + 0x00000008,0x00000083,0x0005001e,0x00000086,0x00000084,0x00000085,0x00000046,0x00050021, + 0x00000087,0x00000086,0x00000021,0x00000060,0x00020014,0x0000008c,0x00050021,0x0000008d, + 0x0000008c,0x00000060,0x00000060,0x00040021,0x00000092,0x0000008c,0x00000021,0x00050021, + 0x00000096,0x00000008,0x00000008,0x00000008,0x00040020,0x0000009b,0x00000007,0x0000008c, + 0x00070021,0x0000009c,0x00000069,0x0000009b,0x00000007,0x00000007,0x00000021,0x00050021, + 0x000000a3,0x00000002,0x0000006a,0x00000021,0x00040021,0x000000a8,0x00000002,0x00000060, + 0x0004002b,0x00000008,0x000000b1,0x00000000,0x0004002b,0x00000008,0x000000bb,0x3f800000, + 0x0004002b,0x00000006,0x000000ed,0xff800000,0x0004002b,0x00000008,0x000000f9,0x3c4fcd9e, + 0x0004002b,0x00000008,0x000000fe,0x3f560008,0x0004002b,0x00000008,0x00000104,0x4196d014, + 0x0004002b,0x00000008,0x00000107,0x41958000,0x0004002b,0x00000008,0x0000010e,0x40c8e061, + 0x0004002b,0x00000008,0x00000115,0x3d25aee6,0x0004002b,0x00000008,0x00000116,0x3d9e8391, + 0x0004002b,0x00000008,0x00000117,0x4019999a,0x0006002c,0x00000012,0x00000118,0x00000115, + 0x00000116,0x00000117,0x0004002b,0x00000008,0x0000011a,0x3f72a76e,0x0004002b,0x00000008, + 0x0000011b,0x3d558919,0x0005002c,0x00000020,0x0000011c,0x0000011a,0x0000011b,0x00040017, + 0x00000137,0x00000008,0x00000004,0x001d001e,0x00000138,0x00000046,0x00000046,0x00000020, + 0x00000008,0x00000008,0x00000046,0x00000045,0x00000045,0x00000137,0x00000008,0x00000045, + 0x00000046,0x00000020,0x00000045,0x00000006,0x00000046,0x00000045,0x00000045,0x00000046, + 0x00000046,0x00000012,0x00000006,0x00000020,0x00000008,0x00000045,0x00000020,0x00000020, + 0x00040020,0x00000139,0x00000002,0x00000138,0x0004003b,0x00000139,0x0000013a,0x00000002, + 0x0004002b,0x00000045,0x0000013b,0x00000013,0x00040020,0x0000013c,0x00000002,0x00000046, + 0x0004002b,0x00000045,0x00000142,0x0000000c,0x00040020,0x00000143,0x00000002,0x00000020, + 0x0004002b,0x00000045,0x00000148,0x0000000d,0x00040020,0x00000149,0x00000002,0x00000045, + 0x0004002b,0x00000045,0x00000154,0x00000001,0x0004002b,0x00000045,0x0000015d,0x00000015, + 0x00040020,0x0000015e,0x00000002,0x00000006,0x0004002b,0x00000045,0x00000163,0x00000016, + 0x0004002b,0x00000006,0x00000164,0x00000000,0x00040020,0x00000165,0x00000002,0x00000008, + 0x0004002b,0x00000006,0x0000016a,0x00000001,0x00090019,0x0000016f,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000170,0x00000000, + 0x0000016f,0x0004003b,0x00000170,0x00000171,0x00000000,0x0002001a,0x00000173,0x00040020, + 0x00000174,0x00000000,0x00000173,0x0004003b,0x00000174,0x00000175,0x00000000,0x0003001b, + 0x00000177,0x0000016f,0x0004003b,0x00000170,0x0000017e,0x00000000,0x00090019,0x00000187, + 0x00000045,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000188,0x00000000,0x00000187,0x0004003b,0x00000188,0x00000189,0x00000000,0x0004002b, + 0x00000045,0x0000018c,0x00000000,0x00040017,0x0000018d,0x00000045,0x00000004,0x00090019, + 0x00000195,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x00000196,0x00000000,0x00000195,0x0004003b,0x00000196,0x00000197,0x00000000, + 0x00040017,0x0000019a,0x00000006,0x00000004,0x00090019,0x000001a0,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x000001a1,0x00000000, + 0x000001a0,0x0004003b,0x000001a1,0x000001a2,0x00000000,0x00040020,0x000001a6,0x0000000b, + 0x00000006,0x0004003b,0x000001a1,0x000001a9,0x00000000,0x0004002b,0x00000008,0x000001b0, + 0x3e59b3d0,0x0004002b,0x00000008,0x000001b1,0x3f371759,0x0004002b,0x00000008,0x000001b2, + 0x3d93dd98,0x0006002c,0x00000012,0x000001b3,0x000001b0,0x000001b1,0x000001b2,0x0004002b, + 0x00000008,0x000001b8,0x3e86809d,0x0004002b,0x00000008,0x000001bc,0x3f2d9168,0x0004002b, + 0x00000008,0x000001c1,0x3d72e48f,0x0004002b,0x00000006,0x000001c2,0x00000002,0x0004002b, + 0x00000008,0x000001cd,0x42a00000,0x0004002b,0x00000008,0x000001e9,0x461c4000,0x0004002b, + 0x00000008,0x0000021b,0x3f000000,0x0005002c,0x00000020,0x0000021c,0x0000021b,0x0000021b, + 0x00040020,0x0000021e,0x00000007,0x00000086,0x0004002b,0x00000045,0x00000220,0x00000002, + 0x0005002c,0x00000046,0x00000229,0x0000018c,0x0000018c,0x0005002c,0x00000046,0x0000022b, + 0x00000154,0x0000018c,0x0005002c,0x00000046,0x0000022d,0x0000018c,0x00000154,0x0004002b, + 0x00000045,0x0000022f,0x00000003,0x0005002c,0x00000046,0x00000230,0x00000154,0x00000154, + 0x00040017,0x00000255,0x0000008c,0x00000002,0x0004002b,0x00000006,0x00000286,0x80000000, + 0x0004002b,0x00000006,0x00000289,0x000003ff,0x0004002b,0x00000006,0x0000028b,0x00000015, + 0x0004002b,0x00000006,0x0000028f,0x0000001f,0x0004002b,0x00000006,0x00000291,0x00000010, + 0x0004002b,0x00000008,0x000002bd,0x3a83126f,0x0004002b,0x00000008,0x000002d4,0x3d4ccccd, + 0x0004002b,0x00000008,0x000002da,0x447fc000,0x0004002b,0x00000008,0x000002e9,0x41f80000, + 0x00030029,0x0000008c,0x000002f6,0x00040020,0x00000307,0x00000007,0x00000045,0x0004002b, + 0x00000045,0x0000030f,0x00000004,0x0005002c,0x00000020,0x00000329,0x000000b1,0x000000b1, + 0x0004002b,0x00000008,0x0000035b,0x44000000,0x0004002b,0x00000008,0x000003b2,0x3fa00000, + 0x00040017,0x000003d5,0x00000006,0x00000003,0x00040020,0x000003d6,0x00000001,0x000003d5, + 0x0004003b,0x000003d6,0x000003d7,0x00000001,0x0004002b,0x00000008,0x000003dd,0x387fda40, + 0x0004002b,0x00000008,0x000003de,0x477fe000,0x0004002b,0x00000008,0x000003df,0x37801002, + 0x0004003b,0x00000170,0x000003e0,0x00000000,0x0004002b,0x00000008,0x000003e1,0x7f7fffff, + 0x0004002b,0x00000008,0x000003e2,0x00800000,0x0004002b,0x00000006,0x000003e3,0x00000020, + 0x0004002b,0x00000006,0x000003e4,0x00000005,0x0004002b,0x00000006,0x000003e5,0x0000000a, + 0x0004002b,0x00000006,0x000003e6,0x00000008,0x0006002c,0x000003d5,0x000003e7,0x000003e6, + 0x000003e6,0x0000016a,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000060,0x000003db,0x00000007,0x0004003d,0x000003d5,0x000003d8, + 0x000003d7,0x0007004f,0x00000069,0x000003d9,0x000003d8,0x000003d8,0x00000000,0x00000001, + 0x0004007c,0x00000046,0x000003da,0x000003d9,0x0003003e,0x000003db,0x000003da,0x00050039, + 0x00000002,0x000003dc,0x000000aa,0x000003db,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003d,0x00000006,0x000000ac,0x0000000a,0x0004007c,0x00000008,0x000000ad,0x000000ac, + 0x000200fe,0x000000ad,0x00010038,0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e, + 0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000008,0x000000b0, + 0x0000000f,0x00050050,0x00000020,0x000000b2,0x000000b0,0x000000b1,0x0006000c,0x00000006, + 0x000000b3,0x00000001,0x0000003a,0x000000b2,0x000200fe,0x000000b3,0x00010038,0x00050036, + 0x00000012,0x00000015,0x00000000,0x00000013,0x00030037,0x0000000d,0x00000014,0x000200f8, + 0x00000016,0x0004003d,0x00000008,0x000000b6,0x00000014,0x00060050,0x00000012,0x000000b7, + 0x000000b6,0x000000b6,0x000000b6,0x000200fe,0x000000b7,0x00010038,0x00050036,0x00000008, + 0x00000019,0x00000000,0x00000017,0x00030037,0x0000000d,0x00000018,0x000200f8,0x0000001a, + 0x0004003d,0x00000008,0x000000ba,0x00000018,0x0008000c,0x00000008,0x000000bc,0x00000001, + 0x0000002b,0x000000ba,0x000000b1,0x000000bb,0x000200fe,0x000000bc,0x00010038,0x00050036, + 0x00000012,0x0000001e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x000200f8, + 0x0000001f,0x0004003b,0x0000000d,0x000000c0,0x00000007,0x0004003b,0x0000000d,0x000000c2, + 0x00000007,0x0004003d,0x00000012,0x000000bf,0x0000001d,0x0003003e,0x000000c0,0x000000b1, + 0x00050039,0x00000012,0x000000c1,0x00000015,0x000000c0,0x0003003e,0x000000c2,0x000000bb, + 0x00050039,0x00000012,0x000000c3,0x00000015,0x000000c2,0x0008000c,0x00000012,0x000000c4, + 0x00000001,0x0000002b,0x000000bf,0x000000c1,0x000000c3,0x000200fe,0x000000c4,0x00010038, + 0x00050036,0x00000020,0x00000024,0x00000000,0x00000022,0x00030037,0x00000021,0x00000023, + 0x000200f8,0x00000025,0x0004003d,0x00000020,0x000000c7,0x00000023,0x0006000c,0x00000020, + 0x000000c8,0x00000001,0x0000000a,0x000000c7,0x000200fe,0x000000c8,0x00010038,0x00050036, + 0x00000008,0x00000027,0x00000000,0x00000017,0x00030037,0x0000000d,0x00000026,0x000200f8, + 0x00000028,0x0004003d,0x00000008,0x000000cb,0x00000026,0x0006000c,0x00000008,0x000000cc, + 0x00000001,0x00000002,0x000000cb,0x000200fe,0x000000cc,0x00010038,0x00050036,0x00000008, + 0x0000002c,0x00000000,0x00000029,0x00030037,0x0000000d,0x0000002a,0x00030037,0x0000000d, + 0x0000002b,0x000200f8,0x0000002d,0x0004003d,0x00000008,0x000000cf,0x0000002a,0x0004003d, + 0x00000008,0x000000d0,0x0000002b,0x0007000c,0x00000008,0x000000d1,0x00000001,0x00000025, + 0x000000cf,0x000000d0,0x000200fe,0x000000d1,0x00010038,0x00050036,0x00000008,0x00000030, + 0x00000000,0x00000029,0x00030037,0x0000000d,0x0000002e,0x00030037,0x0000000d,0x0000002f, + 0x000200f8,0x00000031,0x0004003d,0x00000008,0x000000d4,0x0000002e,0x0004003d,0x00000008, + 0x000000d5,0x0000002f,0x0007000c,0x00000008,0x000000d6,0x00000001,0x00000028,0x000000d4, + 0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000008,0x00000034,0x00000000, + 0x00000029,0x00030037,0x0000000d,0x00000032,0x00030037,0x0000000d,0x00000033,0x000200f8, + 0x00000035,0x0004003d,0x00000008,0x000000d9,0x00000032,0x0004003d,0x00000008,0x000000da, + 0x00000033,0x0007000c,0x00000008,0x000000db,0x00000001,0x0000001a,0x000000d9,0x000000da, + 0x000200fe,0x000000db,0x00010038,0x00050036,0x00000012,0x0000003a,0x00000000,0x00000036, + 0x00030037,0x0000001b,0x00000037,0x00030037,0x0000001b,0x00000038,0x00030037,0x0000001b, + 0x00000039,0x000200f8,0x0000003b,0x0004003b,0x0000001b,0x000000de,0x00000007,0x0004003d, + 0x00000012,0x000000df,0x00000037,0x0004007f,0x00000012,0x000000e0,0x000000df,0x0004003d, + 0x00000012,0x000000e1,0x00000039,0x00050085,0x00000012,0x000000e2,0x000000e0,0x000000e1, + 0x0004003d,0x00000012,0x000000e3,0x00000039,0x00050081,0x00000012,0x000000e4,0x000000e2, + 0x000000e3,0x0003003e,0x000000de,0x000000e4,0x0004003d,0x00000012,0x000000e5,0x00000037, + 0x0004003d,0x00000012,0x000000e6,0x00000038,0x00050085,0x00000012,0x000000e7,0x000000e5, + 0x000000e6,0x0004003d,0x00000012,0x000000e8,0x000000de,0x00050081,0x00000012,0x000000e9, + 0x000000e7,0x000000e8,0x000200fe,0x000000e9,0x00010038,0x00050036,0x00000012,0x0000003d, + 0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000003c,0x000200f8,0x0000003e,0x0004003b, + 0x00000007,0x000000ee,0x00000007,0x0004003b,0x0000000d,0x000000f0,0x00000007,0x0004003b, + 0x0000001b,0x000000f3,0x00000007,0x0004003d,0x00000012,0x000000ec,0x0000003c,0x0003003e, + 0x000000ee,0x000000ed,0x00050039,0x00000008,0x000000ef,0x0000000b,0x000000ee,0x0003003e, + 0x000000f0,0x000000ef,0x00050039,0x00000012,0x000000f1,0x00000015,0x000000f0,0x00050085, + 0x00000012,0x000000f2,0x000000ec,0x000000f1,0x0003003e,0x000000f3,0x000000f2,0x00050039, + 0x00000012,0x000000f4,0x0000001e,0x000000f3,0x000200fe,0x000000f4,0x00010038,0x00050036, + 0x00000012,0x00000040,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000003f,0x000200f8, + 0x00000041,0x0004003b,0x0000001b,0x000000f7,0x00000007,0x0004003b,0x0000000d,0x000000fa, + 0x00000007,0x0004003b,0x0000000d,0x000000ff,0x00000007,0x0004003b,0x0000001b,0x00000102, + 0x00000007,0x0004003b,0x0000000d,0x00000105,0x00000007,0x0004003b,0x0000000d,0x00000108, + 0x00000007,0x0004003b,0x0000000d,0x0000010f,0x00000007,0x0004003d,0x00000012,0x000000f8, + 0x0000003f,0x0003003e,0x000000fa,0x000000f9,0x00050039,0x00000012,0x000000fb,0x00000015, + 0x000000fa,0x0007000c,0x00000012,0x000000fc,0x00000001,0x0000001a,0x000000f8,0x000000fb, + 0x0003003e,0x000000f7,0x000000fc,0x0004003d,0x00000012,0x000000fd,0x000000f7,0x0003003e, + 0x000000ff,0x000000fe,0x00050039,0x00000012,0x00000100,0x00000015,0x000000ff,0x00050083, + 0x00000012,0x00000101,0x000000fd,0x00000100,0x0003003e,0x00000102,0x00000101,0x00050039, + 0x00000012,0x00000103,0x0000001e,0x00000102,0x0003003e,0x00000105,0x00000104,0x00050039, + 0x00000012,0x00000106,0x00000015,0x00000105,0x0003003e,0x00000108,0x00000107,0x00050039, + 0x00000012,0x00000109,0x00000015,0x00000108,0x0004003d,0x00000012,0x0000010a,0x000000f7, + 0x00050085,0x00000012,0x0000010b,0x00000109,0x0000010a,0x00050083,0x00000012,0x0000010c, + 0x00000106,0x0000010b,0x00050088,0x00000012,0x0000010d,0x00000103,0x0000010c,0x0003003e, + 0x0000010f,0x0000010e,0x00050039,0x00000012,0x00000110,0x00000015,0x0000010f,0x0007000c, + 0x00000012,0x00000111,0x00000001,0x0000001a,0x0000010d,0x00000110,0x000200fe,0x00000111, + 0x00010038,0x00050036,0x00000012,0x00000043,0x00000000,0x0000001c,0x00030037,0x0000001b, + 0x00000042,0x000200f8,0x00000044,0x0004003b,0x0000001b,0x00000114,0x00000007,0x0004003b, + 0x00000021,0x00000119,0x00000007,0x0004003b,0x0000001b,0x00000121,0x00000007,0x0004003b, + 0x0000001b,0x00000131,0x00000007,0x0004003b,0x0000001b,0x00000132,0x00000007,0x0004003b, + 0x0000001b,0x00000133,0x00000007,0x0003003e,0x00000114,0x00000118,0x0003003e,0x00000119, + 0x0000011c,0x0004003d,0x00000012,0x0000011d,0x00000042,0x0004003d,0x00000012,0x0000011e, + 0x00000114,0x0008004f,0x00000012,0x0000011f,0x0000011e,0x0000011e,0x00000000,0x00000000, + 0x00000000,0x00050083,0x00000012,0x00000120,0x0000011d,0x0000011f,0x0003003e,0x00000121, + 0x00000120,0x00050039,0x00000012,0x00000122,0x0000003d,0x00000121,0x0004003d,0x00000012, + 0x00000123,0x00000042,0x0004003d,0x00000012,0x00000124,0x00000114,0x0008004f,0x00000012, + 0x00000125,0x00000124,0x00000124,0x00000001,0x00000001,0x00000001,0x00050085,0x00000012, + 0x00000126,0x00000123,0x00000125,0x0004003d,0x00000012,0x00000127,0x00000042,0x0004003d, + 0x00000020,0x00000128,0x00000119,0x0008004f,0x00000012,0x00000129,0x00000128,0x00000128, + 0x00000000,0x00000000,0x00000000,0x00050085,0x00000012,0x0000012a,0x00000127,0x00000129, + 0x0004003d,0x00000020,0x0000012b,0x00000119,0x0008004f,0x00000012,0x0000012c,0x0000012b, + 0x0000012b,0x00000001,0x00000001,0x00000001,0x00050081,0x00000012,0x0000012d,0x0000012a, + 0x0000012c,0x0004003d,0x00000012,0x0000012e,0x00000114,0x0008004f,0x00000012,0x0000012f, + 0x0000012e,0x0000012e,0x00000002,0x00000002,0x00000002,0x0007000c,0x00000012,0x00000130, + 0x00000001,0x0000001a,0x0000012d,0x0000012f,0x0003003e,0x00000131,0x00000122,0x0003003e, + 0x00000132,0x00000126,0x0003003e,0x00000133,0x00000130,0x00070039,0x00000012,0x00000134, + 0x0000003a,0x00000131,0x00000132,0x00000133,0x000200fe,0x00000134,0x00010038,0x00050036, + 0x00000046,0x00000048,0x00000000,0x00000047,0x000200f8,0x00000049,0x00050041,0x0000013c, + 0x0000013d,0x0000013a,0x0000013b,0x0004003d,0x00000046,0x0000013e,0x0000013d,0x000200fe, + 0x0000013e,0x00010038,0x00050036,0x00000046,0x0000004a,0x00000000,0x00000047,0x000200f8, + 0x0000004b,0x0004003b,0x00000060,0x00000141,0x00000007,0x00050041,0x00000143,0x00000144, + 0x0000013a,0x00000142,0x0004003d,0x00000020,0x00000145,0x00000144,0x00050050,0x00000020, + 0x00000146,0x000000bb,0x000000bb,0x00050088,0x00000020,0x00000147,0x00000146,0x00000145, + 0x00050041,0x00000149,0x0000014a,0x0000013a,0x00000148,0x0004003d,0x00000045,0x0000014b, + 0x0000014a,0x00050050,0x00000046,0x0000014c,0x0000014b,0x0000014b,0x0004006f,0x00000020, + 0x0000014d,0x0000014c,0x00050088,0x00000020,0x0000014e,0x00000147,0x0000014d,0x0004006e, + 0x00000046,0x0000014f,0x0000014e,0x0003003e,0x00000141,0x0000014f,0x0004003d,0x00000046, + 0x00000150,0x00000141,0x000200fe,0x00000150,0x00010038,0x00050036,0x00000046,0x0000004c, + 0x00000000,0x00000047,0x000200f8,0x0000004d,0x00040039,0x00000046,0x00000153,0x0000004a, + 0x00050050,0x00000046,0x00000155,0x00000154,0x00000154,0x00050084,0x00000046,0x00000156, + 0x00000153,0x00000155,0x000200fe,0x00000156,0x00010038,0x00050036,0x00000020,0x0000004f, + 0x00000000,0x0000004e,0x000200f8,0x00000050,0x00050041,0x00000143,0x00000159,0x0000013a, + 0x00000142,0x0004003d,0x00000020,0x0000015a,0x00000159,0x000200fe,0x0000015a,0x00010038, + 0x00050036,0x00000006,0x00000052,0x00000000,0x00000051,0x000200f8,0x00000053,0x00050041, + 0x0000015e,0x0000015f,0x0000013a,0x0000015d,0x0004003d,0x00000006,0x00000160,0x0000015f, + 0x000200fe,0x00000160,0x00010038,0x00050036,0x00000008,0x00000055,0x00000000,0x00000054, + 0x000200f8,0x00000056,0x00060041,0x00000165,0x00000166,0x0000013a,0x00000163,0x00000164, + 0x0004003d,0x00000008,0x00000167,0x00000166,0x000200fe,0x00000167,0x00010038,0x00050036, + 0x00000008,0x00000057,0x00000000,0x00000054,0x000200f8,0x00000058,0x00060041,0x00000165, + 0x0000016b,0x0000013a,0x00000163,0x0000016a,0x0004003d,0x00000008,0x0000016c,0x0000016b, + 0x000200fe,0x0000016c,0x00010038,0x00050036,0x00000012,0x0000005b,0x00000000,0x00000059, + 0x00030037,0x00000021,0x0000005a,0x000200f8,0x0000005c,0x0004003d,0x0000016f,0x00000172, + 0x00000171,0x0004003d,0x00000173,0x00000176,0x00000175,0x00050056,0x00000177,0x00000178, + 0x00000172,0x00000176,0x0004003d,0x00000020,0x00000179,0x0000005a,0x00070058,0x00000137, + 0x0000017a,0x00000178,0x00000179,0x00000002,0x000000b1,0x0008004f,0x00000012,0x0000017b, + 0x0000017a,0x0000017a,0x00000000,0x00000001,0x00000002,0x000200fe,0x0000017b,0x00010038, + 0x00050036,0x00000012,0x0000005e,0x00000000,0x00000059,0x00030037,0x00000021,0x0000005d, + 0x000200f8,0x0000005f,0x0004003d,0x0000016f,0x0000017f,0x0000017e,0x0004003d,0x00000173, + 0x00000180,0x00000175,0x00050056,0x00000177,0x00000181,0x0000017f,0x00000180,0x0004003d, + 0x00000020,0x00000182,0x0000005d,0x00070058,0x00000137,0x00000183,0x00000181,0x00000182, + 0x00000002,0x000000b1,0x0008004f,0x00000012,0x00000184,0x00000183,0x00000183,0x00000000, + 0x00000001,0x00000002,0x000200fe,0x00000184,0x00010038,0x00050036,0x00000020,0x00000063, + 0x00000000,0x00000061,0x00030037,0x00000060,0x00000062,0x000200f8,0x00000064,0x0004003d, + 0x00000187,0x0000018a,0x00000189,0x0004003d,0x00000046,0x0000018b,0x00000062,0x0007005f, + 0x0000018d,0x0000018e,0x0000018a,0x0000018b,0x00000002,0x0000018c,0x0007004f,0x00000046, + 0x0000018f,0x0000018e,0x0000018e,0x00000000,0x00000001,0x0004006f,0x00000020,0x00000190, + 0x0000018f,0x00040039,0x00000020,0x00000191,0x0000004f,0x00050085,0x00000020,0x00000192, + 0x00000190,0x00000191,0x000200fe,0x00000192,0x00010038,0x00050036,0x00000008,0x00000067, + 0x00000000,0x00000065,0x00030037,0x00000060,0x00000066,0x000200f8,0x00000068,0x0004003d, + 0x00000195,0x00000198,0x00000197,0x0004003d,0x00000046,0x00000199,0x00000066,0x0007005f, + 0x0000019a,0x0000019b,0x00000198,0x00000199,0x00000002,0x0000018c,0x00050051,0x00000006, + 0x0000019c,0x0000019b,0x00000001,0x00040070,0x00000008,0x0000019d,0x0000019c,0x000200fe, + 0x0000019d,0x00010038,0x00050036,0x00000002,0x0000006e,0x00000000,0x0000006b,0x00030037, + 0x00000060,0x0000006c,0x00030037,0x0000006a,0x0000006d,0x000200f8,0x0000006f,0x0004003d, + 0x00000046,0x000001a3,0x0000006c,0x00050041,0x00000007,0x000001a4,0x0000006d,0x00000164, + 0x0004003d,0x00000006,0x000001a5,0x000001a4,0x0006003c,0x000001a6,0x000001a7,0x000001a2, + 0x000001a3,0x00000164,0x000700ef,0x00000006,0x000001a8,0x000001a7,0x0000016a,0x00000164, + 0x000001a5,0x0004003d,0x00000046,0x000001aa,0x0000006c,0x00050041,0x00000007,0x000001ab, + 0x0000006d,0x0000016a,0x0004003d,0x00000006,0x000001ac,0x000001ab,0x0006003c,0x000001a6, + 0x000001ad,0x000001a9,0x000001aa,0x00000164,0x000700ef,0x00000006,0x000001ae,0x000001ad, + 0x0000016a,0x00000164,0x000001ac,0x000100fd,0x00010038,0x00050036,0x00000008,0x00000072, + 0x00000000,0x00000070,0x00030037,0x0000001b,0x00000071,0x000200f8,0x00000073,0x0004003d, + 0x00000012,0x000001af,0x00000071,0x00050094,0x00000008,0x000001b4,0x000001af,0x000001b3, + 0x000200fe,0x000001b4,0x00010038,0x00050036,0x00000008,0x00000075,0x00000000,0x00000070, + 0x00030037,0x0000001b,0x00000074,0x000200f8,0x00000076,0x0004003b,0x0000000d,0x000001b7, + 0x00000007,0x00050041,0x0000000d,0x000001b9,0x00000074,0x00000164,0x0004003d,0x00000008, + 0x000001ba,0x000001b9,0x00050085,0x00000008,0x000001bb,0x000001b8,0x000001ba,0x00050041, + 0x0000000d,0x000001bd,0x00000074,0x0000016a,0x0004003d,0x00000008,0x000001be,0x000001bd, + 0x00050085,0x00000008,0x000001bf,0x000001bc,0x000001be,0x00050081,0x00000008,0x000001c0, + 0x000001bb,0x000001bf,0x00050041,0x0000000d,0x000001c3,0x00000074,0x000001c2,0x0004003d, + 0x00000008,0x000001c4,0x000001c3,0x00050085,0x00000008,0x000001c5,0x000001c1,0x000001c4, + 0x00050081,0x00000008,0x000001c6,0x000001c0,0x000001c5,0x0003003e,0x000001b7,0x000001c6, + 0x0004003d,0x00000008,0x000001c7,0x000001b7,0x000200fe,0x000001c7,0x00010038,0x00050036, + 0x00000012,0x0000007b,0x00000000,0x00000077,0x00030037,0x0000001b,0x00000078,0x00030037, + 0x0000000d,0x00000079,0x00030037,0x0000000d,0x0000007a,0x000200f8,0x0000007c,0x0004003b, + 0x0000001b,0x000001ca,0x00000007,0x0004003b,0x0000000d,0x000001cf,0x00000007,0x0004003b, + 0x0000000d,0x000001d7,0x00000007,0x0004003d,0x00000012,0x000001cb,0x00000078,0x0004003d, + 0x00000008,0x000001cc,0x00000079,0x00050088,0x00000008,0x000001ce,0x000001cc,0x000001cd, + 0x0003003e,0x000001cf,0x000001ce,0x00050039,0x00000012,0x000001d0,0x00000015,0x000001cf, + 0x00050083,0x00000012,0x000001d1,0x000001cb,0x000001d0,0x0003003e,0x000001ca,0x000001d1, + 0x0004003d,0x00000012,0x000001d2,0x000001ca,0x0004003d,0x00000008,0x000001d3,0x0000007a, + 0x0004003d,0x00000008,0x000001d4,0x00000079,0x00050083,0x00000008,0x000001d5,0x000001d3, + 0x000001d4,0x00050088,0x00000008,0x000001d6,0x000001d5,0x000001cd,0x0003003e,0x000001d7, + 0x000001d6,0x00050039,0x00000012,0x000001d8,0x00000015,0x000001d7,0x00050088,0x00000012, + 0x000001d9,0x000001d2,0x000001d8,0x000200fe,0x000001d9,0x00010038,0x00050036,0x00000012, + 0x0000007e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000007d,0x000200f8,0x0000007f, + 0x0004003b,0x0000001b,0x000001e1,0x00000007,0x0004003b,0x0000001b,0x000001e2,0x00000007, + 0x0004003b,0x0000001b,0x000001e6,0x00000007,0x0004003b,0x0000001b,0x000001f0,0x00000007, + 0x0004003b,0x0000000d,0x000001f2,0x00000007,0x0004003b,0x0000000d,0x000001f3,0x00000007, + 0x00040039,0x00000006,0x000001dc,0x00000052,0x000300f7,0x000001e0,0x00000000,0x000900fb, + 0x000001dc,0x000001e0,0x00000000,0x000001dd,0x00000001,0x000001de,0x00000002,0x000001df, + 0x000200f8,0x000001dd,0x0004003d,0x00000012,0x000001e3,0x0000007d,0x0003003e,0x000001e2, + 0x000001e3,0x00050039,0x00000012,0x000001e4,0x00000043,0x000001e2,0x0003003e,0x000001e1, + 0x000001e4,0x000200f9,0x000001e0,0x000200f8,0x000001de,0x0004003d,0x00000012,0x000001e7, + 0x0000007d,0x0003003e,0x000001e6,0x000001e7,0x00050039,0x00000012,0x000001e8,0x00000040, + 0x000001e6,0x00040039,0x00000008,0x000001ea,0x00000057,0x00050088,0x00000008,0x000001eb, + 0x000001e9,0x000001ea,0x0005008e,0x00000012,0x000001ec,0x000001e8,0x000001eb,0x0003003e, + 0x000001e1,0x000001ec,0x000200f9,0x000001e0,0x000200f8,0x000001df,0x00040039,0x00000008, + 0x000001ee,0x00000055,0x00040039,0x00000008,0x000001ef,0x00000057,0x0004003d,0x00000012, + 0x000001f1,0x0000007d,0x0003003e,0x000001f0,0x000001f1,0x0003003e,0x000001f2,0x000001ee, + 0x0003003e,0x000001f3,0x000001ef,0x00070039,0x00000012,0x000001f4,0x0000007b,0x000001f0, + 0x000001f2,0x000001f3,0x0003003e,0x000001e1,0x000001f4,0x000200f9,0x000001e0,0x000200f8, + 0x000001e0,0x0004003d,0x00000012,0x000001f7,0x000001e1,0x000200fe,0x000001f7,0x00010038, + 0x00050036,0x00000008,0x00000081,0x00000000,0x00000070,0x00030037,0x0000001b,0x00000080, + 0x000200f8,0x00000082,0x0004003b,0x0000000d,0x000001fa,0x00000007,0x0004003b,0x0000001b, + 0x00000200,0x00000007,0x0004003b,0x0000001b,0x00000203,0x00000007,0x0004003b,0x0000001b, + 0x00000206,0x00000007,0x0004003b,0x0000001b,0x00000209,0x00000007,0x0004003b,0x0000001b, + 0x0000020c,0x00000007,0x0004003b,0x0000001b,0x0000020f,0x00000007,0x0003003e,0x000001fa, + 0x000000b1,0x00040039,0x00000006,0x000001fb,0x00000052,0x000300f7,0x000001ff,0x00000000, + 0x000900fb,0x000001fb,0x000001ff,0x00000000,0x000001fc,0x00000001,0x000001fd,0x00000002, + 0x000001fe,0x000200f8,0x000001fc,0x0004003d,0x00000012,0x00000201,0x00000080,0x0003003e, + 0x00000200,0x00000201,0x00050039,0x00000012,0x00000202,0x0000007e,0x00000200,0x0003003e, + 0x00000203,0x00000202,0x00050039,0x00000008,0x00000204,0x00000072,0x00000203,0x0003003e, + 0x000001fa,0x00000204,0x000200f9,0x000001ff,0x000200f8,0x000001fd,0x0004003d,0x00000012, + 0x00000207,0x00000080,0x0003003e,0x00000206,0x00000207,0x00050039,0x00000012,0x00000208, + 0x0000007e,0x00000206,0x0003003e,0x00000209,0x00000208,0x00050039,0x00000008,0x0000020a, + 0x00000075,0x00000209,0x0003003e,0x000001fa,0x0000020a,0x000200f9,0x000001ff,0x000200f8, + 0x000001fe,0x0004003d,0x00000012,0x0000020d,0x00000080,0x0003003e,0x0000020c,0x0000020d, + 0x00050039,0x00000012,0x0000020e,0x0000007e,0x0000020c,0x0003003e,0x0000020f,0x0000020e, + 0x00050039,0x00000008,0x00000210,0x00000072,0x0000020f,0x0003003e,0x000001fa,0x00000210, + 0x000200f9,0x000001ff,0x000200f8,0x000001ff,0x0004003d,0x00000008,0x00000213,0x000001fa, + 0x000200fe,0x00000213,0x00010038,0x00050036,0x00000086,0x0000008a,0x00000000,0x00000087, + 0x00030037,0x00000021,0x00000088,0x00030037,0x00000060,0x00000089,0x000200f8,0x0000008b, + 0x0004003b,0x00000021,0x00000216,0x00000007,0x0004003b,0x0000021e,0x0000021f,0x00000007, + 0x0004003b,0x00000021,0x00000225,0x00000007,0x0004003b,0x00000021,0x00000226,0x00000007, + 0x0004003d,0x00000020,0x00000217,0x00000088,0x0004003d,0x00000046,0x00000218,0x00000089, + 0x0004006f,0x00000020,0x00000219,0x00000218,0x00050085,0x00000020,0x0000021a,0x00000217, + 0x00000219,0x00050083,0x00000020,0x0000021d,0x0000021a,0x0000021c,0x0003003e,0x00000216, + 0x0000021d,0x0004003d,0x00000020,0x00000221,0x00000216,0x0006000c,0x00000020,0x00000222, + 0x00000001,0x00000008,0x00000221,0x0004006e,0x00000046,0x00000223,0x00000222,0x00050041, + 0x00000060,0x00000224,0x0000021f,0x00000220,0x0003003e,0x00000224,0x00000223,0x0004003d, + 0x00000020,0x00000227,0x00000216,0x0003003e,0x00000226,0x00000227,0x00050039,0x00000020, + 0x00000228,0x00000024,0x00000226,0x0003003e,0x00000225,0x00000228,0x00060041,0x00000060, + 0x0000022a,0x0000021f,0x0000018c,0x0000018c,0x0003003e,0x0000022a,0x00000229,0x00060041, + 0x00000060,0x0000022c,0x0000021f,0x0000018c,0x00000154,0x0003003e,0x0000022c,0x0000022b, + 0x00060041,0x00000060,0x0000022e,0x0000021f,0x0000018c,0x00000220,0x0003003e,0x0000022e, + 0x0000022d,0x00060041,0x00000060,0x00000231,0x0000021f,0x0000018c,0x0000022f,0x0003003e, + 0x00000231,0x00000230,0x00050041,0x0000000d,0x00000232,0x00000225,0x00000164,0x0004003d, + 0x00000008,0x00000233,0x00000232,0x00050083,0x00000008,0x00000234,0x000000bb,0x00000233, + 0x00050041,0x0000000d,0x00000235,0x00000225,0x0000016a,0x0004003d,0x00000008,0x00000236, + 0x00000235,0x00050083,0x00000008,0x00000237,0x000000bb,0x00000236,0x00050085,0x00000008, + 0x00000238,0x00000234,0x00000237,0x00060041,0x0000000d,0x00000239,0x0000021f,0x00000154, + 0x0000018c,0x0003003e,0x00000239,0x00000238,0x00050041,0x0000000d,0x0000023a,0x00000225, + 0x00000164,0x0004003d,0x00000008,0x0000023b,0x0000023a,0x00050041,0x0000000d,0x0000023c, + 0x00000225,0x0000016a,0x0004003d,0x00000008,0x0000023d,0x0000023c,0x00050083,0x00000008, + 0x0000023e,0x000000bb,0x0000023d,0x00050085,0x00000008,0x0000023f,0x0000023b,0x0000023e, + 0x00060041,0x0000000d,0x00000240,0x0000021f,0x00000154,0x00000154,0x0003003e,0x00000240, + 0x0000023f,0x00050041,0x0000000d,0x00000241,0x00000225,0x00000164,0x0004003d,0x00000008, + 0x00000242,0x00000241,0x00050083,0x00000008,0x00000243,0x000000bb,0x00000242,0x00050041, + 0x0000000d,0x00000244,0x00000225,0x0000016a,0x0004003d,0x00000008,0x00000245,0x00000244, + 0x00050085,0x00000008,0x00000246,0x00000243,0x00000245,0x00060041,0x0000000d,0x00000247, + 0x0000021f,0x00000154,0x00000220,0x0003003e,0x00000247,0x00000246,0x00050041,0x0000000d, + 0x00000248,0x00000225,0x00000164,0x0004003d,0x00000008,0x00000249,0x00000248,0x00050041, + 0x0000000d,0x0000024a,0x00000225,0x0000016a,0x0004003d,0x00000008,0x0000024b,0x0000024a, + 0x00050085,0x00000008,0x0000024c,0x00000249,0x0000024b,0x00060041,0x0000000d,0x0000024d, + 0x0000021f,0x00000154,0x0000022f,0x0003003e,0x0000024d,0x0000024c,0x0004003d,0x00000086, + 0x0000024e,0x0000021f,0x000200fe,0x0000024e,0x00010038,0x00050036,0x0000008c,0x00000090, + 0x00000000,0x0000008d,0x00030037,0x00000060,0x0000008e,0x00030037,0x00000060,0x0000008f, + 0x000200f8,0x00000091,0x0004003d,0x00000046,0x00000251,0x0000008e,0x0004007c,0x00000069, + 0x00000252,0x00000251,0x0004003d,0x00000046,0x00000253,0x0000008f,0x0004007c,0x00000069, + 0x00000254,0x00000253,0x000500b0,0x00000255,0x00000256,0x00000252,0x00000254,0x0004009b, + 0x0000008c,0x00000257,0x00000256,0x000200fe,0x00000257,0x00010038,0x00050036,0x0000008c, + 0x00000094,0x00000000,0x00000092,0x00030037,0x00000021,0x00000093,0x000200f8,0x00000095, + 0x00050041,0x0000000d,0x0000025a,0x00000093,0x00000164,0x0004003d,0x00000008,0x0000025b, + 0x0000025a,0x000500ba,0x0000008c,0x0000025c,0x0000025b,0x000000b1,0x000300f7,0x0000025e, + 0x00000000,0x000400fa,0x0000025c,0x0000025d,0x0000025e,0x000200f8,0x0000025d,0x00050041, + 0x0000000d,0x0000025f,0x00000093,0x00000164,0x0004003d,0x00000008,0x00000260,0x0000025f, + 0x000500b8,0x0000008c,0x00000261,0x00000260,0x000000bb,0x000200f9,0x0000025e,0x000200f8, + 0x0000025e,0x000700f5,0x0000008c,0x00000262,0x0000025c,0x00000095,0x00000261,0x0000025d, + 0x000300f7,0x00000264,0x00000000,0x000400fa,0x00000262,0x00000263,0x00000264,0x000200f8, + 0x00000263,0x00050041,0x0000000d,0x00000265,0x00000093,0x0000016a,0x0004003d,0x00000008, + 0x00000266,0x00000265,0x000500ba,0x0000008c,0x00000267,0x00000266,0x000000b1,0x000300f7, + 0x00000269,0x00000000,0x000400fa,0x00000267,0x00000268,0x00000269,0x000200f8,0x00000268, + 0x00050041,0x0000000d,0x0000026a,0x00000093,0x0000016a,0x0004003d,0x00000008,0x0000026b, + 0x0000026a,0x000500b8,0x0000008c,0x0000026c,0x0000026b,0x000000bb,0x000200f9,0x00000269, + 0x000200f8,0x00000269,0x000700f5,0x0000008c,0x0000026d,0x00000267,0x00000263,0x0000026c, + 0x00000268,0x000200f9,0x00000264,0x000200f8,0x00000264,0x000700f5,0x0000008c,0x0000026e, + 0x00000262,0x0000025e,0x0000026d,0x00000269,0x000200fe,0x0000026e,0x00010038,0x00050036, + 0x00000008,0x00000099,0x00000000,0x00000096,0x00030037,0x00000008,0x00000097,0x00030037, + 0x00000008,0x00000098,0x000200f8,0x0000009a,0x0004003b,0x0000000d,0x00000271,0x00000007, + 0x0004003b,0x0000000d,0x00000272,0x00000007,0x0004003b,0x0000000d,0x00000273,0x00000007, + 0x0004003b,0x0000000d,0x00000277,0x00000007,0x0004003b,0x0000000d,0x0000027a,0x00000007, + 0x0004003b,0x0000000d,0x0000027b,0x00000007,0x0003003e,0x00000272,0x00000097,0x0003003e, + 0x00000273,0x00000098,0x00060039,0x00000008,0x00000274,0x00000030,0x00000272,0x00000273, + 0x0003003e,0x00000271,0x00000274,0x0004003d,0x00000008,0x00000275,0x00000271,0x000500b7, + 0x0000008c,0x00000276,0x00000275,0x000000b1,0x000300f7,0x00000279,0x00000000,0x000400fa, + 0x00000276,0x00000278,0x0000027f,0x000200f8,0x00000278,0x0003003e,0x0000027a,0x00000097, + 0x0003003e,0x0000027b,0x00000098,0x00060039,0x00000008,0x0000027c,0x0000002c,0x0000027a, + 0x0000027b,0x0004003d,0x00000008,0x0000027d,0x00000271,0x00050088,0x00000008,0x0000027e, + 0x0000027c,0x0000027d,0x0003003e,0x00000277,0x0000027e,0x000200f9,0x00000279,0x000200f8, + 0x0000027f,0x0003003e,0x00000277,0x000000b1,0x000200f9,0x00000279,0x000200f8,0x00000279, + 0x0004003d,0x00000008,0x00000280,0x00000277,0x000200fe,0x00000280,0x00010038,0x00050036, + 0x00000069,0x000000a1,0x00000000,0x0000009c,0x00030037,0x0000009b,0x0000009d,0x00030037, + 0x00000007,0x0000009e,0x00030037,0x00000007,0x0000009f,0x00030037,0x00000021,0x000000a0, + 0x000200f8,0x000000a2,0x0004003b,0x00000007,0x00000283,0x00000007,0x0004003b,0x00000007, + 0x00000294,0x00000007,0x0004003b,0x0000000d,0x00000296,0x00000007,0x0004003b,0x00000007, + 0x0000029b,0x00000007,0x0004003b,0x0000000d,0x0000029d,0x00000007,0x0004003d,0x0000008c, + 0x00000284,0x0000009d,0x000600a9,0x00000006,0x00000285,0x00000284,0x0000016a,0x00000164, + 0x00050084,0x00000006,0x00000287,0x00000285,0x00000286,0x0004003d,0x00000006,0x00000288, + 0x0000009e,0x000500c7,0x00000006,0x0000028a,0x00000288,0x00000289,0x000500c4,0x00000006, + 0x0000028c,0x0000028a,0x0000028b,0x000500c5,0x00000006,0x0000028d,0x00000287,0x0000028c, + 0x0004003d,0x00000006,0x0000028e,0x0000009f,0x000500c7,0x00000006,0x00000290,0x0000028e, + 0x0000028f,0x000500c4,0x00000006,0x00000292,0x00000290,0x00000291,0x000500c5,0x00000006, + 0x00000293,0x0000028d,0x00000292,0x0003003e,0x00000283,0x00000293,0x0004003d,0x00000006, + 0x00000295,0x00000283,0x00050041,0x0000000d,0x00000297,0x000000a0,0x00000164,0x0004003d, + 0x00000008,0x00000298,0x00000297,0x0003003e,0x00000296,0x00000298,0x00050039,0x00000006, + 0x00000299,0x00000010,0x00000296,0x000500c5,0x00000006,0x0000029a,0x00000295,0x00000299, + 0x0003003e,0x00000294,0x0000029a,0x0004003d,0x00000006,0x0000029c,0x00000283,0x00050041, + 0x0000000d,0x0000029e,0x000000a0,0x0000016a,0x0004003d,0x00000008,0x0000029f,0x0000029e, + 0x0003003e,0x0000029d,0x0000029f,0x00050039,0x00000006,0x000002a0,0x00000010,0x0000029d, + 0x000500c5,0x00000006,0x000002a1,0x0000029c,0x000002a0,0x0003003e,0x0000029b,0x000002a1, + 0x0004003d,0x00000006,0x000002a2,0x00000294,0x0004003d,0x00000006,0x000002a3,0x0000029b, + 0x00050050,0x00000069,0x000002a4,0x000002a2,0x000002a3,0x000200fe,0x000002a4,0x00010038, + 0x00050036,0x00000002,0x000000a6,0x00000000,0x000000a3,0x00030037,0x0000006a,0x000000a4, + 0x00030037,0x00000021,0x000000a5,0x000200f8,0x000000a7,0x0004003b,0x00000021,0x000002a7, + 0x00000007,0x0004003b,0x00000021,0x000002af,0x00000007,0x0004003b,0x0000001b,0x000002b2, + 0x00000007,0x0004003b,0x00000021,0x000002b6,0x00000007,0x0004003b,0x0000001b,0x000002b8, + 0x00000007,0x0004003b,0x00000021,0x000002b9,0x00000007,0x0004003b,0x0000000d,0x000002bc, + 0x00000007,0x0004003b,0x0000001b,0x000002be,0x00000007,0x0004003b,0x0000000d,0x000002c2, + 0x00000007,0x0004003b,0x0000001b,0x000002c3,0x00000007,0x0004003b,0x0000000d,0x000002c7, + 0x00000007,0x0004003b,0x00000007,0x000002cd,0x00000007,0x0004003b,0x0000000d,0x000002d8, + 0x00000007,0x0004003b,0x00000007,0x000002e2,0x00000007,0x0004003b,0x0000000d,0x000002e6, + 0x00000007,0x0004003b,0x0000000d,0x000002e7,0x00000007,0x0004003b,0x0000000d,0x000002eb, + 0x00000007,0x0004003b,0x00000021,0x000002f1,0x00000007,0x0004003b,0x0000006a,0x000002f5, + 0x00000007,0x0004003b,0x0000009b,0x000002f7,0x00000007,0x0004003b,0x00000007,0x000002f8, + 0x00000007,0x0004003b,0x00000007,0x000002fa,0x00000007,0x0004003b,0x00000021,0x000002fc, + 0x00000007,0x0004003b,0x0000021e,0x000002ff,0x00000007,0x0004003b,0x00000021,0x00000304, + 0x00000007,0x0004003b,0x00000060,0x00000305,0x00000007,0x0004003b,0x00000307,0x00000308, + 0x00000007,0x0004003b,0x00000060,0x00000311,0x00000007,0x0004003b,0x00000060,0x00000315, + 0x00000007,0x0004003b,0x00000060,0x0000031b,0x00000007,0x0004003b,0x00000060,0x0000031d, + 0x00000007,0x0004003b,0x00000060,0x00000321,0x00000007,0x0004003b,0x0000006a,0x00000323, + 0x00000007,0x0004003d,0x00000069,0x000002a8,0x000000a4,0x00040070,0x00000020,0x000002a9, + 0x000002a8,0x00050050,0x00000020,0x000002aa,0x0000021b,0x0000021b,0x00050081,0x00000020, + 0x000002ab,0x000002a9,0x000002aa,0x00040039,0x00000046,0x000002ac,0x0000004c,0x0004006f, + 0x00000020,0x000002ad,0x000002ac,0x00050088,0x00000020,0x000002ae,0x000002ab,0x000002ad, + 0x0003003e,0x000002a7,0x000002ae,0x0004003d,0x00000020,0x000002b0,0x000000a5,0x0005008e, + 0x00000020,0x000002b1,0x000002b0,0x0000021b,0x0003003e,0x000002af,0x000002b1,0x0004003d, + 0x00000020,0x000002b3,0x000002a7,0x0004003d,0x00000020,0x000002b4,0x000000a5,0x00050081, + 0x00000020,0x000002b5,0x000002b3,0x000002b4,0x0003003e,0x000002b6,0x000002b5,0x00050039, + 0x00000012,0x000002b7,0x0000005b,0x000002b6,0x0003003e,0x000002b2,0x000002b7,0x0004003d, + 0x00000020,0x000002ba,0x000002a7,0x0003003e,0x000002b9,0x000002ba,0x00050039,0x00000012, + 0x000002bb,0x0000005e,0x000002b9,0x0003003e,0x000002b8,0x000002bb,0x0004003d,0x00000012, + 0x000002bf,0x000002b2,0x0003003e,0x000002be,0x000002bf,0x00050039,0x00000008,0x000002c0, + 0x00000081,0x000002be,0x00050081,0x00000008,0x000002c1,0x000002bd,0x000002c0,0x0003003e, + 0x000002bc,0x000002c1,0x0004003d,0x00000012,0x000002c4,0x000002b8,0x0003003e,0x000002c3, + 0x000002c4,0x00050039,0x00000008,0x000002c5,0x00000081,0x000002c3,0x00050081,0x00000008, + 0x000002c6,0x000002bd,0x000002c5,0x0003003e,0x000002c2,0x000002c6,0x0004003d,0x00000020, + 0x000002c8,0x000000a5,0x00040039,0x00000046,0x000002c9,0x00000048,0x0004006f,0x00000020, + 0x000002ca,0x000002c9,0x00050085,0x00000020,0x000002cb,0x000002c8,0x000002ca,0x0006000c, + 0x00000008,0x000002cc,0x00000001,0x00000042,0x000002cb,0x0003003e,0x000002c7,0x000002cc, + 0x0004003d,0x00000008,0x000002ce,0x000002c7,0x000500ba,0x0000008c,0x000002cf,0x000002ce, + 0x000000bb,0x000600a9,0x00000006,0x000002d0,0x000002cf,0x0000016a,0x00000164,0x0004003d, + 0x00000008,0x000002d1,0x000002c7,0x00040039,0x00000046,0x000002d2,0x00000048,0x0004006f, + 0x00000020,0x000002d3,0x000002d2,0x0005008e,0x00000020,0x000002d5,0x000002d3,0x000002d4, + 0x0006000c,0x00000008,0x000002d6,0x00000001,0x00000042,0x000002d5,0x00050088,0x00000008, + 0x000002d7,0x000002d1,0x000002d6,0x0003003e,0x000002d8,0x000002d7,0x00050039,0x00000008, + 0x000002d9,0x00000019,0x000002d8,0x00050085,0x00000008,0x000002db,0x000002d9,0x000002da, + 0x0004006d,0x00000006,0x000002dc,0x000002db,0x00050084,0x00000006,0x000002dd,0x000002d0, + 0x000002dc,0x0003003e,0x000002cd,0x000002dd,0x0004003d,0x00000006,0x000002de,0x000002cd, + 0x000500ac,0x0000008c,0x000002df,0x000002de,0x00000164,0x000300f7,0x000002e1,0x00000000, + 0x000400fa,0x000002df,0x000002e0,0x000002e1,0x000200f8,0x000002e0,0x0004003d,0x00000008, + 0x000002e3,0x000002bc,0x0004003d,0x00000008,0x000002e4,0x000002c2,0x00060039,0x00000008, + 0x000002e5,0x00000099,0x000002e3,0x000002e4,0x0003003e,0x000002e6,0x000002e5,0x0003003e, + 0x000002e7,0x000000bb,0x00060039,0x00000008,0x000002e8,0x00000034,0x000002e6,0x000002e7, + 0x00050085,0x00000008,0x000002ea,0x000002e8,0x000002e9,0x0003003e,0x000002eb,0x000002ea, + 0x00050039,0x00000008,0x000002ec,0x00000027,0x000002eb,0x0004006d,0x00000006,0x000002ed, + 0x000002ec,0x0004003d,0x00000020,0x000002ee,0x000002a7,0x0004003d,0x00000020,0x000002ef, + 0x000000a5,0x00050081,0x00000020,0x000002f0,0x000002ee,0x000002ef,0x0003003e,0x000002f1, + 0x000002f0,0x00050039,0x0000008c,0x000002f2,0x00000094,0x000002f1,0x000600a9,0x00000006, + 0x000002f3,0x000002f2,0x0000016a,0x00000164,0x00050084,0x00000006,0x000002f4,0x000002ed, + 0x000002f3,0x0003003e,0x000002e2,0x000002f4,0x0003003e,0x000002f7,0x000002f6,0x0004003d, + 0x00000006,0x000002f9,0x000002cd,0x0003003e,0x000002f8,0x000002f9,0x0004003d,0x00000006, + 0x000002fb,0x000002e2,0x0003003e,0x000002fa,0x000002fb,0x0004003d,0x00000020,0x000002fd, + 0x000002af,0x0003003e,0x000002fc,0x000002fd,0x00080039,0x00000069,0x000002fe,0x000000a1, + 0x000002f7,0x000002f8,0x000002fa,0x000002fc,0x0003003e,0x000002f5,0x000002fe,0x0004003d, + 0x00000020,0x00000300,0x000002a7,0x0004003d,0x00000020,0x00000301,0x000002af,0x00050081, + 0x00000020,0x00000302,0x00000300,0x00000301,0x00040039,0x00000046,0x00000303,0x0000004c, + 0x0003003e,0x00000304,0x00000302,0x0003003e,0x00000305,0x00000303,0x00060039,0x00000086, + 0x00000306,0x0000008a,0x00000304,0x00000305,0x0003003e,0x000002ff,0x00000306,0x0003003e, + 0x00000308,0x0000018c,0x000200f9,0x00000309,0x000200f8,0x00000309,0x000400f6,0x0000030b, + 0x0000030c,0x00000000,0x000200f9,0x0000030d,0x000200f8,0x0000030d,0x0004003d,0x00000045, + 0x0000030e,0x00000308,0x000500b1,0x0000008c,0x00000310,0x0000030e,0x0000030f,0x000400fa, + 0x00000310,0x0000030a,0x0000030b,0x000200f8,0x0000030a,0x0004003d,0x00000045,0x00000312, + 0x00000308,0x00060041,0x00000060,0x00000313,0x000002ff,0x0000018c,0x00000312,0x0004003d, + 0x00000046,0x00000314,0x00000313,0x0003003e,0x00000311,0x00000314,0x00050041,0x00000060, + 0x00000316,0x000002ff,0x00000220,0x0004003d,0x00000046,0x00000317,0x00000316,0x0004003d, + 0x00000046,0x00000318,0x00000311,0x00050080,0x00000046,0x00000319,0x00000317,0x00000318, + 0x0003003e,0x00000315,0x00000319,0x00040039,0x00000046,0x0000031a,0x0000004c,0x0004003d, + 0x00000046,0x0000031c,0x00000315,0x0003003e,0x0000031b,0x0000031c,0x0003003e,0x0000031d, + 0x0000031a,0x00060039,0x0000008c,0x0000031e,0x00000090,0x0000031b,0x0000031d,0x000300f7, + 0x00000320,0x00000000,0x000400fa,0x0000031e,0x0000031f,0x00000320,0x000200f8,0x0000031f, + 0x0004003d,0x00000046,0x00000322,0x00000315,0x0003003e,0x00000321,0x00000322,0x0004003d, + 0x00000069,0x00000324,0x000002f5,0x0003003e,0x00000323,0x00000324,0x00060039,0x00000002, + 0x00000325,0x0000006e,0x00000321,0x00000323,0x000200f9,0x00000320,0x000200f8,0x00000320, + 0x000200f9,0x0000030c,0x000200f8,0x0000030c,0x0004003d,0x00000045,0x00000326,0x00000308, + 0x00050080,0x00000045,0x00000327,0x00000326,0x00000154,0x0003003e,0x00000308,0x00000327, + 0x000200f9,0x00000309,0x000200f8,0x0000030b,0x000200f9,0x000002e1,0x000200f8,0x000002e1, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000aa,0x00000000,0x000000a8,0x00030037, + 0x00000060,0x000000a9,0x000200f8,0x000000ab,0x0004003b,0x00000021,0x00000328,0x00000007, + 0x0004003b,0x00000021,0x0000032a,0x00000007,0x0004003b,0x00000307,0x0000032b,0x00000007, + 0x0004003b,0x0000000d,0x0000032c,0x00000007,0x0004003b,0x00000307,0x0000032d,0x00000007, + 0x0004003b,0x00000307,0x00000338,0x00000007,0x0004003b,0x00000060,0x00000343,0x00000007, + 0x0004003b,0x00000021,0x00000349,0x00000007,0x0004003b,0x00000060,0x0000034a,0x00000007, + 0x0004003b,0x0000000d,0x0000034d,0x00000007,0x0004003b,0x00000060,0x0000034e,0x00000007, + 0x0004003b,0x0000000d,0x00000351,0x00000007,0x0004003b,0x0000000d,0x00000352,0x00000007, + 0x0004003b,0x0000000d,0x00000354,0x00000007,0x0004003b,0x0000000d,0x0000035a,0x00000007, + 0x0004003b,0x0000000d,0x0000035e,0x00000007,0x0004003b,0x0000000d,0x0000035f,0x00000007, + 0x0004003b,0x0000000d,0x00000365,0x00000007,0x0004003b,0x00000307,0x00000377,0x00000007, + 0x0004003b,0x00000307,0x00000382,0x00000007,0x0004003b,0x00000060,0x0000038d,0x00000007, + 0x0004003b,0x00000021,0x00000393,0x00000007,0x0004003b,0x00000060,0x00000394,0x00000007, + 0x0004003b,0x0000000d,0x00000397,0x00000007,0x0004003b,0x00000060,0x00000398,0x00000007, + 0x0004003b,0x0000000d,0x0000039b,0x00000007,0x0004003b,0x0000000d,0x0000039c,0x00000007, + 0x0004003b,0x0000000d,0x0000039e,0x00000007,0x0004003b,0x0000000d,0x000003a4,0x00000007, + 0x0004003b,0x0000000d,0x000003a7,0x00000007,0x0004003b,0x0000000d,0x000003a8,0x00000007, + 0x0004003b,0x0000000d,0x000003ae,0x00000007,0x0004003b,0x0000000d,0x000003b3,0x00000007, + 0x0004003b,0x0000000d,0x000003b4,0x00000007,0x0004003b,0x0000000d,0x000003b6,0x00000007, + 0x0004003b,0x0000000d,0x000003b7,0x00000007,0x0004003b,0x0000006a,0x000003d1,0x00000007, + 0x0004003b,0x00000021,0x000003d2,0x00000007,0x0003003e,0x00000328,0x00000329,0x0003003e, + 0x0000032a,0x00000329,0x0003003e,0x0000032b,0x00000154,0x0003003e,0x0000032c,0x000000b1, + 0x0004003d,0x00000045,0x0000032e,0x0000032b,0x0004007e,0x00000045,0x0000032f,0x0000032e, + 0x0003003e,0x0000032d,0x0000032f,0x000200f9,0x00000330,0x000200f8,0x00000330,0x000400f6, + 0x00000332,0x00000333,0x00000000,0x000200f9,0x00000334,0x000200f8,0x00000334,0x0004003d, + 0x00000045,0x00000335,0x0000032d,0x0004003d,0x00000045,0x00000336,0x0000032b,0x000500b3, + 0x0000008c,0x00000337,0x00000335,0x00000336,0x000400fa,0x00000337,0x00000331,0x00000332, + 0x000200f8,0x00000331,0x0004003d,0x00000045,0x00000339,0x0000032b,0x0004007e,0x00000045, + 0x0000033a,0x00000339,0x0003003e,0x00000338,0x0000033a,0x000200f9,0x0000033b,0x000200f8, + 0x0000033b,0x000400f6,0x0000033d,0x0000033e,0x00000000,0x000200f9,0x0000033f,0x000200f8, + 0x0000033f,0x0004003d,0x00000045,0x00000340,0x00000338,0x0004003d,0x00000045,0x00000341, + 0x0000032b,0x000500b3,0x0000008c,0x00000342,0x00000340,0x00000341,0x000400fa,0x00000342, + 0x0000033c,0x0000033d,0x000200f8,0x0000033c,0x0004003d,0x00000046,0x00000344,0x000000a9, + 0x0004003d,0x00000045,0x00000345,0x00000338,0x0004003d,0x00000045,0x00000346,0x0000032d, + 0x00050050,0x00000046,0x00000347,0x00000345,0x00000346,0x00050080,0x00000046,0x00000348, + 0x00000344,0x00000347,0x0003003e,0x00000343,0x00000348,0x0004003d,0x00000046,0x0000034b, + 0x00000343,0x0003003e,0x0000034a,0x0000034b,0x00050039,0x00000020,0x0000034c,0x00000063, + 0x0000034a,0x0003003e,0x00000349,0x0000034c,0x0004003d,0x00000046,0x0000034f,0x00000343, + 0x0003003e,0x0000034e,0x0000034f,0x00050039,0x00000008,0x00000350,0x00000067,0x0000034e, + 0x0003003e,0x00000351,0x000002bd,0x0003003e,0x00000352,0x00000350,0x00060039,0x00000008, + 0x00000353,0x00000030,0x00000351,0x00000352,0x0003003e,0x0000034d,0x00000353,0x0004003d, + 0x00000020,0x00000355,0x00000349,0x00040039,0x00000046,0x00000356,0x00000048,0x0004006f, + 0x00000020,0x00000357,0x00000356,0x00050085,0x00000020,0x00000358,0x00000355,0x00000357, + 0x0006000c,0x00000008,0x00000359,0x00000001,0x00000042,0x00000358,0x0003003e,0x00000354, + 0x00000359,0x0004003d,0x00000008,0x0000035c,0x00000354,0x00050083,0x00000008,0x0000035d, + 0x0000035b,0x0000035c,0x0003003e,0x0000035e,0x000000b1,0x0003003e,0x0000035f,0x0000035d, + 0x00060039,0x00000008,0x00000360,0x00000030,0x0000035e,0x0000035f,0x0004003d,0x00000008, + 0x00000361,0x00000354,0x000500ba,0x0000008c,0x00000362,0x00000361,0x000000bb,0x000600a9, + 0x00000008,0x00000363,0x00000362,0x000000bb,0x000000b1,0x00050085,0x00000008,0x00000364, + 0x00000360,0x00000363,0x0003003e,0x0000035a,0x00000364,0x0004003d,0x00000008,0x00000366, + 0x0000035a,0x0003003e,0x00000365,0x00000366,0x0004003d,0x00000020,0x00000367,0x00000349, + 0x0004003d,0x00000008,0x00000368,0x00000365,0x0005008e,0x00000020,0x00000369,0x00000367, + 0x00000368,0x0004003d,0x00000020,0x0000036a,0x0000032a,0x00050081,0x00000020,0x0000036b, + 0x0000036a,0x00000369,0x0003003e,0x0000032a,0x0000036b,0x0004003d,0x00000008,0x0000036c, + 0x00000365,0x0004003d,0x00000008,0x0000036d,0x0000032c,0x00050081,0x00000008,0x0000036e, + 0x0000036d,0x0000036c,0x0003003e,0x0000032c,0x0000036e,0x000200f9,0x0000033e,0x000200f8, + 0x0000033e,0x0004003d,0x00000045,0x0000036f,0x00000338,0x00050080,0x00000045,0x00000370, + 0x0000036f,0x00000154,0x0003003e,0x00000338,0x00000370,0x000200f9,0x0000033b,0x000200f8, + 0x0000033d,0x000200f9,0x00000333,0x000200f8,0x00000333,0x0004003d,0x00000045,0x00000371, + 0x0000032d,0x00050080,0x00000045,0x00000372,0x00000371,0x00000154,0x0003003e,0x0000032d, + 0x00000372,0x000200f9,0x00000330,0x000200f8,0x00000332,0x0004003d,0x00000008,0x00000373, + 0x0000032c,0x0004003d,0x00000020,0x00000374,0x0000032a,0x00050050,0x00000020,0x00000375, + 0x00000373,0x00000373,0x00050088,0x00000020,0x00000376,0x00000374,0x00000375,0x0003003e, + 0x0000032a,0x00000376,0x0003003e,0x0000032c,0x000000b1,0x0004003d,0x00000045,0x00000378, + 0x0000032b,0x0004007e,0x00000045,0x00000379,0x00000378,0x0003003e,0x00000377,0x00000379, + 0x000200f9,0x0000037a,0x000200f8,0x0000037a,0x000400f6,0x0000037c,0x0000037d,0x00000000, + 0x000200f9,0x0000037e,0x000200f8,0x0000037e,0x0004003d,0x00000045,0x0000037f,0x00000377, + 0x0004003d,0x00000045,0x00000380,0x0000032b,0x000500b3,0x0000008c,0x00000381,0x0000037f, + 0x00000380,0x000400fa,0x00000381,0x0000037b,0x0000037c,0x000200f8,0x0000037b,0x0004003d, + 0x00000045,0x00000383,0x0000032b,0x0004007e,0x00000045,0x00000384,0x00000383,0x0003003e, + 0x00000382,0x00000384,0x000200f9,0x00000385,0x000200f8,0x00000385,0x000400f6,0x00000387, + 0x00000388,0x00000000,0x000200f9,0x00000389,0x000200f8,0x00000389,0x0004003d,0x00000045, + 0x0000038a,0x00000382,0x0004003d,0x00000045,0x0000038b,0x0000032b,0x000500b3,0x0000008c, + 0x0000038c,0x0000038a,0x0000038b,0x000400fa,0x0000038c,0x00000386,0x00000387,0x000200f8, + 0x00000386,0x0004003d,0x00000046,0x0000038e,0x000000a9,0x0004003d,0x00000045,0x0000038f, + 0x00000382,0x0004003d,0x00000045,0x00000390,0x00000377,0x00050050,0x00000046,0x00000391, + 0x0000038f,0x00000390,0x00050080,0x00000046,0x00000392,0x0000038e,0x00000391,0x0003003e, + 0x0000038d,0x00000392,0x0004003d,0x00000046,0x00000395,0x0000038d,0x0003003e,0x00000394, + 0x00000395,0x00050039,0x00000020,0x00000396,0x00000063,0x00000394,0x0003003e,0x00000393, + 0x00000396,0x0004003d,0x00000046,0x00000399,0x0000038d,0x0003003e,0x00000398,0x00000399, + 0x00050039,0x00000008,0x0000039a,0x00000067,0x00000398,0x0003003e,0x0000039b,0x000002bd, + 0x0003003e,0x0000039c,0x0000039a,0x00060039,0x00000008,0x0000039d,0x00000030,0x0000039b, + 0x0000039c,0x0003003e,0x00000397,0x0000039d,0x0004003d,0x00000020,0x0000039f,0x00000393, + 0x00040039,0x00000046,0x000003a0,0x00000048,0x0004006f,0x00000020,0x000003a1,0x000003a0, + 0x00050085,0x00000020,0x000003a2,0x0000039f,0x000003a1,0x0006000c,0x00000008,0x000003a3, + 0x00000001,0x00000042,0x000003a2,0x0003003e,0x0000039e,0x000003a3,0x0004003d,0x00000008, + 0x000003a5,0x0000039e,0x00050083,0x00000008,0x000003a6,0x0000035b,0x000003a5,0x0003003e, + 0x000003a7,0x000000b1,0x0003003e,0x000003a8,0x000003a6,0x00060039,0x00000008,0x000003a9, + 0x00000030,0x000003a7,0x000003a8,0x0004003d,0x00000008,0x000003aa,0x0000039e,0x000500ba, + 0x0000008c,0x000003ab,0x000003aa,0x000000bb,0x000600a9,0x00000008,0x000003ac,0x000003ab, + 0x000000bb,0x000000b1,0x00050085,0x00000008,0x000003ad,0x000003a9,0x000003ac,0x0003003e, + 0x000003a4,0x000003ad,0x0004003d,0x00000020,0x000003af,0x0000032a,0x0004003d,0x00000020, + 0x000003b0,0x00000393,0x00050094,0x00000008,0x000003b1,0x000003af,0x000003b0,0x0003003e, + 0x000003b3,0x000003b1,0x0003003e,0x000003b4,0x000003b2,0x00060039,0x00000008,0x000003b5, + 0x00000034,0x000003b3,0x000003b4,0x0003003e,0x000003b6,0x000000b1,0x0003003e,0x000003b7, + 0x000003b5,0x00060039,0x00000008,0x000003b8,0x00000030,0x000003b6,0x000003b7,0x0004003d, + 0x00000008,0x000003b9,0x000003a4,0x00050085,0x00000008,0x000003ba,0x000003b8,0x000003b9, + 0x0003003e,0x000003ae,0x000003ba,0x0004003d,0x00000020,0x000003bb,0x00000393,0x0004003d, + 0x00000008,0x000003bc,0x000003ae,0x0005008e,0x00000020,0x000003bd,0x000003bb,0x000003bc, + 0x0004003d,0x00000020,0x000003be,0x00000328,0x00050081,0x00000020,0x000003bf,0x000003be, + 0x000003bd,0x0003003e,0x00000328,0x000003bf,0x0004003d,0x00000008,0x000003c0,0x000003ae, + 0x0004003d,0x00000008,0x000003c1,0x0000032c,0x00050081,0x00000008,0x000003c2,0x000003c1, + 0x000003c0,0x0003003e,0x0000032c,0x000003c2,0x000200f9,0x00000388,0x000200f8,0x00000388, + 0x0004003d,0x00000045,0x000003c3,0x00000382,0x00050080,0x00000045,0x000003c4,0x000003c3, + 0x00000154,0x0003003e,0x00000382,0x000003c4,0x000200f9,0x00000385,0x000200f8,0x00000387, + 0x000200f9,0x0000037d,0x000200f8,0x0000037d,0x0004003d,0x00000045,0x000003c5,0x00000377, + 0x00050080,0x00000045,0x000003c6,0x000003c5,0x00000154,0x0003003e,0x00000377,0x000003c6, + 0x000200f9,0x0000037a,0x000200f8,0x0000037c,0x0004003d,0x00000008,0x000003c7,0x0000032c, + 0x000500ba,0x0000008c,0x000003c8,0x000003c7,0x000002bd,0x000300f7,0x000003ca,0x00000000, + 0x000400fa,0x000003c8,0x000003c9,0x000003ca,0x000200f8,0x000003c9,0x0004003d,0x00000008, + 0x000003cb,0x0000032c,0x0004003d,0x00000020,0x000003cc,0x00000328,0x00050050,0x00000020, + 0x000003cd,0x000003cb,0x000003cb,0x00050088,0x00000020,0x000003ce,0x000003cc,0x000003cd, + 0x0003003e,0x00000328,0x000003ce,0x000200f9,0x000003ca,0x000200f8,0x000003ca,0x0004003d, + 0x00000046,0x000003cf,0x000000a9,0x0004007c,0x00000069,0x000003d0,0x000003cf,0x0003003e, + 0x000003d1,0x000003d0,0x0004003d,0x00000020,0x000003d3,0x00000328,0x0003003e,0x000003d2, + 0x000003d3,0x00060039,0x00000002,0x000003d4,0x000000a6,0x000003d1,0x000003d2,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h b/gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h new file mode 100644 index 000000000..627b7dd9c --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h @@ -0,0 +1,426 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_RECONSTRUCT_AND_DILATE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000001e3,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000001cb, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666, + 0x6e495573,0x28323374,0x003b3166,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000011, + 0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000010,0x00000078,0x00040005, + 0x00000014,0x7474694a,0x00287265,0x00070005,0x00000016,0x69746f4d,0x65566e6f,0x726f7463, + 0x6c616353,0x00002865,0x00050005,0x0000001b,0x646e6552,0x69537265,0x0028657a,0x00060005, + 0x0000001d,0x70736944,0x5379616c,0x28657a69,0x00000000,0x00070005,0x00000022,0x64616f4c, + 0x75706e49,0x70654474,0x76286874,0x003b3269,0x00040005,0x00000021,0x50785069,0x0000736f, + 0x00090005,0x00000026,0x64616f4c,0x75706e49,0x746f4d74,0x566e6f69,0x6f746365,0x69762872, + 0x00003b32,0x00090005,0x00000025,0x44785069,0x74616c69,0x6f4d6465,0x6e6f6974,0x74636556, + 0x6f50726f,0x00000073,0x000b0005,0x0000002b,0x726f7453,0x6c694465,0x64657461,0x69746f4d, + 0x65566e6f,0x726f7463,0x69762873,0x66763b32,0x00003b32,0x00040005,0x00000029,0x50785069, + 0x0000736f,0x00030005,0x0000002a,0x006c6176,0x00090005,0x00000030,0x726f7453,0x6c694465, + 0x64657461,0x74706544,0x69762868,0x31663b32,0x0000003b,0x00040005,0x0000002e,0x50785069, + 0x0000736f,0x00030005,0x0000002f,0x006c6176,0x000e0005,0x00000034,0x61647055,0x65526574, + 0x736e6f63,0x63757274,0x44646574,0x68747065,0x76657250,0x73756f69,0x6d617246,0x69762865, + 0x31663b32,0x0000003b,0x00050005,0x00000032,0x53785069,0x6c706d61,0x00000065,0x00040005, + 0x00000033,0x70654466,0x00006874,0x00080005,0x00000039,0x696c6942,0x7261656e,0x706d6153, + 0x676e696c,0x61746144,0x00000000,0x00060006,0x00000039,0x00000000,0x66664f69,0x73746573, + 0x00000000,0x00060006,0x00000039,0x00000001,0x69655766,0x73746867,0x00000000,0x00060006, + 0x00000039,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005,0x0000003d,0x42746547, + 0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000, + 0x00030005,0x0000003b,0x00765566,0x00040005,0x0000003c,0x7a695369,0x00000065,0x00070005, + 0x00000043,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x00000041, + 0x00736f70,0x00040005,0x00000042,0x657a6973,0x00000000,0x00090005,0x00000047,0x706d6f43, + 0x48657475,0x736f5072,0x6d6f7246,0x6f50724c,0x69762873,0x00003b32,0x00050005,0x00000046, + 0x4c785069,0x736f5072,0x00000000,0x000c0005,0x0000004e,0x6f636552,0x7274736e,0x50746375, + 0x44766572,0x68747065,0x32697628,0x3b31663b,0x3b326676,0x3b326976,0x00000000,0x00040005, + 0x0000004a,0x50785069,0x0000736f,0x00040005,0x0000004b,0x70654466,0x00006874,0x00060005, + 0x0000004c,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00060005,0x0000004d,0x44785069, + 0x68747065,0x657a6953,0x00000000,0x000b0005,0x00000055,0x646e6946,0x7261654e,0x44747365, + 0x68747065,0x32697628,0x3269763b,0x3b31663b,0x3b326976,0x00000000,0x00040005,0x00000051, + 0x50785069,0x0000736f,0x00040005,0x00000052,0x53785069,0x00657a69,0x00060005,0x00000053, + 0x61654e66,0x74736572,0x74706544,0x00000068,0x00070005,0x00000054,0x61654e66,0x74736572, + 0x74706544,0x6f6f4368,0x00006472,0x00090005,0x00000059,0x6f636552,0x7274736e,0x41746375, + 0x6944646e,0x6574616c,0x32697628,0x0000003b,0x00050005,0x00000058,0x4c785069,0x736f5072, + 0x00000000,0x00040005,0x00000065,0x49466263,0x0000745f,0x00060006,0x00000065,0x00000000, + 0x646e6572,0x69537265,0x0000657a,0x00060006,0x00000065,0x00000001,0x70736964,0x5379616c, + 0x00657a69,0x00070006,0x00000065,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063, + 0x00060006,0x00000065,0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x00000065, + 0x00000004,0x656d6163,0x61466172,0x00000072,0x00080006,0x00000065,0x00000005,0x63737075, + 0x72656c61,0x67726154,0x69537465,0x0000657a,0x00050006,0x00000065,0x00000006,0x65646f4d, + 0x00000000,0x00050006,0x00000065,0x00000007,0x65736572,0x00000074,0x00080006,0x00000065, + 0x00000008,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x00000065, + 0x00000009,0x746c6564,0x6d695461,0x00000065,0x00090006,0x00000065,0x0000000a,0x4c445548, + 0x41737365,0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006,0x00000065,0x0000000b, + 0x74736964,0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x00000065,0x0000000c, + 0x6974706f,0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006,0x00000065,0x0000000d, + 0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x00000065, + 0x0000000e,0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006,0x00000065,0x0000000f, + 0x5278616d,0x65646e65,0x7a695372,0x00000065,0x00090006,0x00000065,0x00000010,0x6974706f, + 0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x00000065,0x00000011, + 0x496d754e,0x6174736e,0x7365636e,0x00000000,0x00090006,0x00000065,0x00000012,0x65746e69, + 0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006,0x00000065,0x00000013, + 0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x00000065, + 0x00000014,0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x00000065,0x00000015, + 0x6b636162,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006, + 0x00000065,0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x00000065, + 0x00000017,0x6e615466,0x666c6148,0x00564f46,0x00050006,0x00000065,0x00000018,0x6461705f, + 0x00000031,0x00050006,0x00000065,0x00000019,0x74694a66,0x00726574,0x00080006,0x00000065, + 0x0000001a,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x00000067, + 0x49466263,0x00000000,0x00060005,0x00000080,0x6e695f72,0x5f747570,0x74706564,0x00000068, + 0x00070005,0x00000088,0x63725366,0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00080005, + 0x00000089,0x6e695f72,0x5f747570,0x69746f6d,0x765f6e6f,0x6f746365,0x00007372,0x00060005, + 0x0000008e,0x4d765566,0x6f69746f,0x6365566e,0x00726f74,0x00090005,0x00000097,0x645f7772, + 0x74616c69,0x6d5f6465,0x6f69746f,0x65765f6e,0x726f7463,0x00000073,0x00070005,0x000000a1, + 0x645f7772,0x74616c69,0x645f6465,0x68747065,0x00000000,0x00040005,0x000000a7,0x70654475, + 0x00006874,0x00040005,0x000000a8,0x61726170,0x0000006d,0x000c0005,0x000000ad,0x725f7772, + 0x6e6f6365,0x75727473,0x64657463,0x7065645f,0x705f6874,0x69766572,0x5f73756f,0x6d617266, + 0x00000065,0x00050005,0x000000b4,0x53785066,0x6c706d61,0x00000065,0x00040005,0x000000bd, + 0x61746164,0x00000000,0x00040005,0x000000c3,0x46785066,0x00636172,0x00040005,0x000000c4, + 0x61726170,0x0000006d,0x00060005,0x000000fa,0x63725366,0x7474694a,0x64657265,0x00736f50, + 0x00050005,0x00000101,0x50724c66,0x6e49736f,0x00007248,0x00050005,0x00000109,0x48785069, + 0x736f5072,0x00000000,0x00030005,0x0000011a,0x00765566,0x00060005,0x00000122,0x70655266, + 0x656a6f72,0x64657463,0x00007655,0x00060005,0x00000126,0x696c6962,0x7261656e,0x6f666e49, + 0x00000000,0x00040005,0x00000128,0x61726170,0x0000006d,0x00040005,0x0000012a,0x61726170, + 0x0000006d,0x00060005,0x0000012d,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005, + 0x00000136,0x66664f69,0x00746573,0x00040005,0x0000013a,0x69655766,0x00746867,0x00050005, + 0x00000143,0x6f745369,0x6f506572,0x00000073,0x00040005,0x00000148,0x61726170,0x0000006d, + 0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005,0x0000014f,0x61726170,0x0000006d, + 0x00040005,0x00000151,0x61726170,0x0000006d,0x00060005,0x00000156,0x6d615369,0x49656c70, + 0x7865646e,0x00000000,0x00040005,0x0000015f,0x736f5069,0x00000000,0x00050005,0x0000016c, + 0x65646e69,0x6c626178,0x00000065,0x00040005,0x00000172,0x74706564,0x00000068,0x00040005, + 0x00000174,0x61726170,0x0000006d,0x00040005,0x00000184,0x736f5069,0x00000000,0x00050005, + 0x00000187,0x65646e69,0x6c626178,0x00000065,0x00040005,0x0000018b,0x61726170,0x0000006d, + 0x00040005,0x0000018d,0x61726170,0x0000006d,0x00050005,0x00000192,0x44644e66,0x68747065, + 0x00000000,0x00060005,0x000001a0,0x6c694466,0x64657461,0x74706544,0x00000068,0x00070005, + 0x000001a1,0x61654e69,0x74736572,0x74706544,0x6f6f4368,0x00006472,0x00040005,0x000001a2, + 0x61726170,0x0000006d,0x00040005,0x000001a4,0x61726170,0x0000006d,0x00040005,0x000001a5, + 0x61726170,0x0000006d,0x00040005,0x000001a6,0x61726170,0x0000006d,0x00050005,0x000001aa, + 0x6d615369,0x50656c70,0x0000736f,0x00040005,0x000001ab,0x61726170,0x0000006d,0x00070005, + 0x000001ae,0x746f4d69,0x566e6f69,0x6f746365,0x736f5072,0x00000000,0x00040005,0x000001af, + 0x61726170,0x0000006d,0x00080005,0x000001b2,0x6c694466,0x64657461,0x69746f4d,0x65566e6f, + 0x726f7463,0x00000000,0x00040005,0x000001b3,0x61726170,0x0000006d,0x00040005,0x000001b6, + 0x61726170,0x0000006d,0x00040005,0x000001b8,0x61726170,0x0000006d,0x00040005,0x000001bb, + 0x61726170,0x0000006d,0x00040005,0x000001bd,0x61726170,0x0000006d,0x00040005,0x000001c1, + 0x61726170,0x0000006d,0x00040005,0x000001c3,0x61726170,0x0000006d,0x00040005,0x000001c5, + 0x61726170,0x0000006d,0x00040005,0x000001c7,0x61726170,0x0000006d,0x00080005,0x000001cb, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x000001cf, + 0x61726170,0x0000006d,0x00060005,0x000001d6,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x00000065,0x00000002,0x00050048,0x00000065,0x00000000,0x00000023,0x00000000, + 0x00050048,0x00000065,0x00000001,0x00000023,0x00000008,0x00050048,0x00000065,0x00000002, + 0x00000023,0x00000010,0x00050048,0x00000065,0x00000003,0x00000023,0x00000018,0x00050048, + 0x00000065,0x00000004,0x00000023,0x0000001c,0x00050048,0x00000065,0x00000005,0x00000023, + 0x00000020,0x00050048,0x00000065,0x00000006,0x00000023,0x00000028,0x00050048,0x00000065, + 0x00000007,0x00000023,0x0000002c,0x00050048,0x00000065,0x00000008,0x00000023,0x00000030, + 0x00050048,0x00000065,0x00000009,0x00000023,0x00000040,0x00050048,0x00000065,0x0000000a, + 0x00000023,0x00000044,0x00050048,0x00000065,0x0000000b,0x00000023,0x00000048,0x00050048, + 0x00000065,0x0000000c,0x00000023,0x00000050,0x00050048,0x00000065,0x0000000d,0x00000023, + 0x00000058,0x00050048,0x00000065,0x0000000e,0x00000023,0x0000005c,0x00050048,0x00000065, + 0x0000000f,0x00000023,0x00000060,0x00050048,0x00000065,0x00000010,0x00000023,0x00000068, + 0x00050048,0x00000065,0x00000011,0x00000023,0x0000006c,0x00050048,0x00000065,0x00000012, + 0x00000023,0x00000070,0x00050048,0x00000065,0x00000013,0x00000023,0x00000078,0x00050048, + 0x00000065,0x00000014,0x00000023,0x00000080,0x00050048,0x00000065,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x00000065,0x00000016,0x00000023,0x00000090,0x00050048,0x00000065, + 0x00000017,0x00000023,0x00000098,0x00050048,0x00000065,0x00000018,0x00000023,0x0000009c, + 0x00050048,0x00000065,0x00000019,0x00000023,0x000000a0,0x00050048,0x00000065,0x0000001a, + 0x00000023,0x000000a8,0x00040047,0x00000067,0x00000021,0x00000005,0x00040047,0x00000067, + 0x00000022,0x00000000,0x00040047,0x00000080,0x00000021,0x00000001,0x00040047,0x00000080, + 0x00000022,0x00000000,0x00040047,0x00000089,0x00000021,0x00000000,0x00040047,0x00000089, + 0x00000022,0x00000000,0x00040047,0x00000097,0x00000021,0x00000003,0x00040047,0x00000097, + 0x00000022,0x00000000,0x00040047,0x000000a1,0x00000021,0x00000004,0x00040047,0x000000a1, + 0x00000022,0x00000000,0x00040047,0x000000ad,0x00000021,0x00000002,0x00040047,0x000000ad, + 0x00000022,0x00000000,0x00040047,0x000001cb,0x0000000b,0x0000001c,0x00040047,0x000001d6, + 0x00000021,0x000003e8,0x00040047,0x000001d6,0x00000022,0x00000000,0x00040047,0x000001e2, + 0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000008, + 0x00000020,0x00000000,0x00040021,0x00000009,0x00000008,0x00000007,0x00040017,0x0000000d, + 0x00000006,0x00000002,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f, + 0x0000000d,0x0000000e,0x00030021,0x00000013,0x0000000d,0x00040015,0x00000018,0x00000020, + 0x00000001,0x00040017,0x00000019,0x00000018,0x00000002,0x00030021,0x0000001a,0x00000019, + 0x00040020,0x0000001f,0x00000007,0x00000019,0x00040021,0x00000020,0x00000006,0x0000001f, + 0x00040021,0x00000024,0x0000000d,0x0000001f,0x00050021,0x00000028,0x00000002,0x0000001f, + 0x0000000e,0x00050021,0x0000002d,0x00000002,0x0000001f,0x00000007,0x0004002b,0x00000008, + 0x00000036,0x00000004,0x0004001c,0x00000037,0x00000019,0x00000036,0x0004001c,0x00000038, + 0x00000006,0x00000036,0x0005001e,0x00000039,0x00000037,0x00000038,0x00000019,0x00050021, + 0x0000003a,0x00000039,0x0000000e,0x0000001f,0x00020014,0x0000003f,0x00050021,0x00000040, + 0x0000003f,0x0000001f,0x0000001f,0x00040021,0x00000045,0x00000019,0x0000001f,0x00070021, + 0x00000049,0x00000002,0x0000001f,0x00000007,0x0000000e,0x0000001f,0x00070021,0x00000050, + 0x00000002,0x0000001f,0x0000001f,0x00000007,0x0000001f,0x00040021,0x00000057,0x00000002, + 0x0000001f,0x00040017,0x00000063,0x00000006,0x00000004,0x00040017,0x00000064,0x00000006, + 0x00000003,0x001d001e,0x00000065,0x00000019,0x00000019,0x0000000d,0x00000006,0x00000006, + 0x00000019,0x00000018,0x00000018,0x00000063,0x00000006,0x00000018,0x00000019,0x0000000d, + 0x00000018,0x00000008,0x00000019,0x00000018,0x00000018,0x00000019,0x00000019,0x00000064, + 0x00000008,0x0000000d,0x00000006,0x00000018,0x0000000d,0x0000000d,0x00040020,0x00000066, + 0x00000002,0x00000065,0x0004003b,0x00000066,0x00000067,0x00000002,0x0004002b,0x00000018, + 0x00000068,0x00000019,0x00040020,0x00000069,0x00000002,0x0000000d,0x0004002b,0x00000018, + 0x0000006e,0x0000001a,0x0004002b,0x00000018,0x00000073,0x00000000,0x00040020,0x00000074, + 0x00000002,0x00000019,0x0004002b,0x00000018,0x00000079,0x00000001,0x00090019,0x0000007e, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000007f,0x00000000,0x0000007e,0x0004003b,0x0000007f,0x00000080,0x00000000,0x0004002b, + 0x00000008,0x00000084,0x00000000,0x0004003b,0x0000007f,0x00000089,0x00000000,0x00090019, + 0x00000095,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000007, + 0x00040020,0x00000096,0x00000000,0x00000095,0x0004003b,0x00000096,0x00000097,0x00000000, + 0x0004002b,0x00000006,0x0000009b,0x00000000,0x00090019,0x0000009f,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000003,0x00040020,0x000000a0,0x00000000, + 0x0000009f,0x0004003b,0x000000a0,0x000000a1,0x00000000,0x00040020,0x000000a6,0x00000007, + 0x00000008,0x00090019,0x000000ab,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000021,0x00040020,0x000000ac,0x00000000,0x000000ab,0x0004003b,0x000000ac, + 0x000000ad,0x00000000,0x00040020,0x000000b0,0x0000000b,0x00000008,0x0004002b,0x00000008, + 0x000000b2,0x00000001,0x0004002b,0x00000006,0x000000b9,0x3f000000,0x0005002c,0x0000000d, + 0x000000ba,0x000000b9,0x000000b9,0x00040020,0x000000bc,0x00000007,0x00000039,0x0004002b, + 0x00000018,0x000000be,0x00000002,0x0005002c,0x00000019,0x000000c7,0x00000073,0x00000073, + 0x0005002c,0x00000019,0x000000c9,0x00000079,0x00000073,0x0005002c,0x00000019,0x000000cb, + 0x00000073,0x00000079,0x0004002b,0x00000018,0x000000cd,0x00000003,0x0005002c,0x00000019, + 0x000000ce,0x00000079,0x00000079,0x0004002b,0x00000006,0x000000d0,0x3f800000,0x00040017, + 0x000000f1,0x00000008,0x00000002,0x00040017,0x000000f5,0x0000003f,0x00000002,0x0004002b, + 0x00000006,0x00000115,0x3dcccccd,0x00040020,0x0000012c,0x00000007,0x00000018,0x0004002b, + 0x00000018,0x00000134,0x00000004,0x0004002b,0x00000006,0x0000013f,0x3a83126f,0x0004002b, + 0x00000018,0x0000015d,0x00000009,0x0004002b,0x00000008,0x00000161,0x00000009,0x0004001c, + 0x00000162,0x00000019,0x00000161,0x0004002b,0x00000018,0x00000163,0xffffffff,0x0005002c, + 0x00000019,0x00000164,0x00000073,0x00000163,0x0005002c,0x00000019,0x00000165,0x00000163, + 0x00000073,0x0005002c,0x00000019,0x00000166,0x00000163,0x00000079,0x0005002c,0x00000019, + 0x00000167,0x00000163,0x00000163,0x0005002c,0x00000019,0x00000168,0x00000079,0x00000163, + 0x000c002c,0x00000162,0x00000169,0x000000c7,0x000000c9,0x000000cb,0x00000164,0x00000165, + 0x00000166,0x000000ce,0x00000167,0x00000168,0x00040020,0x0000016b,0x00000007,0x00000162, + 0x0004001c,0x00000170,0x00000006,0x00000161,0x00040020,0x00000171,0x00000007,0x00000170, + 0x00040017,0x000001c9,0x00000008,0x00000003,0x00040020,0x000001ca,0x00000001,0x000001c9, + 0x0004003b,0x000001ca,0x000001cb,0x00000001,0x0004002b,0x00000006,0x000001d1,0x387fda40, + 0x0004002b,0x00000006,0x000001d2,0x477fe000,0x0004002b,0x00000006,0x000001d3,0x37801002, + 0x0002001a,0x000001d4,0x00040020,0x000001d5,0x00000000,0x000001d4,0x0004003b,0x000001d5, + 0x000001d6,0x00000000,0x0004002b,0x00000006,0x000001d7,0x7f7fffff,0x0004002b,0x00000006, + 0x000001d8,0x00800000,0x0004002b,0x00000008,0x000001d9,0x00000020,0x0004002b,0x00000008, + 0x000001da,0x00000010,0x0004002b,0x00000008,0x000001db,0x00000005,0x0004002b,0x00000008, + 0x000001dc,0x0000000a,0x0004002b,0x00000008,0x000001dd,0x80000000,0x0004002b,0x00000008, + 0x000001de,0x0000001f,0x0004002b,0x00000008,0x000001df,0x000003ff,0x0004002b,0x00000008, + 0x000001e0,0x00000015,0x0004002b,0x00000008,0x000001e1,0x00000008,0x0006002c,0x000001c9, + 0x000001e2,0x000001e1,0x000001e1,0x000000b2,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000001f,0x000001cf,0x00000007,0x0004003d, + 0x000001c9,0x000001cc,0x000001cb,0x0007004f,0x000000f1,0x000001cd,0x000001cc,0x000001cc, + 0x00000000,0x00000001,0x0004007c,0x00000019,0x000001ce,0x000001cd,0x0003003e,0x000001cf, + 0x000001ce,0x00050039,0x00000002,0x000001d0,0x00000059,0x000001cf,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x0000005b,0x0000000a,0x0004007c,0x00000008, + 0x0000005c,0x0000005b,0x000200fe,0x0000005c,0x00010038,0x00050036,0x0000000d,0x00000011, + 0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x0000000d,0x0000005f,0x00000010,0x0006000c,0x0000000d,0x00000060,0x00000001,0x0000000a, + 0x0000005f,0x000200fe,0x00000060,0x00010038,0x00050036,0x0000000d,0x00000014,0x00000000, + 0x00000013,0x000200f8,0x00000015,0x00050041,0x00000069,0x0000006a,0x00000067,0x00000068, + 0x0004003d,0x0000000d,0x0000006b,0x0000006a,0x000200fe,0x0000006b,0x00010038,0x00050036, + 0x0000000d,0x00000016,0x00000000,0x00000013,0x000200f8,0x00000017,0x00050041,0x00000069, + 0x0000006f,0x00000067,0x0000006e,0x0004003d,0x0000000d,0x00000070,0x0000006f,0x000200fe, + 0x00000070,0x00010038,0x00050036,0x00000019,0x0000001b,0x00000000,0x0000001a,0x000200f8, + 0x0000001c,0x00050041,0x00000074,0x00000075,0x00000067,0x00000073,0x0004003d,0x00000019, + 0x00000076,0x00000075,0x000200fe,0x00000076,0x00010038,0x00050036,0x00000019,0x0000001d, + 0x00000000,0x0000001a,0x000200f8,0x0000001e,0x00050041,0x00000074,0x0000007a,0x00000067, + 0x00000079,0x0004003d,0x00000019,0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038, + 0x00050036,0x00000006,0x00000022,0x00000000,0x00000020,0x00030037,0x0000001f,0x00000021, + 0x000200f8,0x00000023,0x0004003d,0x0000007e,0x00000081,0x00000080,0x0004003d,0x00000019, + 0x00000082,0x00000021,0x0007005f,0x00000063,0x00000083,0x00000081,0x00000082,0x00000002, + 0x00000073,0x00050051,0x00000006,0x00000085,0x00000083,0x00000000,0x000200fe,0x00000085, + 0x00010038,0x00050036,0x0000000d,0x00000026,0x00000000,0x00000024,0x00030037,0x0000001f, + 0x00000025,0x000200f8,0x00000027,0x0004003b,0x0000000e,0x00000088,0x00000007,0x0004003b, + 0x0000000e,0x0000008e,0x00000007,0x0004003d,0x0000007e,0x0000008a,0x00000089,0x0004003d, + 0x00000019,0x0000008b,0x00000025,0x0007005f,0x00000063,0x0000008c,0x0000008a,0x0000008b, + 0x00000002,0x00000073,0x0007004f,0x0000000d,0x0000008d,0x0000008c,0x0000008c,0x00000000, + 0x00000001,0x0003003e,0x00000088,0x0000008d,0x0004003d,0x0000000d,0x0000008f,0x00000088, + 0x00040039,0x0000000d,0x00000090,0x00000016,0x00050085,0x0000000d,0x00000091,0x0000008f, + 0x00000090,0x0003003e,0x0000008e,0x00000091,0x0004003d,0x0000000d,0x00000092,0x0000008e, + 0x000200fe,0x00000092,0x00010038,0x00050036,0x00000002,0x0000002b,0x00000000,0x00000028, + 0x00030037,0x0000001f,0x00000029,0x00030037,0x0000000e,0x0000002a,0x000200f8,0x0000002c, + 0x0004003d,0x00000095,0x00000098,0x00000097,0x0004003d,0x00000019,0x00000099,0x00000029, + 0x0004003d,0x0000000d,0x0000009a,0x0000002a,0x00050051,0x00000006,0x0000009c,0x0000009a, + 0x00000000,0x00050051,0x00000006,0x0000009d,0x0000009a,0x00000001,0x00070050,0x00000063, + 0x0000009e,0x0000009c,0x0000009d,0x0000009b,0x0000009b,0x00040063,0x00000098,0x00000099, + 0x0000009e,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000030,0x00000000,0x0000002d, + 0x00030037,0x0000001f,0x0000002e,0x00030037,0x00000007,0x0000002f,0x000200f8,0x00000031, + 0x0004003d,0x0000009f,0x000000a2,0x000000a1,0x0004003d,0x00000019,0x000000a3,0x0000002e, + 0x0004003d,0x00000006,0x000000a4,0x0000002f,0x00070050,0x00000063,0x000000a5,0x000000a4, + 0x0000009b,0x0000009b,0x0000009b,0x00040063,0x000000a2,0x000000a3,0x000000a5,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000034,0x00000000,0x0000002d,0x00030037,0x0000001f, + 0x00000032,0x00030037,0x00000007,0x00000033,0x000200f8,0x00000035,0x0004003b,0x000000a6, + 0x000000a7,0x00000007,0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003d,0x00000006, + 0x000000a9,0x00000033,0x0003003e,0x000000a8,0x000000a9,0x00050039,0x00000008,0x000000aa, + 0x0000000b,0x000000a8,0x0003003e,0x000000a7,0x000000aa,0x0004003d,0x00000019,0x000000ae, + 0x00000032,0x0004003d,0x00000008,0x000000af,0x000000a7,0x0006003c,0x000000b0,0x000000b1, + 0x000000ad,0x000000ae,0x00000084,0x000700ef,0x00000008,0x000000b3,0x000000b1,0x000000b2, + 0x00000084,0x000000af,0x000100fd,0x00010038,0x00050036,0x00000039,0x0000003d,0x00000000, + 0x0000003a,0x00030037,0x0000000e,0x0000003b,0x00030037,0x0000001f,0x0000003c,0x000200f8, + 0x0000003e,0x0004003b,0x0000000e,0x000000b4,0x00000007,0x0004003b,0x000000bc,0x000000bd, + 0x00000007,0x0004003b,0x0000000e,0x000000c3,0x00000007,0x0004003b,0x0000000e,0x000000c4, + 0x00000007,0x0004003d,0x0000000d,0x000000b5,0x0000003b,0x0004003d,0x00000019,0x000000b6, + 0x0000003c,0x0004006f,0x0000000d,0x000000b7,0x000000b6,0x00050085,0x0000000d,0x000000b8, + 0x000000b5,0x000000b7,0x00050083,0x0000000d,0x000000bb,0x000000b8,0x000000ba,0x0003003e, + 0x000000b4,0x000000bb,0x0004003d,0x0000000d,0x000000bf,0x000000b4,0x0006000c,0x0000000d, + 0x000000c0,0x00000001,0x00000008,0x000000bf,0x0004006e,0x00000019,0x000000c1,0x000000c0, + 0x00050041,0x0000001f,0x000000c2,0x000000bd,0x000000be,0x0003003e,0x000000c2,0x000000c1, + 0x0004003d,0x0000000d,0x000000c5,0x000000b4,0x0003003e,0x000000c4,0x000000c5,0x00050039, + 0x0000000d,0x000000c6,0x00000011,0x000000c4,0x0003003e,0x000000c3,0x000000c6,0x00060041, + 0x0000001f,0x000000c8,0x000000bd,0x00000073,0x00000073,0x0003003e,0x000000c8,0x000000c7, + 0x00060041,0x0000001f,0x000000ca,0x000000bd,0x00000073,0x00000079,0x0003003e,0x000000ca, + 0x000000c9,0x00060041,0x0000001f,0x000000cc,0x000000bd,0x00000073,0x000000be,0x0003003e, + 0x000000cc,0x000000cb,0x00060041,0x0000001f,0x000000cf,0x000000bd,0x00000073,0x000000cd, + 0x0003003e,0x000000cf,0x000000ce,0x00050041,0x00000007,0x000000d1,0x000000c3,0x00000084, + 0x0004003d,0x00000006,0x000000d2,0x000000d1,0x00050083,0x00000006,0x000000d3,0x000000d0, + 0x000000d2,0x00050041,0x00000007,0x000000d4,0x000000c3,0x000000b2,0x0004003d,0x00000006, + 0x000000d5,0x000000d4,0x00050083,0x00000006,0x000000d6,0x000000d0,0x000000d5,0x00050085, + 0x00000006,0x000000d7,0x000000d3,0x000000d6,0x00060041,0x00000007,0x000000d8,0x000000bd, + 0x00000079,0x00000073,0x0003003e,0x000000d8,0x000000d7,0x00050041,0x00000007,0x000000d9, + 0x000000c3,0x00000084,0x0004003d,0x00000006,0x000000da,0x000000d9,0x00050041,0x00000007, + 0x000000db,0x000000c3,0x000000b2,0x0004003d,0x00000006,0x000000dc,0x000000db,0x00050083, + 0x00000006,0x000000dd,0x000000d0,0x000000dc,0x00050085,0x00000006,0x000000de,0x000000da, + 0x000000dd,0x00060041,0x00000007,0x000000df,0x000000bd,0x00000079,0x00000079,0x0003003e, + 0x000000df,0x000000de,0x00050041,0x00000007,0x000000e0,0x000000c3,0x00000084,0x0004003d, + 0x00000006,0x000000e1,0x000000e0,0x00050083,0x00000006,0x000000e2,0x000000d0,0x000000e1, + 0x00050041,0x00000007,0x000000e3,0x000000c3,0x000000b2,0x0004003d,0x00000006,0x000000e4, + 0x000000e3,0x00050085,0x00000006,0x000000e5,0x000000e2,0x000000e4,0x00060041,0x00000007, + 0x000000e6,0x000000bd,0x00000079,0x000000be,0x0003003e,0x000000e6,0x000000e5,0x00050041, + 0x00000007,0x000000e7,0x000000c3,0x00000084,0x0004003d,0x00000006,0x000000e8,0x000000e7, + 0x00050041,0x00000007,0x000000e9,0x000000c3,0x000000b2,0x0004003d,0x00000006,0x000000ea, + 0x000000e9,0x00050085,0x00000006,0x000000eb,0x000000e8,0x000000ea,0x00060041,0x00000007, + 0x000000ec,0x000000bd,0x00000079,0x000000cd,0x0003003e,0x000000ec,0x000000eb,0x0004003d, + 0x00000039,0x000000ed,0x000000bd,0x000200fe,0x000000ed,0x00010038,0x00050036,0x0000003f, + 0x00000043,0x00000000,0x00000040,0x00030037,0x0000001f,0x00000041,0x00030037,0x0000001f, + 0x00000042,0x000200f8,0x00000044,0x0004003d,0x00000019,0x000000f0,0x00000041,0x0004007c, + 0x000000f1,0x000000f2,0x000000f0,0x0004003d,0x00000019,0x000000f3,0x00000042,0x0004007c, + 0x000000f1,0x000000f4,0x000000f3,0x000500b0,0x000000f5,0x000000f6,0x000000f2,0x000000f4, + 0x0004009b,0x0000003f,0x000000f7,0x000000f6,0x000200fe,0x000000f7,0x00010038,0x00050036, + 0x00000019,0x00000047,0x00000000,0x00000045,0x00030037,0x0000001f,0x00000046,0x000200f8, + 0x00000048,0x0004003b,0x0000000e,0x000000fa,0x00000007,0x0004003b,0x0000000e,0x00000101, + 0x00000007,0x0004003b,0x0000001f,0x00000109,0x00000007,0x0004003d,0x00000019,0x000000fb, + 0x00000046,0x0004006f,0x0000000d,0x000000fc,0x000000fb,0x00050050,0x0000000d,0x000000fd, + 0x000000b9,0x000000b9,0x00050081,0x0000000d,0x000000fe,0x000000fc,0x000000fd,0x00040039, + 0x0000000d,0x000000ff,0x00000014,0x00050083,0x0000000d,0x00000100,0x000000fe,0x000000ff, + 0x0003003e,0x000000fa,0x00000100,0x0004003d,0x0000000d,0x00000102,0x000000fa,0x00040039, + 0x00000019,0x00000103,0x0000001b,0x0004006f,0x0000000d,0x00000104,0x00000103,0x00050088, + 0x0000000d,0x00000105,0x00000102,0x00000104,0x00040039,0x00000019,0x00000106,0x0000001d, + 0x0004006f,0x0000000d,0x00000107,0x00000106,0x00050085,0x0000000d,0x00000108,0x00000105, + 0x00000107,0x0003003e,0x00000101,0x00000108,0x0004003d,0x0000000d,0x0000010a,0x00000101, + 0x0006000c,0x0000000d,0x0000010b,0x00000001,0x00000008,0x0000010a,0x0004006e,0x00000019, + 0x0000010c,0x0000010b,0x0003003e,0x00000109,0x0000010c,0x0004003d,0x00000019,0x0000010d, + 0x00000109,0x000200fe,0x0000010d,0x00010038,0x00050036,0x00000002,0x0000004e,0x00000000, + 0x00000049,0x00030037,0x0000001f,0x0000004a,0x00030037,0x00000007,0x0000004b,0x00030037, + 0x0000000e,0x0000004c,0x00030037,0x0000001f,0x0000004d,0x000200f8,0x0000004f,0x0004003b, + 0x0000000e,0x0000011a,0x00000007,0x0004003b,0x0000000e,0x00000122,0x00000007,0x0004003b, + 0x000000bc,0x00000126,0x00000007,0x0004003b,0x0000000e,0x00000128,0x00000007,0x0004003b, + 0x0000001f,0x0000012a,0x00000007,0x0004003b,0x0000012c,0x0000012d,0x00000007,0x0004003b, + 0x0000001f,0x00000136,0x00000007,0x0004003b,0x00000007,0x0000013a,0x00000007,0x0004003b, + 0x0000001f,0x00000143,0x00000007,0x0004003b,0x0000001f,0x00000148,0x00000007,0x0004003b, + 0x0000001f,0x0000014a,0x00000007,0x0004003b,0x0000001f,0x0000014f,0x00000007,0x0004003b, + 0x00000007,0x00000151,0x00000007,0x0004003d,0x0000000d,0x00000110,0x0000004c,0x00040039, + 0x00000019,0x00000111,0x0000001d,0x0004006f,0x0000000d,0x00000112,0x00000111,0x00050085, + 0x0000000d,0x00000113,0x00000110,0x00000112,0x0006000c,0x00000006,0x00000114,0x00000001, + 0x00000042,0x00000113,0x000500ba,0x0000003f,0x00000116,0x00000114,0x00000115,0x000600a9, + 0x00000006,0x00000117,0x00000116,0x000000d0,0x0000009b,0x0004003d,0x0000000d,0x00000118, + 0x0000004c,0x0005008e,0x0000000d,0x00000119,0x00000118,0x00000117,0x0003003e,0x0000004c, + 0x00000119,0x0004003d,0x00000019,0x0000011b,0x0000004a,0x0004006f,0x0000000d,0x0000011c, + 0x0000011b,0x00050050,0x0000000d,0x0000011d,0x000000b9,0x000000b9,0x00050081,0x0000000d, + 0x0000011e,0x0000011c,0x0000011d,0x0004003d,0x00000019,0x0000011f,0x0000004d,0x0004006f, + 0x0000000d,0x00000120,0x0000011f,0x00050088,0x0000000d,0x00000121,0x0000011e,0x00000120, + 0x0003003e,0x0000011a,0x00000121,0x0004003d,0x0000000d,0x00000123,0x0000011a,0x0004003d, + 0x0000000d,0x00000124,0x0000004c,0x00050081,0x0000000d,0x00000125,0x00000123,0x00000124, + 0x0003003e,0x00000122,0x00000125,0x00040039,0x00000019,0x00000127,0x0000001b,0x0004003d, + 0x0000000d,0x00000129,0x00000122,0x0003003e,0x00000128,0x00000129,0x0003003e,0x0000012a, + 0x00000127,0x00060039,0x00000039,0x0000012b,0x0000003d,0x00000128,0x0000012a,0x0003003e, + 0x00000126,0x0000012b,0x0003003e,0x0000012d,0x00000073,0x000200f9,0x0000012e,0x000200f8, + 0x0000012e,0x000400f6,0x00000130,0x00000131,0x00000000,0x000200f9,0x00000132,0x000200f8, + 0x00000132,0x0004003d,0x00000018,0x00000133,0x0000012d,0x000500b1,0x0000003f,0x00000135, + 0x00000133,0x00000134,0x000400fa,0x00000135,0x0000012f,0x00000130,0x000200f8,0x0000012f, + 0x0004003d,0x00000018,0x00000137,0x0000012d,0x00060041,0x0000001f,0x00000138,0x00000126, + 0x00000073,0x00000137,0x0004003d,0x00000019,0x00000139,0x00000138,0x0003003e,0x00000136, + 0x00000139,0x0004003d,0x00000018,0x0000013b,0x0000012d,0x00060041,0x00000007,0x0000013c, + 0x00000126,0x00000079,0x0000013b,0x0004003d,0x00000006,0x0000013d,0x0000013c,0x0003003e, + 0x0000013a,0x0000013d,0x0004003d,0x00000006,0x0000013e,0x0000013a,0x000500ba,0x0000003f, + 0x00000140,0x0000013e,0x0000013f,0x000300f7,0x00000142,0x00000000,0x000400fa,0x00000140, + 0x00000141,0x00000142,0x000200f8,0x00000141,0x00050041,0x0000001f,0x00000144,0x00000126, + 0x000000be,0x0004003d,0x00000019,0x00000145,0x00000144,0x0004003d,0x00000019,0x00000146, + 0x00000136,0x00050080,0x00000019,0x00000147,0x00000145,0x00000146,0x0003003e,0x00000143, + 0x00000147,0x0004003d,0x00000019,0x00000149,0x00000143,0x0003003e,0x00000148,0x00000149, + 0x0004003d,0x00000019,0x0000014b,0x0000004d,0x0003003e,0x0000014a,0x0000014b,0x00060039, + 0x0000003f,0x0000014c,0x00000043,0x00000148,0x0000014a,0x000300f7,0x0000014e,0x00000000, + 0x000400fa,0x0000014c,0x0000014d,0x0000014e,0x000200f8,0x0000014d,0x0004003d,0x00000019, + 0x00000150,0x00000143,0x0003003e,0x0000014f,0x00000150,0x0004003d,0x00000006,0x00000152, + 0x0000004b,0x0003003e,0x00000151,0x00000152,0x00060039,0x00000002,0x00000153,0x00000034, + 0x0000014f,0x00000151,0x000200f9,0x0000014e,0x000200f8,0x0000014e,0x000200f9,0x00000142, + 0x000200f8,0x00000142,0x000200f9,0x00000131,0x000200f8,0x00000131,0x0004003d,0x00000018, + 0x00000154,0x0000012d,0x00050080,0x00000018,0x00000155,0x00000154,0x00000079,0x0003003e, + 0x0000012d,0x00000155,0x000200f9,0x0000012e,0x000200f8,0x00000130,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000055,0x00000000,0x00000050,0x00030037,0x0000001f,0x00000051, + 0x00030037,0x0000001f,0x00000052,0x00030037,0x00000007,0x00000053,0x00030037,0x0000001f, + 0x00000054,0x000200f8,0x00000056,0x0004003b,0x0000012c,0x00000156,0x00000007,0x0004003b, + 0x0000001f,0x0000015f,0x00000007,0x0004003b,0x0000016b,0x0000016c,0x00000007,0x0004003b, + 0x00000171,0x00000172,0x00000007,0x0004003b,0x0000001f,0x00000174,0x00000007,0x0004003b, + 0x0000001f,0x00000184,0x00000007,0x0004003b,0x0000016b,0x00000187,0x00000007,0x0004003b, + 0x0000001f,0x0000018b,0x00000007,0x0004003b,0x0000001f,0x0000018d,0x00000007,0x0004003b, + 0x00000007,0x00000192,0x00000007,0x0003003e,0x00000156,0x00000073,0x0003003e,0x00000156, + 0x00000073,0x000200f9,0x00000157,0x000200f8,0x00000157,0x000400f6,0x00000159,0x0000015a, + 0x00000000,0x000200f9,0x0000015b,0x000200f8,0x0000015b,0x0004003d,0x00000018,0x0000015c, + 0x00000156,0x000500b1,0x0000003f,0x0000015e,0x0000015c,0x0000015d,0x000400fa,0x0000015e, + 0x00000158,0x00000159,0x000200f8,0x00000158,0x0004003d,0x00000019,0x00000160,0x00000051, + 0x0004003d,0x00000018,0x0000016a,0x00000156,0x0003003e,0x0000016c,0x00000169,0x00050041, + 0x0000001f,0x0000016d,0x0000016c,0x0000016a,0x0004003d,0x00000019,0x0000016e,0x0000016d, + 0x00050080,0x00000019,0x0000016f,0x00000160,0x0000016e,0x0003003e,0x0000015f,0x0000016f, + 0x0004003d,0x00000018,0x00000173,0x00000156,0x0004003d,0x00000019,0x00000175,0x0000015f, + 0x0003003e,0x00000174,0x00000175,0x00050039,0x00000006,0x00000176,0x00000022,0x00000174, + 0x00050041,0x00000007,0x00000177,0x00000172,0x00000173,0x0003003e,0x00000177,0x00000176, + 0x000200f9,0x0000015a,0x000200f8,0x0000015a,0x0004003d,0x00000018,0x00000178,0x00000156, + 0x00050080,0x00000018,0x00000179,0x00000178,0x00000079,0x0003003e,0x00000156,0x00000179, + 0x000200f9,0x00000157,0x000200f8,0x00000159,0x0004003d,0x00000019,0x0000017a,0x00000051, + 0x0003003e,0x00000054,0x0000017a,0x00050041,0x00000007,0x0000017b,0x00000172,0x00000073, + 0x0004003d,0x00000006,0x0000017c,0x0000017b,0x0003003e,0x00000053,0x0000017c,0x0003003e, + 0x00000156,0x00000079,0x000200f9,0x0000017d,0x000200f8,0x0000017d,0x000400f6,0x0000017f, + 0x00000180,0x00000000,0x000200f9,0x00000181,0x000200f8,0x00000181,0x0004003d,0x00000018, + 0x00000182,0x00000156,0x000500b1,0x0000003f,0x00000183,0x00000182,0x0000015d,0x000400fa, + 0x00000183,0x0000017e,0x0000017f,0x000200f8,0x0000017e,0x0004003d,0x00000019,0x00000185, + 0x00000051,0x0004003d,0x00000018,0x00000186,0x00000156,0x0003003e,0x00000187,0x00000169, + 0x00050041,0x0000001f,0x00000188,0x00000187,0x00000186,0x0004003d,0x00000019,0x00000189, + 0x00000188,0x00050080,0x00000019,0x0000018a,0x00000185,0x00000189,0x0003003e,0x00000184, + 0x0000018a,0x0004003d,0x00000019,0x0000018c,0x00000184,0x0003003e,0x0000018b,0x0000018c, + 0x0004003d,0x00000019,0x0000018e,0x00000052,0x0003003e,0x0000018d,0x0000018e,0x00060039, + 0x0000003f,0x0000018f,0x00000043,0x0000018b,0x0000018d,0x000300f7,0x00000191,0x00000000, + 0x000400fa,0x0000018f,0x00000190,0x00000191,0x000200f8,0x00000190,0x0004003d,0x00000018, + 0x00000193,0x00000156,0x00050041,0x00000007,0x00000194,0x00000172,0x00000193,0x0004003d, + 0x00000006,0x00000195,0x00000194,0x0003003e,0x00000192,0x00000195,0x0004003d,0x00000006, + 0x00000196,0x00000192,0x0004003d,0x00000006,0x00000197,0x00000053,0x000500ba,0x0000003f, + 0x00000198,0x00000196,0x00000197,0x000300f7,0x0000019a,0x00000000,0x000400fa,0x00000198, + 0x00000199,0x0000019a,0x000200f8,0x00000199,0x0004003d,0x00000019,0x0000019b,0x00000184, + 0x0003003e,0x00000054,0x0000019b,0x0004003d,0x00000006,0x0000019c,0x00000192,0x0003003e, + 0x00000053,0x0000019c,0x000200f9,0x0000019a,0x000200f8,0x0000019a,0x000200f9,0x00000191, + 0x000200f8,0x00000191,0x000200f9,0x00000180,0x000200f8,0x00000180,0x0004003d,0x00000018, + 0x0000019d,0x00000156,0x00050080,0x00000018,0x0000019e,0x0000019d,0x00000079,0x0003003e, + 0x00000156,0x0000019e,0x000200f9,0x0000017d,0x000200f8,0x0000017f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000059,0x00000000,0x00000057,0x00030037,0x0000001f,0x00000058, + 0x000200f8,0x0000005a,0x0004003b,0x00000007,0x000001a0,0x00000007,0x0004003b,0x0000001f, + 0x000001a1,0x00000007,0x0004003b,0x0000001f,0x000001a2,0x00000007,0x0004003b,0x0000001f, + 0x000001a4,0x00000007,0x0004003b,0x00000007,0x000001a5,0x00000007,0x0004003b,0x0000001f, + 0x000001a6,0x00000007,0x0004003b,0x0000001f,0x000001aa,0x00000007,0x0004003b,0x0000001f, + 0x000001ab,0x00000007,0x0004003b,0x0000001f,0x000001ae,0x00000007,0x0004003b,0x0000001f, + 0x000001af,0x00000007,0x0004003b,0x0000000e,0x000001b2,0x00000007,0x0004003b,0x0000001f, + 0x000001b3,0x00000007,0x0004003b,0x0000001f,0x000001b6,0x00000007,0x0004003b,0x00000007, + 0x000001b8,0x00000007,0x0004003b,0x0000001f,0x000001bb,0x00000007,0x0004003b,0x0000000e, + 0x000001bd,0x00000007,0x0004003b,0x0000001f,0x000001c1,0x00000007,0x0004003b,0x00000007, + 0x000001c3,0x00000007,0x0004003b,0x0000000e,0x000001c5,0x00000007,0x0004003b,0x0000001f, + 0x000001c7,0x00000007,0x00040039,0x00000019,0x0000019f,0x0000001b,0x0004003d,0x00000019, + 0x000001a3,0x00000058,0x0003003e,0x000001a2,0x000001a3,0x0003003e,0x000001a4,0x0000019f, + 0x00080039,0x00000002,0x000001a7,0x00000055,0x000001a2,0x000001a4,0x000001a5,0x000001a6, + 0x0004003d,0x00000006,0x000001a8,0x000001a5,0x0003003e,0x000001a0,0x000001a8,0x0004003d, + 0x00000019,0x000001a9,0x000001a6,0x0003003e,0x000001a1,0x000001a9,0x0004003d,0x00000019, + 0x000001ac,0x00000058,0x0003003e,0x000001ab,0x000001ac,0x00050039,0x00000019,0x000001ad, + 0x00000047,0x000001ab,0x0003003e,0x000001aa,0x000001ad,0x0004003d,0x00000019,0x000001b0, + 0x000001a1,0x0003003e,0x000001af,0x000001b0,0x00050039,0x00000019,0x000001b1,0x00000047, + 0x000001af,0x0003003e,0x000001ae,0x000001b1,0x0004003d,0x00000019,0x000001b4,0x000001ae, + 0x0003003e,0x000001b3,0x000001b4,0x00050039,0x0000000d,0x000001b5,0x00000026,0x000001b3, + 0x0003003e,0x000001b2,0x000001b5,0x0004003d,0x00000019,0x000001b7,0x00000058,0x0003003e, + 0x000001b6,0x000001b7,0x0004003d,0x00000006,0x000001b9,0x000001a0,0x0003003e,0x000001b8, + 0x000001b9,0x00060039,0x00000002,0x000001ba,0x00000030,0x000001b6,0x000001b8,0x0004003d, + 0x00000019,0x000001bc,0x00000058,0x0003003e,0x000001bb,0x000001bc,0x0004003d,0x0000000d, + 0x000001be,0x000001b2,0x0003003e,0x000001bd,0x000001be,0x00060039,0x00000002,0x000001bf, + 0x0000002b,0x000001bb,0x000001bd,0x00040039,0x00000019,0x000001c0,0x0000001b,0x0004003d, + 0x00000019,0x000001c2,0x00000058,0x0003003e,0x000001c1,0x000001c2,0x0004003d,0x00000006, + 0x000001c4,0x000001a0,0x0003003e,0x000001c3,0x000001c4,0x0004003d,0x0000000d,0x000001c6, + 0x000001b2,0x0003003e,0x000001c5,0x000001c6,0x0003003e,0x000001c7,0x000001c0,0x00080039, + 0x00000002,0x000001c8,0x0000004e,0x000001c1,0x000001c3,0x000001c5,0x000001c7,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h b/gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h new file mode 100644 index 000000000..9b7382807 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h @@ -0,0 +1,307 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_RECONSTRUCT_PREVIOUS_DEPTH_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000014a,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000134,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70, + 0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666,0x6e495573,0x28323374, + 0x003b3166,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000011,0x46786666,0x74636172, + 0x32667628,0x0000003b,0x00030005,0x00000010,0x00000078,0x00050005,0x00000016,0x646e6552, + 0x69537265,0x0028657a,0x000a0005,0x0000001b,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f, + 0x6365566e,0x28726f74,0x3b326976,0x00000000,0x00040005,0x0000001a,0x50785069,0x0000736f, + 0x00080005,0x0000001f,0x64616f4c,0x616c6944,0x44646574,0x68747065,0x32697628,0x0000003b, + 0x00040005,0x0000001e,0x50785069,0x0000736f,0x00090005,0x00000022,0x706d6153,0x6944656c, + 0x726f7473,0x6e6f6974,0x6c656946,0x66762864,0x00003b32,0x00030005,0x00000021,0x00765566, + 0x000f0005,0x00000027,0x61647055,0x65526574,0x736e6f63,0x63757274,0x44646574,0x68747065, + 0x65746e49,0x6c6f7072,0x64657461,0x6d617246,0x69762865,0x31663b32,0x0000003b,0x00050005, + 0x00000025,0x53785069,0x6c706d61,0x00000065,0x00040005,0x00000026,0x70654466,0x00006874, + 0x00080005,0x0000002c,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000, + 0x00060006,0x0000002c,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x0000002c, + 0x00000001,0x69655766,0x73746867,0x00000000,0x00060006,0x0000002c,0x00000002,0x73614269, + 0x736f5065,0x00000000,0x000b0005,0x00000030,0x42746547,0x6e696c69,0x53726165,0x6c706d61, + 0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x0000002e,0x00765566, + 0x00040005,0x0000002f,0x7a695369,0x00000065,0x00070005,0x00000036,0x6e4f7349,0x65726353, + 0x76286e65,0x763b3269,0x003b3269,0x00030005,0x00000034,0x00736f70,0x00040005,0x00000035, + 0x657a6973,0x00000000,0x000c0005,0x0000003f,0x6f636552,0x7274736e,0x50746375,0x44766572, + 0x68747065,0x32697628,0x3b31753b,0x763b3166,0x763b3266,0x003b3269,0x00040005,0x0000003a, + 0x50785069,0x0000736f,0x00050005,0x0000003b,0x74706564,0x72615468,0x00746567,0x00040005, + 0x0000003c,0x70654466,0x00006874,0x00060005,0x0000003d,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00060005,0x0000003e,0x44785069,0x68747065,0x657a6953,0x00000000,0x000a0005, + 0x00000043,0x6f636572,0x7274736e,0x50746375,0x69766572,0x4473756f,0x68747065,0x32697628, + 0x0000003b,0x00040005,0x00000042,0x50785069,0x0000736f,0x00040005,0x0000004f,0x49466263, + 0x0000745f,0x00060006,0x0000004f,0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006, + 0x0000004f,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x0000004f,0x00000002, + 0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000004f,0x00000003,0x656d6163, + 0x654e6172,0x00007261,0x00060006,0x0000004f,0x00000004,0x656d6163,0x61466172,0x00000072, + 0x00080006,0x0000004f,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a, + 0x00050006,0x0000004f,0x00000006,0x65646f4d,0x00000000,0x00050006,0x0000004f,0x00000007, + 0x65736572,0x00000074,0x00080006,0x0000004f,0x00000008,0x76654466,0x54656369,0x6569566f, + 0x70654477,0x00006874,0x00060006,0x0000004f,0x00000009,0x746c6564,0x6d695461,0x00000065, + 0x00090006,0x0000004f,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361, + 0x00000072,0x00080006,0x0000004f,0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65, + 0x00657a69,0x00080006,0x0000004f,0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163, + 0x00000000,0x00090006,0x0000004f,0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c, + 0x657a6953,0x00000000,0x00070006,0x0000004f,0x0000000e,0x70736964,0x68637461,0x67616c46, + 0x00000073,0x00070006,0x0000004f,0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065, + 0x00090006,0x0000004f,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365, + 0x00006564,0x00070006,0x0000004f,0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000, + 0x00090006,0x0000004f,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274, + 0x00000065,0x00090006,0x0000004f,0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x7a695374,0x00000065,0x00070006,0x0000004f,0x00000014,0x75626564,0x72614267,0x6f6c6f43, + 0x00000072,0x000a0006,0x0000004f,0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000004f,0x00000016,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00060006,0x0000004f,0x00000017,0x6e615466,0x666c6148,0x00564f46, + 0x00050006,0x0000004f,0x00000018,0x6461705f,0x00000031,0x00050006,0x0000004f,0x00000019, + 0x74694a66,0x00726574,0x00080006,0x0000004f,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00040005,0x00000051,0x49466263,0x00000000,0x00090005,0x0000005a, + 0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00060005, + 0x00000061,0x69645f72,0x6574616c,0x65645f64,0x00687470,0x00090005,0x00000069,0x6e695f72, + 0x5f747570,0x74736964,0x6974726f,0x665f6e6f,0x646c6569,0x00000000,0x00060005,0x0000006d, + 0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00040005,0x00000077,0x70654475,0x00006874, + 0x00040005,0x00000078,0x61726170,0x0000006d,0x000d0005,0x0000007d,0x725f7772,0x6e6f6365, + 0x75727473,0x64657463,0x7065645f,0x695f6874,0x7265746e,0x616c6f70,0x5f646574,0x6d617266, + 0x00000065,0x00050005,0x00000084,0x53785066,0x6c706d61,0x00000065,0x00040005,0x0000008d, + 0x61746164,0x00000000,0x00040005,0x00000093,0x46785066,0x00636172,0x00040005,0x00000094, + 0x61726170,0x0000006d,0x00030005,0x000000cb,0x00765566,0x00060005,0x000000d3,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000000d8,0x61726170,0x0000006d,0x00040005, + 0x000000d9,0x61726170,0x0000006d,0x00060005,0x000000dc,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x000000e5,0x66664f69,0x00746573,0x00050005,0x000000e9,0x6d615369, + 0x50656c70,0x0000736f,0x00060005,0x000000ee,0x6d615366,0x57656c70,0x68676965,0x00000074, + 0x00040005,0x000000f8,0x61726170,0x0000006d,0x00040005,0x000000fa,0x61726170,0x0000006d, + 0x00040005,0x00000102,0x61726170,0x0000006d,0x00040005,0x00000104,0x61726170,0x0000006d, + 0x00030005,0x00000109,0x00765566,0x00070005,0x00000111,0x73694466,0x74726f74,0x466e6f69, + 0x646c6569,0x00007655,0x00040005,0x00000112,0x61726170,0x0000006d,0x00080005,0x00000115, + 0x73694469,0x74726f74,0x506e6f69,0x6c657869,0x7366664f,0x00007465,0x00060005,0x0000011b, + 0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00040005,0x0000011f,0x61726170,0x0000006d, + 0x00060005,0x00000121,0x6c694466,0x64657461,0x74706544,0x00000068,0x00040005,0x00000125, + 0x61726170,0x0000006d,0x00040005,0x0000012a,0x61726170,0x0000006d,0x00040005,0x0000012c, + 0x61726170,0x0000006d,0x00040005,0x0000012d,0x61726170,0x0000006d,0x00040005,0x0000012f, + 0x61726170,0x0000006d,0x00040005,0x00000130,0x61726170,0x0000006d,0x00080005,0x00000134, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000138, + 0x61726170,0x0000006d,0x000a0005,0x0000013d,0x75635f72,0x6e657272,0x6e695f74,0x70726574, + 0x74616c6f,0x5f6e6f69,0x72756f73,0x00006563,0x00030047,0x0000004f,0x00000002,0x00050048, + 0x0000004f,0x00000000,0x00000023,0x00000000,0x00050048,0x0000004f,0x00000001,0x00000023, + 0x00000008,0x00050048,0x0000004f,0x00000002,0x00000023,0x00000010,0x00050048,0x0000004f, + 0x00000003,0x00000023,0x00000018,0x00050048,0x0000004f,0x00000004,0x00000023,0x0000001c, + 0x00050048,0x0000004f,0x00000005,0x00000023,0x00000020,0x00050048,0x0000004f,0x00000006, + 0x00000023,0x00000028,0x00050048,0x0000004f,0x00000007,0x00000023,0x0000002c,0x00050048, + 0x0000004f,0x00000008,0x00000023,0x00000030,0x00050048,0x0000004f,0x00000009,0x00000023, + 0x00000040,0x00050048,0x0000004f,0x0000000a,0x00000023,0x00000044,0x00050048,0x0000004f, + 0x0000000b,0x00000023,0x00000048,0x00050048,0x0000004f,0x0000000c,0x00000023,0x00000050, + 0x00050048,0x0000004f,0x0000000d,0x00000023,0x00000058,0x00050048,0x0000004f,0x0000000e, + 0x00000023,0x0000005c,0x00050048,0x0000004f,0x0000000f,0x00000023,0x00000060,0x00050048, + 0x0000004f,0x00000010,0x00000023,0x00000068,0x00050048,0x0000004f,0x00000011,0x00000023, + 0x0000006c,0x00050048,0x0000004f,0x00000012,0x00000023,0x00000070,0x00050048,0x0000004f, + 0x00000013,0x00000023,0x00000078,0x00050048,0x0000004f,0x00000014,0x00000023,0x00000080, + 0x00050048,0x0000004f,0x00000015,0x00000023,0x0000008c,0x00050048,0x0000004f,0x00000016, + 0x00000023,0x00000090,0x00050048,0x0000004f,0x00000017,0x00000023,0x00000098,0x00050048, + 0x0000004f,0x00000018,0x00000023,0x0000009c,0x00050048,0x0000004f,0x00000019,0x00000023, + 0x000000a0,0x00050048,0x0000004f,0x0000001a,0x00000023,0x000000a8,0x00040047,0x00000051, + 0x00000021,0x00000005,0x00040047,0x00000051,0x00000022,0x00000000,0x00040047,0x0000005a, + 0x00000021,0x00000000,0x00040047,0x0000005a,0x00000022,0x00000000,0x00040047,0x00000061, + 0x00000021,0x00000001,0x00040047,0x00000061,0x00000022,0x00000000,0x00040047,0x00000069, + 0x00000021,0x00000003,0x00040047,0x00000069,0x00000022,0x00000000,0x00040047,0x0000006d, + 0x00000021,0x000003e8,0x00040047,0x0000006d,0x00000022,0x00000000,0x00040047,0x0000007d, + 0x00000021,0x00000004,0x00040047,0x0000007d,0x00000022,0x00000000,0x00040047,0x00000134, + 0x0000000b,0x0000001c,0x00040047,0x0000013d,0x00000021,0x00000002,0x00040047,0x0000013d, + 0x00000022,0x00000000,0x00040047,0x00000149,0x0000000b,0x00000019,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00040015,0x00000008,0x00000020,0x00000000,0x00040021,0x00000009, + 0x00000008,0x00000007,0x00040017,0x0000000d,0x00000006,0x00000002,0x00040020,0x0000000e, + 0x00000007,0x0000000d,0x00040021,0x0000000f,0x0000000d,0x0000000e,0x00040015,0x00000013, + 0x00000020,0x00000001,0x00040017,0x00000014,0x00000013,0x00000002,0x00030021,0x00000015, + 0x00000014,0x00040020,0x00000018,0x00000007,0x00000014,0x00040021,0x00000019,0x0000000d, + 0x00000018,0x00040021,0x0000001d,0x00000006,0x00000018,0x00050021,0x00000024,0x00000002, + 0x00000018,0x00000007,0x0004002b,0x00000008,0x00000029,0x00000004,0x0004001c,0x0000002a, + 0x00000014,0x00000029,0x0004001c,0x0000002b,0x00000006,0x00000029,0x0005001e,0x0000002c, + 0x0000002a,0x0000002b,0x00000014,0x00050021,0x0000002d,0x0000002c,0x0000000e,0x00000018, + 0x00020014,0x00000032,0x00050021,0x00000033,0x00000032,0x00000018,0x00000018,0x00040020, + 0x00000038,0x00000007,0x00000008,0x00080021,0x00000039,0x00000002,0x00000018,0x00000038, + 0x00000007,0x0000000e,0x00000018,0x00040021,0x00000041,0x00000002,0x00000018,0x00040017, + 0x0000004d,0x00000006,0x00000004,0x00040017,0x0000004e,0x00000006,0x00000003,0x001d001e, + 0x0000004f,0x00000014,0x00000014,0x0000000d,0x00000006,0x00000006,0x00000014,0x00000013, + 0x00000013,0x0000004d,0x00000006,0x00000013,0x00000014,0x0000000d,0x00000013,0x00000008, + 0x00000014,0x00000013,0x00000013,0x00000014,0x00000014,0x0000004e,0x00000008,0x0000000d, + 0x00000006,0x00000013,0x0000000d,0x0000000d,0x00040020,0x00000050,0x00000002,0x0000004f, + 0x0004003b,0x00000050,0x00000051,0x00000002,0x0004002b,0x00000013,0x00000052,0x00000000, + 0x00040020,0x00000053,0x00000002,0x00000014,0x00090019,0x00000058,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000059,0x00000000, + 0x00000058,0x0004003b,0x00000059,0x0000005a,0x00000000,0x0004003b,0x00000059,0x00000061, + 0x00000000,0x0004002b,0x00000008,0x00000065,0x00000000,0x0004003b,0x00000059,0x00000069, + 0x00000000,0x0002001a,0x0000006b,0x00040020,0x0000006c,0x00000000,0x0000006b,0x0004003b, + 0x0000006c,0x0000006d,0x00000000,0x0003001b,0x0000006f,0x00000058,0x0004002b,0x00000006, + 0x00000072,0x00000000,0x00090019,0x0000007b,0x00000008,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000021,0x00040020,0x0000007c,0x00000000,0x0000007b,0x0004003b, + 0x0000007c,0x0000007d,0x00000000,0x00040020,0x00000080,0x0000000b,0x00000008,0x0004002b, + 0x00000008,0x00000082,0x00000001,0x0004002b,0x00000006,0x00000089,0x3f000000,0x0005002c, + 0x0000000d,0x0000008a,0x00000089,0x00000089,0x00040020,0x0000008c,0x00000007,0x0000002c, + 0x0004002b,0x00000013,0x0000008e,0x00000002,0x0005002c,0x00000014,0x00000097,0x00000052, + 0x00000052,0x0004002b,0x00000013,0x00000099,0x00000001,0x0005002c,0x00000014,0x0000009a, + 0x00000099,0x00000052,0x0005002c,0x00000014,0x0000009c,0x00000052,0x00000099,0x0004002b, + 0x00000013,0x0000009e,0x00000003,0x0005002c,0x00000014,0x0000009f,0x00000099,0x00000099, + 0x0004002b,0x00000006,0x000000a1,0x3f800000,0x00040017,0x000000c2,0x00000008,0x00000002, + 0x00040017,0x000000c6,0x00000032,0x00000002,0x00040020,0x000000db,0x00000007,0x00000013, + 0x0004002b,0x00000013,0x000000e3,0x00000004,0x0004002b,0x00000006,0x000000f3,0x3a83126f, + 0x00040017,0x00000132,0x00000008,0x00000003,0x00040020,0x00000133,0x00000001,0x00000132, + 0x0004003b,0x00000133,0x00000134,0x00000001,0x0004002b,0x00000006,0x0000013a,0x387fda40, + 0x0004002b,0x00000006,0x0000013b,0x477fe000,0x0004002b,0x00000006,0x0000013c,0x37801002, + 0x0004003b,0x00000059,0x0000013d,0x00000000,0x0004002b,0x00000006,0x0000013e,0x7f7fffff, + 0x0004002b,0x00000006,0x0000013f,0x00800000,0x0004002b,0x00000008,0x00000140,0x00000020, + 0x0004002b,0x00000008,0x00000141,0x00000010,0x0004002b,0x00000008,0x00000142,0x00000005, + 0x0004002b,0x00000008,0x00000143,0x0000000a,0x0004002b,0x00000008,0x00000144,0x80000000, + 0x0004002b,0x00000008,0x00000145,0x0000001f,0x0004002b,0x00000008,0x00000146,0x000003ff, + 0x0004002b,0x00000008,0x00000147,0x00000015,0x0004002b,0x00000008,0x00000148,0x00000008, + 0x0006002c,0x00000132,0x00000149,0x00000148,0x00000148,0x00000082,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000018,0x00000138, + 0x00000007,0x0004003d,0x00000132,0x00000135,0x00000134,0x0007004f,0x000000c2,0x00000136, + 0x00000135,0x00000135,0x00000000,0x00000001,0x0004007c,0x00000014,0x00000137,0x00000136, + 0x0003003e,0x00000138,0x00000137,0x00050039,0x00000002,0x00000139,0x00000043,0x00000138, + 0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037, + 0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000045,0x0000000a, + 0x0004007c,0x00000008,0x00000046,0x00000045,0x000200fe,0x00000046,0x00010038,0x00050036, + 0x0000000d,0x00000011,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8, + 0x00000012,0x0004003d,0x0000000d,0x00000049,0x00000010,0x0006000c,0x0000000d,0x0000004a, + 0x00000001,0x0000000a,0x00000049,0x000200fe,0x0000004a,0x00010038,0x00050036,0x00000014, + 0x00000016,0x00000000,0x00000015,0x000200f8,0x00000017,0x00050041,0x00000053,0x00000054, + 0x00000051,0x00000052,0x0004003d,0x00000014,0x00000055,0x00000054,0x000200fe,0x00000055, + 0x00010038,0x00050036,0x0000000d,0x0000001b,0x00000000,0x00000019,0x00030037,0x00000018, + 0x0000001a,0x000200f8,0x0000001c,0x0004003d,0x00000058,0x0000005b,0x0000005a,0x0004003d, + 0x00000014,0x0000005c,0x0000001a,0x0007005f,0x0000004d,0x0000005d,0x0000005b,0x0000005c, + 0x00000002,0x00000052,0x0007004f,0x0000000d,0x0000005e,0x0000005d,0x0000005d,0x00000000, + 0x00000001,0x000200fe,0x0000005e,0x00010038,0x00050036,0x00000006,0x0000001f,0x00000000, + 0x0000001d,0x00030037,0x00000018,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000058, + 0x00000062,0x00000061,0x0004003d,0x00000014,0x00000063,0x0000001e,0x0007005f,0x0000004d, + 0x00000064,0x00000062,0x00000063,0x00000002,0x00000052,0x00050051,0x00000006,0x00000066, + 0x00000064,0x00000000,0x000200fe,0x00000066,0x00010038,0x00050036,0x0000000d,0x00000022, + 0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000021,0x000200f8,0x00000023,0x0004003d, + 0x00000058,0x0000006a,0x00000069,0x0004003d,0x0000006b,0x0000006e,0x0000006d,0x00050056, + 0x0000006f,0x00000070,0x0000006a,0x0000006e,0x0004003d,0x0000000d,0x00000071,0x00000021, + 0x00070058,0x0000004d,0x00000073,0x00000070,0x00000071,0x00000002,0x00000072,0x0007004f, + 0x0000000d,0x00000074,0x00000073,0x00000073,0x00000000,0x00000001,0x000200fe,0x00000074, + 0x00010038,0x00050036,0x00000002,0x00000027,0x00000000,0x00000024,0x00030037,0x00000018, + 0x00000025,0x00030037,0x00000007,0x00000026,0x000200f8,0x00000028,0x0004003b,0x00000038, + 0x00000077,0x00000007,0x0004003b,0x00000007,0x00000078,0x00000007,0x0004003d,0x00000006, + 0x00000079,0x00000026,0x0003003e,0x00000078,0x00000079,0x00050039,0x00000008,0x0000007a, + 0x0000000b,0x00000078,0x0003003e,0x00000077,0x0000007a,0x0004003d,0x00000014,0x0000007e, + 0x00000025,0x0004003d,0x00000008,0x0000007f,0x00000077,0x0006003c,0x00000080,0x00000081, + 0x0000007d,0x0000007e,0x00000065,0x000700ef,0x00000008,0x00000083,0x00000081,0x00000082, + 0x00000065,0x0000007f,0x000100fd,0x00010038,0x00050036,0x0000002c,0x00000030,0x00000000, + 0x0000002d,0x00030037,0x0000000e,0x0000002e,0x00030037,0x00000018,0x0000002f,0x000200f8, + 0x00000031,0x0004003b,0x0000000e,0x00000084,0x00000007,0x0004003b,0x0000008c,0x0000008d, + 0x00000007,0x0004003b,0x0000000e,0x00000093,0x00000007,0x0004003b,0x0000000e,0x00000094, + 0x00000007,0x0004003d,0x0000000d,0x00000085,0x0000002e,0x0004003d,0x00000014,0x00000086, + 0x0000002f,0x0004006f,0x0000000d,0x00000087,0x00000086,0x00050085,0x0000000d,0x00000088, + 0x00000085,0x00000087,0x00050083,0x0000000d,0x0000008b,0x00000088,0x0000008a,0x0003003e, + 0x00000084,0x0000008b,0x0004003d,0x0000000d,0x0000008f,0x00000084,0x0006000c,0x0000000d, + 0x00000090,0x00000001,0x00000008,0x0000008f,0x0004006e,0x00000014,0x00000091,0x00000090, + 0x00050041,0x00000018,0x00000092,0x0000008d,0x0000008e,0x0003003e,0x00000092,0x00000091, + 0x0004003d,0x0000000d,0x00000095,0x00000084,0x0003003e,0x00000094,0x00000095,0x00050039, + 0x0000000d,0x00000096,0x00000011,0x00000094,0x0003003e,0x00000093,0x00000096,0x00060041, + 0x00000018,0x00000098,0x0000008d,0x00000052,0x00000052,0x0003003e,0x00000098,0x00000097, + 0x00060041,0x00000018,0x0000009b,0x0000008d,0x00000052,0x00000099,0x0003003e,0x0000009b, + 0x0000009a,0x00060041,0x00000018,0x0000009d,0x0000008d,0x00000052,0x0000008e,0x0003003e, + 0x0000009d,0x0000009c,0x00060041,0x00000018,0x000000a0,0x0000008d,0x00000052,0x0000009e, + 0x0003003e,0x000000a0,0x0000009f,0x00050041,0x00000007,0x000000a2,0x00000093,0x00000065, + 0x0004003d,0x00000006,0x000000a3,0x000000a2,0x00050083,0x00000006,0x000000a4,0x000000a1, + 0x000000a3,0x00050041,0x00000007,0x000000a5,0x00000093,0x00000082,0x0004003d,0x00000006, + 0x000000a6,0x000000a5,0x00050083,0x00000006,0x000000a7,0x000000a1,0x000000a6,0x00050085, + 0x00000006,0x000000a8,0x000000a4,0x000000a7,0x00060041,0x00000007,0x000000a9,0x0000008d, + 0x00000099,0x00000052,0x0003003e,0x000000a9,0x000000a8,0x00050041,0x00000007,0x000000aa, + 0x00000093,0x00000065,0x0004003d,0x00000006,0x000000ab,0x000000aa,0x00050041,0x00000007, + 0x000000ac,0x00000093,0x00000082,0x0004003d,0x00000006,0x000000ad,0x000000ac,0x00050083, + 0x00000006,0x000000ae,0x000000a1,0x000000ad,0x00050085,0x00000006,0x000000af,0x000000ab, + 0x000000ae,0x00060041,0x00000007,0x000000b0,0x0000008d,0x00000099,0x00000099,0x0003003e, + 0x000000b0,0x000000af,0x00050041,0x00000007,0x000000b1,0x00000093,0x00000065,0x0004003d, + 0x00000006,0x000000b2,0x000000b1,0x00050083,0x00000006,0x000000b3,0x000000a1,0x000000b2, + 0x00050041,0x00000007,0x000000b4,0x00000093,0x00000082,0x0004003d,0x00000006,0x000000b5, + 0x000000b4,0x00050085,0x00000006,0x000000b6,0x000000b3,0x000000b5,0x00060041,0x00000007, + 0x000000b7,0x0000008d,0x00000099,0x0000008e,0x0003003e,0x000000b7,0x000000b6,0x00050041, + 0x00000007,0x000000b8,0x00000093,0x00000065,0x0004003d,0x00000006,0x000000b9,0x000000b8, + 0x00050041,0x00000007,0x000000ba,0x00000093,0x00000082,0x0004003d,0x00000006,0x000000bb, + 0x000000ba,0x00050085,0x00000006,0x000000bc,0x000000b9,0x000000bb,0x00060041,0x00000007, + 0x000000bd,0x0000008d,0x00000099,0x0000009e,0x0003003e,0x000000bd,0x000000bc,0x0004003d, + 0x0000002c,0x000000be,0x0000008d,0x000200fe,0x000000be,0x00010038,0x00050036,0x00000032, + 0x00000036,0x00000000,0x00000033,0x00030037,0x00000018,0x00000034,0x00030037,0x00000018, + 0x00000035,0x000200f8,0x00000037,0x0004003d,0x00000014,0x000000c1,0x00000034,0x0004007c, + 0x000000c2,0x000000c3,0x000000c1,0x0004003d,0x00000014,0x000000c4,0x00000035,0x0004007c, + 0x000000c2,0x000000c5,0x000000c4,0x000500b0,0x000000c6,0x000000c7,0x000000c3,0x000000c5, + 0x0004009b,0x00000032,0x000000c8,0x000000c7,0x000200fe,0x000000c8,0x00010038,0x00050036, + 0x00000002,0x0000003f,0x00000000,0x00000039,0x00030037,0x00000018,0x0000003a,0x00030037, + 0x00000038,0x0000003b,0x00030037,0x00000007,0x0000003c,0x00030037,0x0000000e,0x0000003d, + 0x00030037,0x00000018,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x0000000e,0x000000cb, + 0x00000007,0x0004003b,0x0000008c,0x000000d3,0x00000007,0x0004003b,0x0000000e,0x000000d8, + 0x00000007,0x0004003b,0x00000018,0x000000d9,0x00000007,0x0004003b,0x000000db,0x000000dc, + 0x00000007,0x0004003b,0x00000018,0x000000e5,0x00000007,0x0004003b,0x00000018,0x000000e9, + 0x00000007,0x0004003b,0x00000007,0x000000ee,0x00000007,0x0004003b,0x00000018,0x000000f8, + 0x00000007,0x0004003b,0x00000018,0x000000fa,0x00000007,0x0004003b,0x00000018,0x00000102, + 0x00000007,0x0004003b,0x00000007,0x00000104,0x00000007,0x0004003d,0x00000014,0x000000cc, + 0x0000003a,0x0004006f,0x0000000d,0x000000cd,0x000000cc,0x00050050,0x0000000d,0x000000ce, + 0x00000089,0x00000089,0x00050081,0x0000000d,0x000000cf,0x000000cd,0x000000ce,0x0004003d, + 0x00000014,0x000000d0,0x0000003e,0x0004006f,0x0000000d,0x000000d1,0x000000d0,0x00050088, + 0x0000000d,0x000000d2,0x000000cf,0x000000d1,0x0003003e,0x000000cb,0x000000d2,0x0004003d, + 0x0000000d,0x000000d4,0x000000cb,0x0004003d,0x0000000d,0x000000d5,0x0000003d,0x00050081, + 0x0000000d,0x000000d6,0x000000d4,0x000000d5,0x00040039,0x00000014,0x000000d7,0x00000016, + 0x0003003e,0x000000d8,0x000000d6,0x0003003e,0x000000d9,0x000000d7,0x00060039,0x0000002c, + 0x000000da,0x00000030,0x000000d8,0x000000d9,0x0003003e,0x000000d3,0x000000da,0x0003003e, + 0x000000dc,0x00000052,0x000200f9,0x000000dd,0x000200f8,0x000000dd,0x000400f6,0x000000df, + 0x000000e0,0x00000000,0x000200f9,0x000000e1,0x000200f8,0x000000e1,0x0004003d,0x00000013, + 0x000000e2,0x000000dc,0x000500b1,0x00000032,0x000000e4,0x000000e2,0x000000e3,0x000400fa, + 0x000000e4,0x000000de,0x000000df,0x000200f8,0x000000de,0x0004003d,0x00000013,0x000000e6, + 0x000000dc,0x00060041,0x00000018,0x000000e7,0x000000d3,0x00000052,0x000000e6,0x0004003d, + 0x00000014,0x000000e8,0x000000e7,0x0003003e,0x000000e5,0x000000e8,0x00050041,0x00000018, + 0x000000ea,0x000000d3,0x0000008e,0x0004003d,0x00000014,0x000000eb,0x000000ea,0x0004003d, + 0x00000014,0x000000ec,0x000000e5,0x00050080,0x00000014,0x000000ed,0x000000eb,0x000000ec, + 0x0003003e,0x000000e9,0x000000ed,0x0004003d,0x00000013,0x000000ef,0x000000dc,0x00060041, + 0x00000007,0x000000f0,0x000000d3,0x00000099,0x000000ef,0x0004003d,0x00000006,0x000000f1, + 0x000000f0,0x0003003e,0x000000ee,0x000000f1,0x0004003d,0x00000006,0x000000f2,0x000000ee, + 0x000500ba,0x00000032,0x000000f4,0x000000f2,0x000000f3,0x000300f7,0x000000f6,0x00000000, + 0x000400fa,0x000000f4,0x000000f5,0x000000f6,0x000200f8,0x000000f5,0x00040039,0x00000014, + 0x000000f7,0x00000016,0x0004003d,0x00000014,0x000000f9,0x000000e9,0x0003003e,0x000000f8, + 0x000000f9,0x0003003e,0x000000fa,0x000000f7,0x00060039,0x00000032,0x000000fb,0x00000036, + 0x000000f8,0x000000fa,0x000300f7,0x000000fd,0x00000000,0x000400fa,0x000000fb,0x000000fc, + 0x000000fd,0x000200f8,0x000000fc,0x0004003d,0x00000008,0x000000fe,0x0000003b,0x000500ab, + 0x00000032,0x000000ff,0x000000fe,0x00000065,0x000300f7,0x00000101,0x00000000,0x000400fa, + 0x000000ff,0x00000100,0x00000101,0x000200f8,0x00000100,0x0004003d,0x00000014,0x00000103, + 0x000000e9,0x0003003e,0x00000102,0x00000103,0x0004003d,0x00000006,0x00000105,0x0000003c, + 0x0003003e,0x00000104,0x00000105,0x00060039,0x00000002,0x00000106,0x00000027,0x00000102, + 0x00000104,0x000200f9,0x00000101,0x000200f8,0x00000101,0x000200f9,0x000000fd,0x000200f8, + 0x000000fd,0x000200f9,0x000000f6,0x000200f8,0x000000f6,0x000200f9,0x000000e0,0x000200f8, + 0x000000e0,0x0004003d,0x00000013,0x00000107,0x000000dc,0x00050080,0x00000013,0x00000108, + 0x00000107,0x00000099,0x0003003e,0x000000dc,0x00000108,0x000200f9,0x000000dd,0x000200f8, + 0x000000df,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000043,0x00000000,0x00000041, + 0x00030037,0x00000018,0x00000042,0x000200f8,0x00000044,0x0004003b,0x0000000e,0x00000109, + 0x00000007,0x0004003b,0x0000000e,0x00000111,0x00000007,0x0004003b,0x0000000e,0x00000112, + 0x00000007,0x0004003b,0x00000018,0x00000115,0x00000007,0x0004003b,0x0000000e,0x0000011b, + 0x00000007,0x0004003b,0x00000018,0x0000011f,0x00000007,0x0004003b,0x00000007,0x00000121, + 0x00000007,0x0004003b,0x00000018,0x00000125,0x00000007,0x0004003b,0x00000018,0x0000012a, + 0x00000007,0x0004003b,0x00000038,0x0000012c,0x00000007,0x0004003b,0x00000007,0x0000012d, + 0x00000007,0x0004003b,0x0000000e,0x0000012f,0x00000007,0x0004003b,0x00000018,0x00000130, + 0x00000007,0x0004003d,0x00000014,0x0000010a,0x00000042,0x0004006f,0x0000000d,0x0000010b, + 0x0000010a,0x00050050,0x0000000d,0x0000010c,0x00000089,0x00000089,0x00050081,0x0000000d, + 0x0000010d,0x0000010b,0x0000010c,0x00040039,0x00000014,0x0000010e,0x00000016,0x0004006f, + 0x0000000d,0x0000010f,0x0000010e,0x00050088,0x0000000d,0x00000110,0x0000010d,0x0000010f, + 0x0003003e,0x00000109,0x00000110,0x0004003d,0x0000000d,0x00000113,0x00000109,0x0003003e, + 0x00000112,0x00000113,0x00050039,0x0000000d,0x00000114,0x00000022,0x00000112,0x0003003e, + 0x00000111,0x00000114,0x0004003d,0x0000000d,0x00000116,0x00000111,0x00040039,0x00000014, + 0x00000117,0x00000016,0x0004006f,0x0000000d,0x00000118,0x00000117,0x00050085,0x0000000d, + 0x00000119,0x00000116,0x00000118,0x0004006e,0x00000014,0x0000011a,0x00000119,0x0003003e, + 0x00000115,0x0000011a,0x0004003d,0x00000014,0x0000011c,0x00000042,0x0004003d,0x00000014, + 0x0000011d,0x00000115,0x00050080,0x00000014,0x0000011e,0x0000011c,0x0000011d,0x0003003e, + 0x0000011f,0x0000011e,0x00050039,0x0000000d,0x00000120,0x0000001b,0x0000011f,0x0003003e, + 0x0000011b,0x00000120,0x0004003d,0x00000014,0x00000122,0x00000042,0x0004003d,0x00000014, + 0x00000123,0x00000115,0x00050080,0x00000014,0x00000124,0x00000122,0x00000123,0x0003003e, + 0x00000125,0x00000124,0x00050039,0x00000006,0x00000126,0x0000001f,0x00000125,0x0003003e, + 0x00000121,0x00000126,0x0004003d,0x0000000d,0x00000127,0x0000011b,0x0005008e,0x0000000d, + 0x00000128,0x00000127,0x00000089,0x00040039,0x00000014,0x00000129,0x00000016,0x0004003d, + 0x00000014,0x0000012b,0x00000042,0x0003003e,0x0000012a,0x0000012b,0x0003003e,0x0000012c, + 0x00000082,0x0004003d,0x00000006,0x0000012e,0x00000121,0x0003003e,0x0000012d,0x0000012e, + 0x0003003e,0x0000012f,0x00000128,0x0003003e,0x00000130,0x00000129,0x00090039,0x00000002, + 0x00000131,0x0000003f,0x0000012a,0x0000012c,0x0000012d,0x0000012f,0x00000130,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_setup_comp_spv.h b/gpu/vk/shaders/fsr3_fi_setup_comp_spv.h new file mode 100644 index 000000000..27542e630 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_setup_comp_spv.h @@ -0,0 +1,232 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_SETUP_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000000d1,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000000b7, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00040005,0x00000008,0x65736552, + 0x00002874,0x00070005,0x0000000a,0x53736148,0x656e6563,0x6e616843,0x28646567,0x00000000, + 0x000a0005,0x00000015,0x726f7453,0x73694465,0x6c63636f,0x6f697375,0x73614d6e,0x6976286b, + 0x66763b32,0x00003b32,0x00040005,0x00000013,0x50785069,0x0000736f,0x00030005,0x00000014, + 0x006c6176,0x000b0005,0x0000001c,0x726f7453,0x6d614765,0x746f4d65,0x566e6f69,0x6f746365, + 0x65694672,0x2858646c,0x3b326976,0x003b3175,0x00040005,0x0000001a,0x50785069,0x0000736f, + 0x00030005,0x0000001b,0x006c6176,0x000b0005,0x00000020,0x726f7453,0x6d614765,0x746f4d65, + 0x566e6f69,0x6f746365,0x65694672,0x2859646c,0x3b326976,0x003b3175,0x00040005,0x0000001e, + 0x50785069,0x0000736f,0x00030005,0x0000001f,0x006c6176,0x000d0005,0x00000024,0x726f7453, + 0x74704f65,0x6c616369,0x776f6c66,0x69746f4d,0x65566e6f,0x726f7463,0x6c656946,0x76285864, + 0x753b3269,0x00003b31,0x00040005,0x00000022,0x50785069,0x0000736f,0x00030005,0x00000023, + 0x006c6176,0x000d0005,0x00000028,0x726f7453,0x74704f65,0x6c616369,0x776f6c66,0x69746f4d, + 0x65566e6f,0x726f7463,0x6c656946,0x76285964,0x753b3269,0x00003b31,0x00040005,0x00000026, + 0x50785069,0x0000736f,0x00030005,0x00000027,0x006c6176,0x00070005,0x0000002d,0x6f4c5752, + 0x6f436461,0x65746e75,0x31692872,0x0000003b,0x00040005,0x0000002c,0x50785069,0x0000736f, + 0x00070005,0x00000032,0x726f7453,0x756f4365,0x7265746e,0x3b316928,0x003b3175,0x00040005, + 0x00000030,0x50785069,0x0000736f,0x00040005,0x00000031,0x6e756f63,0x00726574,0x000c0005, + 0x00000036,0x75746573,0x61724670,0x6e69656d,0x70726574,0x74616c6f,0x526e6f69,0x756f7365, + 0x73656372,0x32697628,0x0000003b,0x00040005,0x00000035,0x50785069,0x0000736f,0x00040005, + 0x0000003a,0x49466263,0x0000745f,0x00060006,0x0000003a,0x00000000,0x646e6572,0x69537265, + 0x0000657a,0x00060006,0x0000003a,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006, + 0x0000003a,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000003a, + 0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x0000003a,0x00000004,0x656d6163, + 0x61466172,0x00000072,0x00080006,0x0000003a,0x00000005,0x63737075,0x72656c61,0x67726154, + 0x69537465,0x0000657a,0x00050006,0x0000003a,0x00000006,0x65646f4d,0x00000000,0x00050006, + 0x0000003a,0x00000007,0x65736572,0x00000074,0x00080006,0x0000003a,0x00000008,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x0000003a,0x00000009,0x746c6564, + 0x6d695461,0x00000065,0x00090006,0x0000003a,0x0000000a,0x4c445548,0x41737365,0x63617474, + 0x46646568,0x6f746361,0x00000072,0x00080006,0x0000003a,0x0000000b,0x74736964,0x6974726f, + 0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x0000003a,0x0000000c,0x6974706f,0x466c6163, + 0x53776f6c,0x656c6163,0x00000000,0x00090006,0x0000003a,0x0000000d,0x6974706f,0x466c6163, + 0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x0000003a,0x0000000e,0x70736964, + 0x68637461,0x67616c46,0x00000073,0x00070006,0x0000003a,0x0000000f,0x5278616d,0x65646e65, + 0x7a695372,0x00000065,0x00090006,0x0000003a,0x00000010,0x6974706f,0x466c6163,0x48776f6c, + 0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x0000003a,0x00000011,0x496d754e,0x6174736e, + 0x7365636e,0x00000000,0x00090006,0x0000003a,0x00000012,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x73614274,0x00000065,0x00090006,0x0000003a,0x00000013,0x65746e69,0x6c6f7072, + 0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x0000003a,0x00000014,0x75626564, + 0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x0000003a,0x00000015,0x6b636162,0x66667542, + 0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000003a,0x00000016, + 0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x0000003a,0x00000017,0x6e615466, + 0x666c6148,0x00564f46,0x00050006,0x0000003a,0x00000018,0x6461705f,0x00000031,0x00050006, + 0x0000003a,0x00000019,0x74694a66,0x00726574,0x00080006,0x0000003a,0x0000001a,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000003c,0x49466263,0x00000000, + 0x00070005,0x00000047,0x706f5f72,0x61636974,0x6c665f6c,0x735f776f,0x00006463,0x00080005, + 0x00000056,0x645f7772,0x636f7369,0x73756c63,0x5f6e6f69,0x6b73616d,0x00000000,0x000a0005, + 0x00000060,0x675f7772,0x5f656d61,0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65, + 0x00000078,0x000a0005,0x00000065,0x675f7772,0x5f656d61,0x69746f6d,0x765f6e6f,0x6f746365, + 0x69665f72,0x5f646c65,0x00000079,0x000c0005,0x0000006a,0x6f5f7772,0x63697470,0x665f6c61, + 0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65,0x00000078,0x000c0005, + 0x0000006f,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365, + 0x69665f72,0x5f646c65,0x00000079,0x000a0005,0x00000075,0x6d617246,0x746e4965,0x6f707265, + 0x6974616c,0x57526e6f,0x6e756f43,0x73726574,0x0000745f,0x00050006,0x00000075,0x00000000, + 0x61746164,0x00000000,0x00050005,0x00000077,0x635f7772,0x746e756f,0x00737265,0x00040005, + 0x00000081,0x61726170,0x0000006d,0x00040005,0x00000082,0x61726170,0x0000006d,0x00040005, + 0x00000093,0x61726170,0x0000006d,0x00040005,0x00000094,0x61726170,0x0000006d,0x00040005, + 0x00000097,0x6e756f63,0x00726574,0x00040005,0x00000098,0x61726170,0x0000006d,0x00040005, + 0x0000009d,0x61726170,0x0000006d,0x00040005,0x0000009e,0x61726170,0x0000006d,0x00040005, + 0x000000a0,0x61726170,0x0000006d,0x00040005,0x000000a2,0x61726170,0x0000006d,0x00040005, + 0x000000a4,0x61726170,0x0000006d,0x00040005,0x000000a6,0x61726170,0x0000006d,0x00040005, + 0x000000a8,0x61726170,0x0000006d,0x00040005,0x000000aa,0x61726170,0x0000006d,0x00040005, + 0x000000ac,0x61726170,0x0000006d,0x00040005,0x000000ae,0x61726170,0x0000006d,0x00040005, + 0x000000b1,0x61726170,0x0000006d,0x00040005,0x000000b3,0x61726170,0x0000006d,0x00080005, + 0x000000b7,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x000000bc,0x61726170,0x0000006d,0x00060005,0x000000c3,0x694c5f73,0x7261656e,0x6d616c43, + 0x00000070,0x00030047,0x0000003a,0x00000002,0x00050048,0x0000003a,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000003a,0x00000001,0x00000023,0x00000008,0x00050048,0x0000003a, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000003a,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000003a,0x00000004,0x00000023,0x0000001c,0x00050048,0x0000003a,0x00000005, + 0x00000023,0x00000020,0x00050048,0x0000003a,0x00000006,0x00000023,0x00000028,0x00050048, + 0x0000003a,0x00000007,0x00000023,0x0000002c,0x00050048,0x0000003a,0x00000008,0x00000023, + 0x00000030,0x00050048,0x0000003a,0x00000009,0x00000023,0x00000040,0x00050048,0x0000003a, + 0x0000000a,0x00000023,0x00000044,0x00050048,0x0000003a,0x0000000b,0x00000023,0x00000048, + 0x00050048,0x0000003a,0x0000000c,0x00000023,0x00000050,0x00050048,0x0000003a,0x0000000d, + 0x00000023,0x00000058,0x00050048,0x0000003a,0x0000000e,0x00000023,0x0000005c,0x00050048, + 0x0000003a,0x0000000f,0x00000023,0x00000060,0x00050048,0x0000003a,0x00000010,0x00000023, + 0x00000068,0x00050048,0x0000003a,0x00000011,0x00000023,0x0000006c,0x00050048,0x0000003a, + 0x00000012,0x00000023,0x00000070,0x00050048,0x0000003a,0x00000013,0x00000023,0x00000078, + 0x00050048,0x0000003a,0x00000014,0x00000023,0x00000080,0x00050048,0x0000003a,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000003a,0x00000016,0x00000023,0x00000090,0x00050048, + 0x0000003a,0x00000017,0x00000023,0x00000098,0x00050048,0x0000003a,0x00000018,0x00000023, + 0x0000009c,0x00050048,0x0000003a,0x00000019,0x00000023,0x000000a0,0x00050048,0x0000003a, + 0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000003c,0x00000021,0x00000007,0x00040047, + 0x0000003c,0x00000022,0x00000000,0x00040047,0x00000047,0x00000021,0x00000000,0x00040047, + 0x00000047,0x00000022,0x00000000,0x00040047,0x00000056,0x00000021,0x00000005,0x00040047, + 0x00000056,0x00000022,0x00000000,0x00040047,0x00000060,0x00000021,0x00000001,0x00040047, + 0x00000060,0x00000022,0x00000000,0x00040047,0x00000065,0x00000021,0x00000002,0x00040047, + 0x00000065,0x00000022,0x00000000,0x00040047,0x0000006a,0x00000021,0x00000003,0x00040047, + 0x0000006a,0x00000022,0x00000000,0x00040047,0x0000006f,0x00000021,0x00000004,0x00040047, + 0x0000006f,0x00000022,0x00000000,0x00040047,0x00000074,0x00000006,0x00000004,0x00030047, + 0x00000075,0x00000002,0x00040048,0x00000075,0x00000000,0x00000017,0x00050048,0x00000075, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000077,0x00000017,0x00040047,0x00000077, + 0x00000021,0x00000006,0x00040047,0x00000077,0x00000022,0x00000000,0x00040047,0x000000b7, + 0x0000000b,0x0000001c,0x00040047,0x000000c3,0x00000021,0x000003e8,0x00040047,0x000000c3, + 0x00000022,0x00000000,0x00040047,0x000000d0,0x0000000b,0x00000019,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00020014,0x00000006,0x00030021,0x00000007,0x00000006, + 0x00040015,0x0000000c,0x00000020,0x00000001,0x00040017,0x0000000d,0x0000000c,0x00000002, + 0x00040020,0x0000000e,0x00000007,0x0000000d,0x00030016,0x0000000f,0x00000020,0x00040017, + 0x00000010,0x0000000f,0x00000002,0x00040020,0x00000011,0x00000007,0x00000010,0x00050021, + 0x00000012,0x00000002,0x0000000e,0x00000011,0x00040015,0x00000017,0x00000020,0x00000000, + 0x00040020,0x00000018,0x00000007,0x00000017,0x00050021,0x00000019,0x00000002,0x0000000e, + 0x00000018,0x00040020,0x0000002a,0x00000007,0x0000000c,0x00040021,0x0000002b,0x00000017, + 0x0000002a,0x00050021,0x0000002f,0x00000002,0x0000002a,0x00000018,0x00040021,0x00000034, + 0x00000002,0x0000000e,0x00040017,0x00000038,0x0000000f,0x00000004,0x00040017,0x00000039, + 0x0000000f,0x00000003,0x001d001e,0x0000003a,0x0000000d,0x0000000d,0x00000010,0x0000000f, + 0x0000000f,0x0000000d,0x0000000c,0x0000000c,0x00000038,0x0000000f,0x0000000c,0x0000000d, + 0x00000010,0x0000000c,0x00000017,0x0000000d,0x0000000c,0x0000000c,0x0000000d,0x0000000d, + 0x00000039,0x00000017,0x00000010,0x0000000f,0x0000000c,0x00000010,0x00000010,0x00040020, + 0x0000003b,0x00000002,0x0000003a,0x0004003b,0x0000003b,0x0000003c,0x00000002,0x0004002b, + 0x0000000c,0x0000003d,0x00000007,0x00040020,0x0000003e,0x00000002,0x0000000c,0x0004002b, + 0x0000000c,0x00000041,0x00000001,0x00090019,0x00000045,0x00000017,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000046,0x00000000,0x00000045, + 0x0004003b,0x00000046,0x00000047,0x00000000,0x0004002b,0x0000000c,0x00000049,0x00000000, + 0x0005002c,0x0000000d,0x0000004a,0x00000041,0x00000049,0x00040017,0x0000004b,0x00000017, + 0x00000004,0x0004002b,0x00000017,0x0000004d,0x00000000,0x0004002b,0x00000017,0x0000004f, + 0x0000000f,0x00090019,0x00000054,0x0000000f,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000000d,0x00040020,0x00000055,0x00000000,0x00000054,0x0004003b,0x00000055, + 0x00000056,0x00000000,0x0004002b,0x0000000f,0x0000005a,0x00000000,0x00090019,0x0000005e, + 0x00000017,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020, + 0x0000005f,0x00000000,0x0000005e,0x0004003b,0x0000005f,0x00000060,0x00000000,0x0004003b, + 0x0000005f,0x00000065,0x00000000,0x0004003b,0x0000005f,0x0000006a,0x00000000,0x0004003b, + 0x0000005f,0x0000006f,0x00000000,0x0003001d,0x00000074,0x00000017,0x0003001e,0x00000075, + 0x00000074,0x00040020,0x00000076,0x0000000c,0x00000075,0x0004003b,0x00000076,0x00000077, + 0x0000000c,0x00040020,0x00000079,0x0000000c,0x00000017,0x0005002c,0x0000000d,0x00000085, + 0x00000049,0x00000049,0x00040017,0x00000086,0x00000006,0x00000002,0x0004002b,0x00000017, + 0x0000009b,0x00000001,0x0005002c,0x00000010,0x000000b0,0x0000005a,0x0000005a,0x00040017, + 0x000000b5,0x00000017,0x00000003,0x00040020,0x000000b6,0x00000001,0x000000b5,0x0004003b, + 0x000000b6,0x000000b7,0x00000001,0x00040017,0x000000b8,0x00000017,0x00000002,0x0004002b, + 0x0000000f,0x000000be,0x387fda40,0x0004002b,0x0000000f,0x000000bf,0x477fe000,0x0004002b, + 0x0000000f,0x000000c0,0x37801002,0x0002001a,0x000000c1,0x00040020,0x000000c2,0x00000000, + 0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000000,0x0004002b,0x0000000f,0x000000c4, + 0x3a83126f,0x0004002b,0x0000000f,0x000000c5,0x7f7fffff,0x0004002b,0x0000000f,0x000000c6, + 0x00800000,0x0004002b,0x00000017,0x000000c7,0x00000020,0x0004002b,0x00000017,0x000000c8, + 0x00000010,0x0004002b,0x00000017,0x000000c9,0x00000005,0x0004002b,0x00000017,0x000000ca, + 0x0000000a,0x0004002b,0x00000017,0x000000cb,0x80000000,0x0004002b,0x00000017,0x000000cc, + 0x0000001f,0x0004002b,0x00000017,0x000000cd,0x000003ff,0x0004002b,0x00000017,0x000000ce, + 0x00000015,0x0004002b,0x00000017,0x000000cf,0x00000008,0x0006002c,0x000000b5,0x000000d0, + 0x000000cf,0x000000cf,0x0000009b,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000000e,0x000000bc,0x00000007,0x0004003d,0x000000b5, + 0x000000b9,0x000000b7,0x0007004f,0x000000b8,0x000000ba,0x000000b9,0x000000b9,0x00000000, + 0x00000001,0x0004007c,0x0000000d,0x000000bb,0x000000ba,0x0003003e,0x000000bc,0x000000bb, + 0x00050039,0x00000002,0x000000bd,0x00000036,0x000000bc,0x000100fd,0x00010038,0x00050036, + 0x00000006,0x00000008,0x00000000,0x00000007,0x000200f8,0x00000009,0x00050041,0x0000003e, + 0x0000003f,0x0000003c,0x0000003d,0x0004003d,0x0000000c,0x00000040,0x0000003f,0x000500aa, + 0x00000006,0x00000042,0x00000040,0x00000041,0x000200fe,0x00000042,0x00010038,0x00050036, + 0x00000006,0x0000000a,0x00000000,0x00000007,0x000200f8,0x0000000b,0x0004003d,0x00000045, + 0x00000048,0x00000047,0x0007005f,0x0000004b,0x0000004c,0x00000048,0x0000004a,0x00000002, + 0x00000049,0x00050051,0x00000017,0x0000004e,0x0000004c,0x00000000,0x000500c7,0x00000017, + 0x00000050,0x0000004e,0x0000004f,0x000500ab,0x00000006,0x00000051,0x00000050,0x0000004d, + 0x000200fe,0x00000051,0x00010038,0x00050036,0x00000002,0x00000015,0x00000000,0x00000012, + 0x00030037,0x0000000e,0x00000013,0x00030037,0x00000011,0x00000014,0x000200f8,0x00000016, + 0x0004003d,0x00000054,0x00000057,0x00000056,0x0004003d,0x0000000d,0x00000058,0x00000013, + 0x0004003d,0x00000010,0x00000059,0x00000014,0x00050051,0x0000000f,0x0000005b,0x00000059, + 0x00000000,0x00050051,0x0000000f,0x0000005c,0x00000059,0x00000001,0x00070050,0x00000038, + 0x0000005d,0x0000005b,0x0000005c,0x0000005a,0x0000005a,0x00040063,0x00000057,0x00000058, + 0x0000005d,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000001c,0x00000000,0x00000019, + 0x00030037,0x0000000e,0x0000001a,0x00030037,0x00000018,0x0000001b,0x000200f8,0x0000001d, + 0x0004003d,0x0000005e,0x00000061,0x00000060,0x0004003d,0x0000000d,0x00000062,0x0000001a, + 0x0004003d,0x00000017,0x00000063,0x0000001b,0x00070050,0x0000004b,0x00000064,0x00000063, + 0x0000004d,0x0000004d,0x0000004d,0x00040063,0x00000061,0x00000062,0x00000064,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000020,0x00000000,0x00000019,0x00030037,0x0000000e, + 0x0000001e,0x00030037,0x00000018,0x0000001f,0x000200f8,0x00000021,0x0004003d,0x0000005e, + 0x00000066,0x00000065,0x0004003d,0x0000000d,0x00000067,0x0000001e,0x0004003d,0x00000017, + 0x00000068,0x0000001f,0x00070050,0x0000004b,0x00000069,0x00000068,0x0000004d,0x0000004d, + 0x0000004d,0x00040063,0x00000066,0x00000067,0x00000069,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000024,0x00000000,0x00000019,0x00030037,0x0000000e,0x00000022,0x00030037, + 0x00000018,0x00000023,0x000200f8,0x00000025,0x0004003d,0x0000005e,0x0000006b,0x0000006a, + 0x0004003d,0x0000000d,0x0000006c,0x00000022,0x0004003d,0x00000017,0x0000006d,0x00000023, + 0x00070050,0x0000004b,0x0000006e,0x0000006d,0x0000004d,0x0000004d,0x0000004d,0x00040063, + 0x0000006b,0x0000006c,0x0000006e,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000028, + 0x00000000,0x00000019,0x00030037,0x0000000e,0x00000026,0x00030037,0x00000018,0x00000027, + 0x000200f8,0x00000029,0x0004003d,0x0000005e,0x00000070,0x0000006f,0x0004003d,0x0000000d, + 0x00000071,0x00000026,0x0004003d,0x00000017,0x00000072,0x00000027,0x00070050,0x0000004b, + 0x00000073,0x00000072,0x0000004d,0x0000004d,0x0000004d,0x00040063,0x00000070,0x00000071, + 0x00000073,0x000100fd,0x00010038,0x00050036,0x00000017,0x0000002d,0x00000000,0x0000002b, + 0x00030037,0x0000002a,0x0000002c,0x000200f8,0x0000002e,0x0004003d,0x0000000c,0x00000078, + 0x0000002c,0x00060041,0x00000079,0x0000007a,0x00000077,0x00000049,0x00000078,0x0004003d, + 0x00000017,0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038,0x00050036,0x00000002, + 0x00000032,0x00000000,0x0000002f,0x00030037,0x0000002a,0x00000030,0x00030037,0x00000018, + 0x00000031,0x000200f8,0x00000033,0x0004003d,0x0000000c,0x0000007e,0x00000030,0x0004003d, + 0x00000017,0x0000007f,0x00000031,0x00060041,0x00000079,0x00000080,0x00000077,0x00000049, + 0x0000007e,0x0003003e,0x00000080,0x0000007f,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000036,0x00000000,0x00000034,0x00030037,0x0000000e,0x00000035,0x000200f8,0x00000037, + 0x0004003b,0x0000002a,0x00000081,0x00000007,0x0004003b,0x00000018,0x00000082,0x00000007, + 0x0004003b,0x0000002a,0x00000093,0x00000007,0x0004003b,0x00000018,0x00000094,0x00000007, + 0x0004003b,0x00000018,0x00000097,0x00000007,0x0004003b,0x0000002a,0x00000098,0x00000007, + 0x0004003b,0x0000002a,0x0000009d,0x00000007,0x0004003b,0x00000018,0x0000009e,0x00000007, + 0x0004003b,0x0000000e,0x000000a0,0x00000007,0x0004003b,0x00000018,0x000000a2,0x00000007, + 0x0004003b,0x0000000e,0x000000a4,0x00000007,0x0004003b,0x00000018,0x000000a6,0x00000007, + 0x0004003b,0x0000000e,0x000000a8,0x00000007,0x0004003b,0x00000018,0x000000aa,0x00000007, + 0x0004003b,0x0000000e,0x000000ac,0x00000007,0x0004003b,0x00000018,0x000000ae,0x00000007, + 0x0004003b,0x0000000e,0x000000b1,0x00000007,0x0004003b,0x00000011,0x000000b3,0x00000007, + 0x0003003e,0x00000081,0x00000049,0x0003003e,0x00000082,0x0000004d,0x00060039,0x00000002, + 0x00000083,0x00000032,0x00000081,0x00000082,0x0004003d,0x0000000d,0x00000084,0x00000035, + 0x000500aa,0x00000086,0x00000087,0x00000084,0x00000085,0x0004009b,0x00000006,0x00000088, + 0x00000087,0x000300f7,0x0000008a,0x00000000,0x000400fa,0x00000088,0x00000089,0x0000008a, + 0x000200f8,0x00000089,0x00040039,0x00000006,0x0000008b,0x00000008,0x000400a8,0x00000006, + 0x0000008c,0x0000008b,0x000300f7,0x0000008e,0x00000000,0x000400fa,0x0000008c,0x0000008d, + 0x0000008e,0x000200f8,0x0000008d,0x00040039,0x00000006,0x0000008f,0x0000000a,0x000200f9, + 0x0000008e,0x000200f8,0x0000008e,0x000700f5,0x00000006,0x00000090,0x0000008b,0x00000089, + 0x0000008f,0x0000008d,0x000300f7,0x00000092,0x00000000,0x000400fa,0x00000090,0x00000091, + 0x00000096,0x000200f8,0x00000091,0x0003003e,0x00000093,0x00000041,0x0003003e,0x00000094, + 0x0000004d,0x00060039,0x00000002,0x00000095,0x00000032,0x00000093,0x00000094,0x000200f9, + 0x00000092,0x000200f8,0x00000096,0x0003003e,0x00000098,0x00000041,0x00050039,0x00000017, + 0x00000099,0x0000002d,0x00000098,0x0003003e,0x00000097,0x00000099,0x0004003d,0x00000017, + 0x0000009a,0x00000097,0x00050080,0x00000017,0x0000009c,0x0000009a,0x0000009b,0x0003003e, + 0x0000009d,0x00000041,0x0003003e,0x0000009e,0x0000009c,0x00060039,0x00000002,0x0000009f, + 0x00000032,0x0000009d,0x0000009e,0x000200f9,0x00000092,0x000200f8,0x00000092,0x000200f9, + 0x0000008a,0x000200f8,0x0000008a,0x0004003d,0x0000000d,0x000000a1,0x00000035,0x0003003e, + 0x000000a0,0x000000a1,0x0003003e,0x000000a2,0x0000004d,0x00060039,0x00000002,0x000000a3, + 0x0000001c,0x000000a0,0x000000a2,0x0004003d,0x0000000d,0x000000a5,0x00000035,0x0003003e, + 0x000000a4,0x000000a5,0x0003003e,0x000000a6,0x0000004d,0x00060039,0x00000002,0x000000a7, + 0x00000020,0x000000a4,0x000000a6,0x0004003d,0x0000000d,0x000000a9,0x00000035,0x0003003e, + 0x000000a8,0x000000a9,0x0003003e,0x000000aa,0x0000004d,0x00060039,0x00000002,0x000000ab, + 0x00000024,0x000000a8,0x000000aa,0x0004003d,0x0000000d,0x000000ad,0x00000035,0x0003003e, + 0x000000ac,0x000000ad,0x0003003e,0x000000ae,0x0000004d,0x00060039,0x00000002,0x000000af, + 0x00000028,0x000000ac,0x000000ae,0x0004003d,0x0000000d,0x000000b2,0x00000035,0x0003003e, + 0x000000b1,0x000000b2,0x0003003e,0x000000b3,0x000000b0,0x00060039,0x00000002,0x000000b4, + 0x00000015,0x000000b1,0x000000b3,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_luma_instability_comp_spv.h b/gpu/vk/shaders/fsr3_luma_instability_comp_spv.h new file mode 100644 index 000000000..eb4cbcc0b --- /dev/null +++ b/gpu/vk/shaders/fsr3_luma_instability_comp_spv.h @@ -0,0 +1,543 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_LUMA_INSTABILITY_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000027a,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000264,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005, + 0x0000000a,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x00000009,0x00000078, + 0x00060005,0x0000000f,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x0000000d, + 0x00000078,0x00030005,0x0000000e,0x00000079,0x00060005,0x00000016,0x4d786666,0x76286e69, + 0x763b3266,0x003b3266,0x00030005,0x00000014,0x00000078,0x00030005,0x00000015,0x00000079, + 0x00060005,0x0000001a,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x00000018, + 0x00000078,0x00030005,0x00000019,0x00000079,0x00060005,0x0000001e,0x4d786666,0x76287861, + 0x763b3266,0x003b3266,0x00030005,0x0000001c,0x00000078,0x00030005,0x0000001d,0x00000079, + 0x00050005,0x00000023,0x646e6552,0x69537265,0x0028657a,0x00090005,0x00000025,0x76657250, + 0x73756f69,0x6d617246,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00060005,0x00000027, + 0x5278614d,0x65646e65,0x7a695372,0x00002865,0x00040005,0x0000002a,0x7474694a,0x00287265, + 0x00080005,0x0000002c,0x76657250,0x73756f69,0x6d617246,0x74694a65,0x28726574,0x00000000, + 0x00070005,0x0000002f,0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028,0x00090005, + 0x00000037,0x726f7453,0x6d754c65,0x73694861,0x79726f74,0x32697628,0x3466763b,0x0000003b, + 0x00040005,0x00000035,0x50785069,0x0000736f,0x00060005,0x00000036,0x6d754c66,0x73694861, + 0x79726f74,0x00000000,0x00080005,0x0000003b,0x706d6153,0x754c656c,0x6948616d,0x726f7473, + 0x66762879,0x00003b32,0x00030005,0x0000003a,0x00565566,0x000c0005,0x0000003d,0x46746547, + 0x68747261,0x44747365,0x68747065,0x3170694d,0x6f736552,0x65637275,0x656d6944,0x6f69736e, + 0x0028736e,0x000a0005,0x00000041,0x706d6153,0x6146656c,0x65687472,0x65447473,0x4d687470, + 0x28317069,0x3b326676,0x00000000,0x00030005,0x00000040,0x00565566,0x00080005,0x00000044, + 0x706d6153,0x7543656c,0x6e657272,0x6d754c74,0x66762861,0x00003b32,0x00030005,0x00000043, + 0x00007675,0x000a0005,0x00000049,0x726f7453,0x6d754c65,0x736e4961,0x69626174,0x7974696c, + 0x32697628,0x3b31663b,0x00000000,0x00040005,0x00000047,0x50785069,0x0000736f,0x00070005, + 0x00000048,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x00000000,0x000a0005,0x0000004d, + 0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x00000000, + 0x00050005,0x0000004c,0x49785069,0x7475706e,0x00000000,0x00050005,0x0000004f,0x6f707845, + 0x65727573,0x00000028,0x000a0005,0x00000052,0x706d6153,0x6944656c,0x6574616c,0x61655264, + 0x76697463,0x73614d65,0x7628736b,0x003b3266,0x00030005,0x00000051,0x00565566,0x00070005, + 0x00000055,0x34746547,0x6c65564b,0x7469636f,0x66762879,0x00003b32,0x00060005,0x00000054, + 0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00090005,0x0000005b,0x446e694d,0x64697669, + 0x79426465,0x2878614d,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000058,0x00003076, + 0x00030005,0x00000059,0x00003176,0x00070005,0x0000005a,0x5a6e4f66,0x526f7265,0x72757465, + 0x6c61566e,0x00006575,0x00080005,0x00000060,0x446e694d,0x64697669,0x79426465,0x2878614d, + 0x663b3166,0x00003b31,0x00030005,0x0000005e,0x00003076,0x00030005,0x0000005f,0x00003176, + 0x00060005,0x00000065,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000064, + 0x00765566,0x00080005,0x0000006b,0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976, + 0x00000000,0x00030005,0x00000068,0x00765566,0x00060005,0x00000069,0x78655469,0x65727574, + 0x657a6953,0x00000000,0x00060005,0x0000006a,0x73655269,0x6372756f,0x7a695365,0x00000065, + 0x00090005,0x0000006d,0x616d754c,0x74736e49,0x6c696261,0x46797469,0x6f746361,0x74614472, + 0x00000061,0x00070006,0x0000006d,0x00000000,0x6d754c66,0x73694861,0x79726f74,0x00000000, + 0x00090006,0x0000006d,0x00000001,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x74636146, + 0x0000726f,0x00160005,0x00000073,0x706d6f43,0x4c657475,0x49616d75,0x6174736e,0x696c6962, + 0x61467974,0x726f7463,0x72747328,0x2d746375,0x616d754c,0x74736e49,0x6c696261,0x46797469, + 0x6f746361,0x74614472,0x66762d61,0x31662d34,0x31663b31,0x3b31663b,0x00000000,0x00040005, + 0x00000070,0x61746164,0x00000000,0x00070005,0x00000071,0x72754366,0x746e6572,0x6d617246, + 0x6d754c65,0x00000061,0x00080005,0x00000072,0x72614666,0x73656874,0x70654474,0x6e496874, + 0x6574654d,0x00007372,0x00080005,0x00000077,0x616d754c,0x74736e49,0x6c696261,0x28797469, + 0x3b326976,0x00000000,0x00040005,0x00000076,0x50785069,0x0000736f,0x00070005,0x00000093, + 0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x00000093,0x00000000, + 0x6e655269,0x53726564,0x00657a69,0x000a0006,0x00000093,0x00000001,0x65725069,0x756f6976, + 0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x00000093,0x00000002, + 0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x00000093,0x00000003,0x65725069, + 0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000093, + 0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x00000093,0x00000005, + 0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x00000093,0x00000006,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x00000093,0x00000007,0x74694a66, + 0x00726574,0x00090006,0x00000093,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d, + 0x72657474,0x00000000,0x00080006,0x00000093,0x00000009,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00080006,0x00000093,0x0000000a,0x776f4466,0x6163736e,0x6146656c, + 0x726f7463,0x00000000,0x000b0006,0x00000093,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365, + 0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x00000093,0x0000000c, + 0x6e615466,0x666c6148,0x00564f46,0x00090006,0x00000093,0x0000000d,0x74694a66,0x53726574, + 0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x00000093,0x0000000e,0x6c654466, + 0x69546174,0x0000656d,0x00080006,0x00000093,0x0000000f,0x6c654466,0x72506174,0x70784565, + 0x7275736f,0x00000065,0x000a0006,0x00000093,0x00000010,0x65695666,0x61705377,0x6f546563, + 0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x00000093,0x00000011,0x61724666, + 0x6e49656d,0x00786564,0x00070006,0x00000093,0x00000012,0x6c655666,0x7469636f,0x63614679, + 0x00726f74,0x00080006,0x00000093,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373, + 0x0000656c,0x00080006,0x00000093,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567, + 0x00656c61,0x000a0006,0x00000093,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e, + 0x65506465,0x61724672,0x0000656d,0x000b0006,0x00000093,0x00000016,0x6e694d66,0x6f736944, + 0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x00000095, + 0x53466263,0x70553352,0x6c616373,0x00007265,0x00060005,0x000000b9,0x6c5f7772,0x5f616d75, + 0x74736968,0x0079726f,0x00060005,0x000000bf,0x756c5f72,0x685f616d,0x6f747369,0x00007972, + 0x00060005,0x000000c3,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00080005,0x000000cb, + 0x61665f72,0x65687472,0x645f7473,0x68747065,0x70696d5f,0x00000031,0x00060005,0x000000da, + 0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00070005,0x000000e5,0x6c5f7772,0x5f616d75, + 0x74736e69,0x6c696261,0x00797469,0x00090005,0x000000ea,0x69645f72,0x6574616c,0x6f6d5f64, + 0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005,0x000000f1,0x6f707865,0x65727573, + 0x00000000,0x00070005,0x000000f2,0x6e695f72,0x5f747570,0x6f707865,0x65727573,0x00000000, + 0x00090005,0x000000fe,0x69645f72,0x6574616c,0x65725f64,0x69746361,0x6d5f6576,0x736b7361, + 0x00000000,0x00030005,0x0000010e,0x0000006d,0x00040005,0x0000010f,0x61726170,0x0000006d, + 0x00040005,0x00000110,0x61726170,0x0000006d,0x00040005,0x00000117,0x61726170,0x0000006d, + 0x00040005,0x00000118,0x61726170,0x0000006d,0x00030005,0x00000120,0x0000006d,0x00040005, + 0x00000121,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005, + 0x00000129,0x61726170,0x0000006d,0x00040005,0x0000012a,0x61726170,0x0000006d,0x00060005, + 0x0000014a,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x0000014f,0x616c4366, + 0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x00000155,0x61726170,0x0000006d, + 0x00040005,0x00000157,0x61726170,0x0000006d,0x00040005,0x00000159,0x61726170,0x0000006d, + 0x00040005,0x0000015a,0x61726170,0x0000006d,0x00050005,0x0000015c,0x616c4366,0x6465706d, + 0x00007655,0x00070005,0x00000164,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x00000000, + 0x00040005,0x00000165,0x66694466,0x00307366,0x00060005,0x0000016a,0x6d695366,0x72616c69, + 0x30797469,0x00000000,0x00060005,0x0000016f,0x78614d66,0x696d6953,0x6972616c,0x00007974, + 0x00030005,0x00000176,0x00000069,0x00040005,0x0000017f,0x66694466,0x00317366,0x00060005, + 0x00000185,0x6d695366,0x72616c69,0x31797469,0x00000000,0x00040005,0x00000192,0x61726170, + 0x0000006d,0x00040005,0x00000194,0x61726170,0x0000006d,0x00040005,0x000001ba,0x61746164, + 0x00000000,0x00080005,0x000001be,0x6c694466,0x64657461,0x69746f4d,0x65566e6f,0x726f7463, + 0x00000000,0x00040005,0x000001bf,0x61726170,0x0000006d,0x00030005,0x000001c2,0x00765566, + 0x00080005,0x000001ca,0x43765566,0x46727275,0x656d6172,0x7474694a,0x64657265,0x00000000, + 0x00080005,0x000001d1,0x50765566,0x46766572,0x656d6172,0x7474694a,0x64657265,0x00000000, + 0x00060005,0x000001d8,0x70655266,0x656a6f72,0x64657463,0x00007655,0x00040005,0x000001dc, + 0x61726170,0x0000006d,0x00060005,0x000001e1,0x52765566,0x74636165,0x5f657669,0x00005748, + 0x00040005,0x000001e4,0x61726170,0x0000006d,0x00040005,0x000001e6,0x61726170,0x0000006d, + 0x00040005,0x000001e7,0x61726170,0x0000006d,0x00080005,0x000001e9,0x6c694466,0x64657461, + 0x63616552,0x65766974,0x6b73614d,0x00000073,0x00040005,0x000001ea,0x61726170,0x0000006d, + 0x00060005,0x000001ed,0x61655266,0x76697463,0x73614d65,0x0000006b,0x00040005,0x000001ee, + 0x61726170,0x0000006d,0x00060005,0x000001f2,0x73694466,0x6c63636f,0x6f697375,0x0000006e, + 0x00040005,0x000001f3,0x61726170,0x0000006d,0x00060005,0x000001f7,0x61685366,0x676e6964, + 0x6e616843,0x00006567,0x00040005,0x000001f8,0x61726170,0x0000006d,0x00060005,0x000001fc, + 0x63634166,0x6c756d75,0x6f697461,0x0000006e,0x00040005,0x000001fd,0x61726170,0x0000006d, + 0x00070005,0x00000202,0x63634162,0x6c756d75,0x6f697461,0x6361466e,0x00726f74,0x00070005, + 0x00000206,0x6d6f4362,0x65747570,0x74736e49,0x6c696261,0x00797469,0x00040005,0x0000020b, + 0x5f765566,0x00005748,0x00040005,0x0000020e,0x61726170,0x0000006d,0x00040005,0x00000210, + 0x61726170,0x0000006d,0x00040005,0x00000211,0x61726170,0x0000006d,0x00070005,0x00000213, + 0x72754366,0x746e6572,0x6d617246,0x6d754c65,0x00000061,0x00040005,0x00000214,0x61726170, + 0x0000006d,0x00070005,0x00000219,0x70655266,0x656a6f72,0x64657463,0x485f7655,0x00000057, + 0x00040005,0x0000021c,0x61726170,0x0000006d,0x00040005,0x0000021e,0x61726170,0x0000006d, + 0x00040005,0x0000021f,0x61726170,0x0000006d,0x00040005,0x00000221,0x61726170,0x0000006d, + 0x00070005,0x00000229,0x72614666,0x73656874,0x70654474,0x76556874,0x0057485f,0x00040005, + 0x0000022f,0x61726170,0x0000006d,0x00040005,0x00000231,0x61726170,0x0000006d,0x00040005, + 0x00000232,0x61726170,0x0000006d,0x00080005,0x00000234,0x72614666,0x73656874,0x70654474, + 0x6e496874,0x6574654d,0x00007372,0x00040005,0x00000235,0x61726170,0x0000006d,0x00040005, + 0x00000238,0x61726170,0x0000006d,0x00040005,0x0000023a,0x61726170,0x0000006d,0x00040005, + 0x0000023c,0x61726170,0x0000006d,0x00060005,0x0000023f,0x6c655666,0x7469636f,0x69655779, + 0x00746867,0x00040005,0x00000240,0x61726170,0x0000006d,0x00040005,0x00000245,0x61726170, + 0x0000006d,0x00040005,0x00000256,0x61726170,0x0000006d,0x00040005,0x00000258,0x61726170, + 0x0000006d,0x00040005,0x0000025c,0x61726170,0x0000006d,0x00040005,0x0000025e,0x61726170, + 0x0000006d,0x00080005,0x00000264,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x00000044,0x00040005,0x00000269,0x61726170,0x0000006d,0x00060005,0x0000026e,0x6f505f73, + 0x43746e69,0x706d616c,0x00000000,0x00060005,0x0000026f,0x72665f72,0x5f656d61,0x6f666e69, + 0x00000000,0x00030047,0x00000093,0x00000002,0x00050048,0x00000093,0x00000000,0x00000023, + 0x00000000,0x00050048,0x00000093,0x00000001,0x00000023,0x00000008,0x00050048,0x00000093, + 0x00000002,0x00000023,0x00000010,0x00050048,0x00000093,0x00000003,0x00000023,0x00000018, + 0x00050048,0x00000093,0x00000004,0x00000023,0x00000020,0x00050048,0x00000093,0x00000005, + 0x00000023,0x00000028,0x00050048,0x00000093,0x00000006,0x00000023,0x00000030,0x00050048, + 0x00000093,0x00000007,0x00000023,0x00000040,0x00050048,0x00000093,0x00000008,0x00000023, + 0x00000048,0x00050048,0x00000093,0x00000009,0x00000023,0x00000050,0x00050048,0x00000093, + 0x0000000a,0x00000023,0x00000058,0x00050048,0x00000093,0x0000000b,0x00000023,0x00000060, + 0x00050048,0x00000093,0x0000000c,0x00000023,0x00000068,0x00050048,0x00000093,0x0000000d, + 0x00000023,0x0000006c,0x00050048,0x00000093,0x0000000e,0x00000023,0x00000070,0x00050048, + 0x00000093,0x0000000f,0x00000023,0x00000074,0x00050048,0x00000093,0x00000010,0x00000023, + 0x00000078,0x00050048,0x00000093,0x00000011,0x00000023,0x0000007c,0x00050048,0x00000093, + 0x00000012,0x00000023,0x00000080,0x00050048,0x00000093,0x00000013,0x00000023,0x00000084, + 0x00050048,0x00000093,0x00000014,0x00000023,0x00000088,0x00050048,0x00000093,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x00000093,0x00000016,0x00000023,0x00000090,0x00040047, + 0x00000095,0x00000021,0x00000009,0x00040047,0x00000095,0x00000022,0x00000000,0x00040047, + 0x000000b9,0x00000021,0x00000007,0x00040047,0x000000b9,0x00000022,0x00000000,0x00040047, + 0x000000bf,0x00000021,0x00000004,0x00040047,0x000000bf,0x00000022,0x00000000,0x00040047, + 0x000000c3,0x00000021,0x000003e9,0x00040047,0x000000c3,0x00000022,0x00000000,0x00040047, + 0x000000cb,0x00000021,0x00000005,0x00040047,0x000000cb,0x00000022,0x00000000,0x00040047, + 0x000000da,0x00000021,0x00000006,0x00040047,0x000000da,0x00000022,0x00000000,0x00040047, + 0x000000e5,0x00000021,0x00000008,0x00040047,0x000000e5,0x00000022,0x00000000,0x00040047, + 0x000000ea,0x00000021,0x00000002,0x00040047,0x000000ea,0x00000022,0x00000000,0x00040047, + 0x000000f2,0x00000021,0x00000000,0x00040047,0x000000f2,0x00000022,0x00000000,0x00040047, + 0x000000fe,0x00000021,0x00000001,0x00040047,0x000000fe,0x00000022,0x00000000,0x00040047, + 0x00000264,0x0000000b,0x0000001c,0x00040047,0x0000026e,0x00000021,0x000003e8,0x00040047, + 0x0000026e,0x00000022,0x00000000,0x00040047,0x0000026f,0x00000021,0x00000003,0x00040047, + 0x0000026f,0x00000022,0x00000000,0x00040047,0x00000279,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020, + 0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00050021, + 0x0000000c,0x00000006,0x00000007,0x00000007,0x00040017,0x00000011,0x00000006,0x00000002, + 0x00040020,0x00000012,0x00000007,0x00000011,0x00050021,0x00000013,0x00000011,0x00000012, + 0x00000012,0x00040015,0x00000020,0x00000020,0x00000001,0x00040017,0x00000021,0x00000020, + 0x00000002,0x00030021,0x00000022,0x00000021,0x00030021,0x00000029,0x00000011,0x00030021, + 0x0000002e,0x00000006,0x00040020,0x00000031,0x00000007,0x00000021,0x00040017,0x00000032, + 0x00000006,0x00000004,0x00040020,0x00000033,0x00000007,0x00000032,0x00050021,0x00000034, + 0x00000002,0x00000031,0x00000033,0x00040021,0x00000039,0x00000032,0x00000012,0x00040021, + 0x0000003f,0x00000006,0x00000012,0x00050021,0x00000046,0x00000002,0x00000031,0x00000007, + 0x00040021,0x0000004b,0x00000011,0x00000031,0x00060021,0x00000057,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00050021,0x0000005d,0x00000006,0x00000006,0x00000006,0x00020014, + 0x00000062,0x00040021,0x00000063,0x00000062,0x00000012,0x00060021,0x00000067,0x00000011, + 0x00000012,0x00000031,0x00000031,0x0004001e,0x0000006d,0x00000032,0x00000006,0x00040020, + 0x0000006e,0x00000007,0x0000006d,0x00060021,0x0000006f,0x0000006d,0x0000006e,0x00000007, + 0x00000007,0x00040021,0x00000075,0x00000002,0x00000031,0x0004002b,0x00000006,0x0000007a, + 0x00000000,0x0004002b,0x00000006,0x0000007b,0x3f800000,0x0019001e,0x00000093,0x00000021, + 0x00000021,0x00000021,0x00000021,0x00000021,0x00000021,0x00000032,0x00000011,0x00000011, + 0x00000011,0x00000011,0x00000011,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000094, + 0x00000002,0x00000093,0x0004003b,0x00000094,0x00000095,0x00000002,0x0004002b,0x00000020, + 0x00000096,0x00000000,0x00040020,0x00000097,0x00000002,0x00000021,0x0004002b,0x00000020, + 0x0000009c,0x00000001,0x0004002b,0x00000020,0x000000a1,0x00000004,0x0004002b,0x00000020, + 0x000000a6,0x00000007,0x00040020,0x000000a7,0x00000002,0x00000011,0x0004002b,0x00000020, + 0x000000ac,0x00000008,0x0004002b,0x00000020,0x000000b1,0x0000000f,0x00040020,0x000000b2, + 0x00000002,0x00000006,0x00090019,0x000000b7,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000004,0x00040020,0x000000b8,0x00000000,0x000000b7,0x0004003b, + 0x000000b8,0x000000b9,0x00000000,0x00090019,0x000000bd,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000be,0x00000000,0x000000bd, + 0x0004003b,0x000000be,0x000000bf,0x00000000,0x0002001a,0x000000c1,0x00040020,0x000000c2, + 0x00000000,0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000000,0x0003001b,0x000000c5, + 0x000000bd,0x0004003b,0x000000be,0x000000cb,0x00000000,0x00040015,0x000000d5,0x00000020, + 0x00000000,0x0004002b,0x000000d5,0x000000d6,0x00000000,0x0004003b,0x000000be,0x000000da, + 0x00000000,0x00090019,0x000000e3,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000009,0x00040020,0x000000e4,0x00000000,0x000000e3,0x0004003b,0x000000e4, + 0x000000e5,0x00000000,0x0004003b,0x000000be,0x000000ea,0x00000000,0x0004003b,0x000000be, + 0x000000f2,0x00000000,0x0005002c,0x00000021,0x000000f4,0x00000096,0x00000096,0x0004003b, + 0x000000be,0x000000fe,0x00000000,0x0004002b,0x00000006,0x00000107,0x45700000,0x0004002b, + 0x00000006,0x00000108,0x45070000,0x0005002c,0x00000011,0x00000109,0x00000107,0x00000108, + 0x0004002b,0x000000d5,0x0000013d,0x00000001,0x0004002b,0x00000006,0x00000150,0x3f000000, + 0x0005002c,0x00000011,0x00000151,0x00000150,0x00000150,0x00040020,0x00000175,0x00000007, + 0x00000020,0x0004002b,0x00000020,0x0000017d,0x00000003,0x0004002b,0x000000d5,0x0000019d, + 0x00000002,0x0004002b,0x000000d5,0x000001a0,0x00000003,0x0007002c,0x00000032,0x000001bc, + 0x0000007a,0x0000007a,0x0000007a,0x0000007a,0x00040020,0x00000201,0x00000007,0x00000062, + 0x0004002b,0x00000006,0x00000204,0x3f666666,0x0004002b,0x00000020,0x0000022b,0x00000002, + 0x0004002b,0x00000006,0x00000243,0x41a00000,0x00040017,0x00000262,0x000000d5,0x00000003, + 0x00040020,0x00000263,0x00000001,0x00000262,0x0004003b,0x00000263,0x00000264,0x00000001, + 0x00040017,0x00000265,0x000000d5,0x00000002,0x0004002b,0x00000006,0x0000026b,0x387fda40, + 0x0004002b,0x00000006,0x0000026c,0x477fe000,0x0004002b,0x00000006,0x0000026d,0x37801002, + 0x0004003b,0x000000c2,0x0000026e,0x00000000,0x0004003b,0x000000be,0x0000026f,0x00000000, + 0x0004002b,0x00000006,0x00000270,0x7f7fffff,0x0004002b,0x00000006,0x00000271,0x00800000, + 0x0004002b,0x00000006,0x00000272,0x3a1fe868,0x0004002b,0x00000006,0x00000273,0x3d800000, + 0x0004002b,0x00000006,0x00000274,0x3d3d70a4,0x0004002b,0x00000006,0x00000275,0x3e400000, + 0x0004002b,0x00000006,0x00000276,0x40000000,0x0004002b,0x00000006,0x00000277,0x461c4000, + 0x0004002b,0x000000d5,0x00000278,0x00000008,0x0006002c,0x00000262,0x00000279,0x00000278, + 0x00000278,0x0000013d,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000031,0x00000269,0x00000007,0x0004003d,0x00000262,0x00000266, + 0x00000264,0x0007004f,0x00000265,0x00000267,0x00000266,0x00000266,0x00000000,0x00000001, + 0x0004007c,0x00000021,0x00000268,0x00000267,0x0003003e,0x00000269,0x00000268,0x00050039, + 0x00000002,0x0000026a,0x00000077,0x00000269,0x000100fd,0x00010038,0x00050036,0x00000006, + 0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b, + 0x0004003d,0x00000006,0x00000079,0x00000009,0x0008000c,0x00000006,0x0000007c,0x00000001, + 0x0000002b,0x00000079,0x0000007a,0x0000007b,0x000200fe,0x0000007c,0x00010038,0x00050036, + 0x00000006,0x0000000f,0x00000000,0x0000000c,0x00030037,0x00000007,0x0000000d,0x00030037, + 0x00000007,0x0000000e,0x000200f8,0x00000010,0x0004003d,0x00000006,0x0000007f,0x0000000d, + 0x0004003d,0x00000006,0x00000080,0x0000000e,0x0007000c,0x00000006,0x00000081,0x00000001, + 0x00000025,0x0000007f,0x00000080,0x000200fe,0x00000081,0x00010038,0x00050036,0x00000011, + 0x00000016,0x00000000,0x00000013,0x00030037,0x00000012,0x00000014,0x00030037,0x00000012, + 0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000011,0x00000084,0x00000014,0x0004003d, + 0x00000011,0x00000085,0x00000015,0x0007000c,0x00000011,0x00000086,0x00000001,0x00000025, + 0x00000084,0x00000085,0x000200fe,0x00000086,0x00010038,0x00050036,0x00000006,0x0000001a, + 0x00000000,0x0000000c,0x00030037,0x00000007,0x00000018,0x00030037,0x00000007,0x00000019, + 0x000200f8,0x0000001b,0x0004003d,0x00000006,0x00000089,0x00000018,0x0004003d,0x00000006, + 0x0000008a,0x00000019,0x0007000c,0x00000006,0x0000008b,0x00000001,0x00000028,0x00000089, + 0x0000008a,0x000200fe,0x0000008b,0x00010038,0x00050036,0x00000011,0x0000001e,0x00000000, + 0x00000013,0x00030037,0x00000012,0x0000001c,0x00030037,0x00000012,0x0000001d,0x000200f8, + 0x0000001f,0x0004003d,0x00000011,0x0000008e,0x0000001c,0x0004003d,0x00000011,0x0000008f, + 0x0000001d,0x0007000c,0x00000011,0x00000090,0x00000001,0x00000028,0x0000008e,0x0000008f, + 0x000200fe,0x00000090,0x00010038,0x00050036,0x00000021,0x00000023,0x00000000,0x00000022, + 0x000200f8,0x00000024,0x00050041,0x00000097,0x00000098,0x00000095,0x00000096,0x0004003d, + 0x00000021,0x00000099,0x00000098,0x000200fe,0x00000099,0x00010038,0x00050036,0x00000021, + 0x00000025,0x00000000,0x00000022,0x000200f8,0x00000026,0x00050041,0x00000097,0x0000009d, + 0x00000095,0x0000009c,0x0004003d,0x00000021,0x0000009e,0x0000009d,0x000200fe,0x0000009e, + 0x00010038,0x00050036,0x00000021,0x00000027,0x00000000,0x00000022,0x000200f8,0x00000028, + 0x00050041,0x00000097,0x000000a2,0x00000095,0x000000a1,0x0004003d,0x00000021,0x000000a3, + 0x000000a2,0x000200fe,0x000000a3,0x00010038,0x00050036,0x00000011,0x0000002a,0x00000000, + 0x00000029,0x000200f8,0x0000002b,0x00050041,0x000000a7,0x000000a8,0x00000095,0x000000a6, + 0x0004003d,0x00000011,0x000000a9,0x000000a8,0x000200fe,0x000000a9,0x00010038,0x00050036, + 0x00000011,0x0000002c,0x00000000,0x00000029,0x000200f8,0x0000002d,0x00050041,0x000000a7, + 0x000000ad,0x00000095,0x000000ac,0x0004003d,0x00000011,0x000000ae,0x000000ad,0x000200fe, + 0x000000ae,0x00010038,0x00050036,0x00000006,0x0000002f,0x00000000,0x0000002e,0x000200f8, + 0x00000030,0x00050041,0x000000b2,0x000000b3,0x00000095,0x000000b1,0x0004003d,0x00000006, + 0x000000b4,0x000000b3,0x000200fe,0x000000b4,0x00010038,0x00050036,0x00000002,0x00000037, + 0x00000000,0x00000034,0x00030037,0x00000031,0x00000035,0x00030037,0x00000033,0x00000036, + 0x000200f8,0x00000038,0x0004003d,0x000000b7,0x000000ba,0x000000b9,0x0004003d,0x00000021, + 0x000000bb,0x00000035,0x0004003d,0x00000032,0x000000bc,0x00000036,0x00040063,0x000000ba, + 0x000000bb,0x000000bc,0x000100fd,0x00010038,0x00050036,0x00000032,0x0000003b,0x00000000, + 0x00000039,0x00030037,0x00000012,0x0000003a,0x000200f8,0x0000003c,0x0004003d,0x000000bd, + 0x000000c0,0x000000bf,0x0004003d,0x000000c1,0x000000c4,0x000000c3,0x00050056,0x000000c5, + 0x000000c6,0x000000c0,0x000000c4,0x0004003d,0x00000011,0x000000c7,0x0000003a,0x00070058, + 0x00000032,0x000000c8,0x000000c6,0x000000c7,0x00000002,0x0000007a,0x000200fe,0x000000c8, + 0x00010038,0x00050036,0x00000021,0x0000003d,0x00000000,0x00000022,0x000200f8,0x0000003e, + 0x0004003d,0x000000bd,0x000000cc,0x000000cb,0x00050067,0x00000021,0x000000cd,0x000000cc, + 0x00000096,0x000200fe,0x000000cd,0x00010038,0x00050036,0x00000006,0x00000041,0x00000000, + 0x0000003f,0x00030037,0x00000012,0x00000040,0x000200f8,0x00000042,0x0004003d,0x000000bd, + 0x000000d0,0x000000cb,0x0004003d,0x000000c1,0x000000d1,0x000000c3,0x00050056,0x000000c5, + 0x000000d2,0x000000d0,0x000000d1,0x0004003d,0x00000011,0x000000d3,0x00000040,0x00070058, + 0x00000032,0x000000d4,0x000000d2,0x000000d3,0x00000002,0x0000007a,0x00050051,0x00000006, + 0x000000d7,0x000000d4,0x00000000,0x000200fe,0x000000d7,0x00010038,0x00050036,0x00000006, + 0x00000044,0x00000000,0x0000003f,0x00030037,0x00000012,0x00000043,0x000200f8,0x00000045, + 0x0004003d,0x000000bd,0x000000db,0x000000da,0x0004003d,0x000000c1,0x000000dc,0x000000c3, + 0x00050056,0x000000c5,0x000000dd,0x000000db,0x000000dc,0x0004003d,0x00000011,0x000000de, + 0x00000043,0x00070058,0x00000032,0x000000df,0x000000dd,0x000000de,0x00000002,0x0000007a, + 0x00050051,0x00000006,0x000000e0,0x000000df,0x00000000,0x000200fe,0x000000e0,0x00010038, + 0x00050036,0x00000002,0x00000049,0x00000000,0x00000046,0x00030037,0x00000031,0x00000047, + 0x00030037,0x00000007,0x00000048,0x000200f8,0x0000004a,0x0004003d,0x000000e3,0x000000e6, + 0x000000e5,0x0004003d,0x00000021,0x000000e7,0x00000047,0x0004003d,0x00000006,0x000000e8, + 0x00000048,0x00070050,0x00000032,0x000000e9,0x000000e8,0x0000007a,0x0000007a,0x0000007a, + 0x00040063,0x000000e6,0x000000e7,0x000000e9,0x000100fd,0x00010038,0x00050036,0x00000011, + 0x0000004d,0x00000000,0x0000004b,0x00030037,0x00000031,0x0000004c,0x000200f8,0x0000004e, + 0x0004003d,0x000000bd,0x000000eb,0x000000ea,0x0004003d,0x00000021,0x000000ec,0x0000004c, + 0x0007005f,0x00000032,0x000000ed,0x000000eb,0x000000ec,0x00000002,0x00000096,0x0007004f, + 0x00000011,0x000000ee,0x000000ed,0x000000ed,0x00000000,0x00000001,0x000200fe,0x000000ee, + 0x00010038,0x00050036,0x00000006,0x0000004f,0x00000000,0x0000002e,0x000200f8,0x00000050, + 0x0004003b,0x00000007,0x000000f1,0x00000007,0x0004003d,0x000000bd,0x000000f3,0x000000f2, + 0x0007005f,0x00000032,0x000000f5,0x000000f3,0x000000f4,0x00000002,0x00000096,0x00050051, + 0x00000006,0x000000f6,0x000000f5,0x00000000,0x0003003e,0x000000f1,0x000000f6,0x0004003d, + 0x00000006,0x000000f7,0x000000f1,0x000500b4,0x00000062,0x000000f8,0x000000f7,0x0000007a, + 0x000300f7,0x000000fa,0x00000000,0x000400fa,0x000000f8,0x000000f9,0x000000fa,0x000200f8, + 0x000000f9,0x0003003e,0x000000f1,0x0000007b,0x000200f9,0x000000fa,0x000200f8,0x000000fa, + 0x0004003d,0x00000006,0x000000fb,0x000000f1,0x000200fe,0x000000fb,0x00010038,0x00050036, + 0x00000032,0x00000052,0x00000000,0x00000039,0x00030037,0x00000012,0x00000051,0x000200f8, + 0x00000053,0x0004003d,0x000000bd,0x000000ff,0x000000fe,0x0004003d,0x000000c1,0x00000100, + 0x000000c3,0x00050056,0x000000c5,0x00000101,0x000000ff,0x00000100,0x0004003d,0x00000011, + 0x00000102,0x00000051,0x00070058,0x00000032,0x00000103,0x00000101,0x00000102,0x00000002, + 0x0000007a,0x000200fe,0x00000103,0x00010038,0x00050036,0x00000006,0x00000055,0x00000000, + 0x0000003f,0x00030037,0x00000012,0x00000054,0x000200f8,0x00000056,0x0004003d,0x00000011, + 0x00000106,0x00000054,0x00050085,0x00000011,0x0000010a,0x00000106,0x00000109,0x0006000c, + 0x00000006,0x0000010b,0x00000001,0x00000042,0x0000010a,0x000200fe,0x0000010b,0x00010038, + 0x00050036,0x00000006,0x0000005b,0x00000000,0x00000057,0x00030037,0x00000006,0x00000058, + 0x00030037,0x00000006,0x00000059,0x00030037,0x00000006,0x0000005a,0x000200f8,0x0000005c, + 0x0004003b,0x00000007,0x0000010e,0x00000007,0x0004003b,0x00000007,0x0000010f,0x00000007, + 0x0004003b,0x00000007,0x00000110,0x00000007,0x0004003b,0x00000007,0x00000114,0x00000007, + 0x0004003b,0x00000007,0x00000117,0x00000007,0x0004003b,0x00000007,0x00000118,0x00000007, + 0x0003003e,0x0000010f,0x00000058,0x0003003e,0x00000110,0x00000059,0x00060039,0x00000006, + 0x00000111,0x0000001a,0x0000010f,0x00000110,0x0003003e,0x0000010e,0x00000111,0x0004003d, + 0x00000006,0x00000112,0x0000010e,0x000500b7,0x00000062,0x00000113,0x00000112,0x0000007a, + 0x000300f7,0x00000116,0x00000000,0x000400fa,0x00000113,0x00000115,0x0000011c,0x000200f8, + 0x00000115,0x0003003e,0x00000117,0x00000058,0x0003003e,0x00000118,0x00000059,0x00060039, + 0x00000006,0x00000119,0x0000000f,0x00000117,0x00000118,0x0004003d,0x00000006,0x0000011a, + 0x0000010e,0x00050088,0x00000006,0x0000011b,0x00000119,0x0000011a,0x0003003e,0x00000114, + 0x0000011b,0x000200f9,0x00000116,0x000200f8,0x0000011c,0x0003003e,0x00000114,0x0000005a, + 0x000200f9,0x00000116,0x000200f8,0x00000116,0x0004003d,0x00000006,0x0000011d,0x00000114, + 0x000200fe,0x0000011d,0x00010038,0x00050036,0x00000006,0x00000060,0x00000000,0x0000005d, + 0x00030037,0x00000006,0x0000005e,0x00030037,0x00000006,0x0000005f,0x000200f8,0x00000061, + 0x0004003b,0x00000007,0x00000120,0x00000007,0x0004003b,0x00000007,0x00000121,0x00000007, + 0x0004003b,0x00000007,0x00000122,0x00000007,0x0004003b,0x00000007,0x00000126,0x00000007, + 0x0004003b,0x00000007,0x00000129,0x00000007,0x0004003b,0x00000007,0x0000012a,0x00000007, + 0x0003003e,0x00000121,0x0000005e,0x0003003e,0x00000122,0x0000005f,0x00060039,0x00000006, + 0x00000123,0x0000001a,0x00000121,0x00000122,0x0003003e,0x00000120,0x00000123,0x0004003d, + 0x00000006,0x00000124,0x00000120,0x000500b7,0x00000062,0x00000125,0x00000124,0x0000007a, + 0x000300f7,0x00000128,0x00000000,0x000400fa,0x00000125,0x00000127,0x0000012e,0x000200f8, + 0x00000127,0x0003003e,0x00000129,0x0000005e,0x0003003e,0x0000012a,0x0000005f,0x00060039, + 0x00000006,0x0000012b,0x0000000f,0x00000129,0x0000012a,0x0004003d,0x00000006,0x0000012c, + 0x00000120,0x00050088,0x00000006,0x0000012d,0x0000012b,0x0000012c,0x0003003e,0x00000126, + 0x0000012d,0x000200f9,0x00000128,0x000200f8,0x0000012e,0x0003003e,0x00000126,0x0000007a, + 0x000200f9,0x00000128,0x000200f8,0x00000128,0x0004003d,0x00000006,0x0000012f,0x00000126, + 0x000200fe,0x0000012f,0x00010038,0x00050036,0x00000062,0x00000065,0x00000000,0x00000063, + 0x00030037,0x00000012,0x00000064,0x000200f8,0x00000066,0x00050041,0x00000007,0x00000132, + 0x00000064,0x000000d6,0x0004003d,0x00000006,0x00000133,0x00000132,0x000500be,0x00000062, + 0x00000134,0x00000133,0x0000007a,0x000300f7,0x00000136,0x00000000,0x000400fa,0x00000134, + 0x00000135,0x00000136,0x000200f8,0x00000135,0x00050041,0x00000007,0x00000137,0x00000064, + 0x000000d6,0x0004003d,0x00000006,0x00000138,0x00000137,0x000500bc,0x00000062,0x00000139, + 0x00000138,0x0000007b,0x000200f9,0x00000136,0x000200f8,0x00000136,0x000700f5,0x00000062, + 0x0000013a,0x00000134,0x00000066,0x00000139,0x00000135,0x000300f7,0x0000013c,0x00000000, + 0x000400fa,0x0000013a,0x0000013b,0x0000013c,0x000200f8,0x0000013b,0x00050041,0x00000007, + 0x0000013e,0x00000064,0x0000013d,0x0004003d,0x00000006,0x0000013f,0x0000013e,0x000500be, + 0x00000062,0x00000140,0x0000013f,0x0000007a,0x000300f7,0x00000142,0x00000000,0x000400fa, + 0x00000140,0x00000141,0x00000142,0x000200f8,0x00000141,0x00050041,0x00000007,0x00000143, + 0x00000064,0x0000013d,0x0004003d,0x00000006,0x00000144,0x00000143,0x000500bc,0x00000062, + 0x00000145,0x00000144,0x0000007b,0x000200f9,0x00000142,0x000200f8,0x00000142,0x000700f5, + 0x00000062,0x00000146,0x00000140,0x0000013b,0x00000145,0x00000141,0x000200f9,0x0000013c, + 0x000200f8,0x0000013c,0x000700f5,0x00000062,0x00000147,0x0000013a,0x00000136,0x00000146, + 0x00000142,0x000200fe,0x00000147,0x00010038,0x00050036,0x00000011,0x0000006b,0x00000000, + 0x00000067,0x00030037,0x00000012,0x00000068,0x00030037,0x00000031,0x00000069,0x00030037, + 0x00000031,0x0000006a,0x000200f8,0x0000006c,0x0004003b,0x00000012,0x0000014a,0x00000007, + 0x0004003b,0x00000012,0x0000014f,0x00000007,0x0004003b,0x00000012,0x00000155,0x00000007, + 0x0004003b,0x00000012,0x00000157,0x00000007,0x0004003b,0x00000012,0x00000159,0x00000007, + 0x0004003b,0x00000012,0x0000015a,0x00000007,0x0004003b,0x00000012,0x0000015c,0x00000007, + 0x0004003d,0x00000011,0x0000014b,0x00000068,0x0004003d,0x00000021,0x0000014c,0x00000069, + 0x0004006f,0x00000011,0x0000014d,0x0000014c,0x00050085,0x00000011,0x0000014e,0x0000014b, + 0x0000014d,0x0003003e,0x0000014a,0x0000014e,0x0004003d,0x00000021,0x00000152,0x00000069, + 0x0004006f,0x00000011,0x00000153,0x00000152,0x00050083,0x00000011,0x00000154,0x00000153, + 0x00000151,0x0004003d,0x00000011,0x00000156,0x0000014a,0x0003003e,0x00000155,0x00000156, + 0x0003003e,0x00000157,0x00000154,0x00060039,0x00000011,0x00000158,0x00000016,0x00000155, + 0x00000157,0x0003003e,0x00000159,0x00000151,0x0003003e,0x0000015a,0x00000158,0x00060039, + 0x00000011,0x0000015b,0x0000001e,0x00000159,0x0000015a,0x0003003e,0x0000014f,0x0000015b, + 0x0004003d,0x00000011,0x0000015d,0x0000014f,0x0004003d,0x00000021,0x0000015e,0x0000006a, + 0x0004006f,0x00000011,0x0000015f,0x0000015e,0x00050088,0x00000011,0x00000160,0x0000015d, + 0x0000015f,0x0003003e,0x0000015c,0x00000160,0x0004003d,0x00000011,0x00000161,0x0000015c, + 0x000200fe,0x00000161,0x00010038,0x00050036,0x0000006d,0x00000073,0x00000000,0x0000006f, + 0x00030037,0x0000006e,0x00000070,0x00030037,0x00000007,0x00000071,0x00030037,0x00000007, + 0x00000072,0x000200f8,0x00000074,0x0004003b,0x00000007,0x00000164,0x00000007,0x0004003b, + 0x00000007,0x00000165,0x00000007,0x0004003b,0x00000007,0x0000016a,0x00000007,0x0004003b, + 0x00000007,0x0000016f,0x00000007,0x0004003b,0x00000175,0x00000176,0x00000007,0x0004003b, + 0x00000007,0x0000017f,0x00000007,0x0004003b,0x00000007,0x00000185,0x00000007,0x0004003b, + 0x00000007,0x00000192,0x00000007,0x0004003b,0x00000007,0x00000194,0x00000007,0x0003003e, + 0x00000164,0x0000007a,0x0004003d,0x00000006,0x00000166,0x00000071,0x00060041,0x00000007, + 0x00000167,0x00000070,0x00000096,0x000000d6,0x0004003d,0x00000006,0x00000168,0x00000167, + 0x00050083,0x00000006,0x00000169,0x00000166,0x00000168,0x0003003e,0x00000165,0x00000169, + 0x0004003d,0x00000006,0x0000016b,0x00000071,0x00060041,0x00000007,0x0000016c,0x00000070, + 0x00000096,0x000000d6,0x0004003d,0x00000006,0x0000016d,0x0000016c,0x00070039,0x00000006, + 0x0000016e,0x0000005b,0x0000016b,0x0000016d,0x0000007b,0x0003003e,0x0000016a,0x0000016e, + 0x0004003d,0x00000006,0x00000170,0x0000016a,0x0003003e,0x0000016f,0x00000170,0x0004003d, + 0x00000006,0x00000171,0x0000016a,0x000500b8,0x00000062,0x00000172,0x00000171,0x0000007b, + 0x000300f7,0x00000174,0x00000000,0x000400fa,0x00000172,0x00000173,0x00000174,0x000200f8, + 0x00000173,0x0003003e,0x00000176,0x0000009c,0x000200f9,0x00000177,0x000200f8,0x00000177, + 0x000400f6,0x00000179,0x0000017a,0x00000000,0x000200f9,0x0000017b,0x000200f8,0x0000017b, + 0x0004003d,0x00000020,0x0000017c,0x00000176,0x000500b3,0x00000062,0x0000017e,0x0000017c, + 0x0000017d,0x000400fa,0x0000017e,0x00000178,0x00000179,0x000200f8,0x00000178,0x0004003d, + 0x00000006,0x00000180,0x00000071,0x0004003d,0x00000020,0x00000181,0x00000176,0x00060041, + 0x00000007,0x00000182,0x00000070,0x00000096,0x00000181,0x0004003d,0x00000006,0x00000183, + 0x00000182,0x00050083,0x00000006,0x00000184,0x00000180,0x00000183,0x0003003e,0x0000017f, + 0x00000184,0x0004003d,0x00000006,0x00000186,0x00000071,0x0004003d,0x00000020,0x00000187, + 0x00000176,0x00060041,0x00000007,0x00000188,0x00000070,0x00000096,0x00000187,0x0004003d, + 0x00000006,0x00000189,0x00000188,0x00060039,0x00000006,0x0000018a,0x00000060,0x00000186, + 0x00000189,0x0003003e,0x00000185,0x0000018a,0x0004003d,0x00000006,0x0000018b,0x00000165, + 0x0006000c,0x00000006,0x0000018c,0x00000001,0x00000006,0x0000018b,0x0004003d,0x00000006, + 0x0000018d,0x0000017f,0x0006000c,0x00000006,0x0000018e,0x00000001,0x00000006,0x0000018d, + 0x000500b4,0x00000062,0x0000018f,0x0000018c,0x0000018e,0x000300f7,0x00000191,0x00000000, + 0x000400fa,0x0000018f,0x00000190,0x00000191,0x000200f8,0x00000190,0x0004003d,0x00000006, + 0x00000193,0x0000016f,0x0003003e,0x00000192,0x00000193,0x0004003d,0x00000006,0x00000195, + 0x00000185,0x0003003e,0x00000194,0x00000195,0x00060039,0x00000006,0x00000196,0x0000001a, + 0x00000192,0x00000194,0x0003003e,0x0000016f,0x00000196,0x000200f9,0x00000191,0x000200f8, + 0x00000191,0x000200f9,0x0000017a,0x000200f8,0x0000017a,0x0004003d,0x00000020,0x00000197, + 0x00000176,0x00050080,0x00000020,0x00000198,0x00000197,0x0000009c,0x0003003e,0x00000176, + 0x00000198,0x000200f9,0x00000177,0x000200f8,0x00000179,0x0004003d,0x00000006,0x00000199, + 0x0000016f,0x0004003d,0x00000006,0x0000019a,0x0000016a,0x000500ba,0x00000062,0x0000019b, + 0x00000199,0x0000019a,0x000600a9,0x00000006,0x0000019c,0x0000019b,0x0000007b,0x0000007a, + 0x0003003e,0x00000164,0x0000019c,0x000200f9,0x00000174,0x000200f8,0x00000174,0x00060041, + 0x00000007,0x0000019e,0x00000070,0x00000096,0x0000019d,0x0004003d,0x00000006,0x0000019f, + 0x0000019e,0x00060041,0x00000007,0x000001a1,0x00000070,0x00000096,0x000001a0,0x0003003e, + 0x000001a1,0x0000019f,0x00060041,0x00000007,0x000001a2,0x00000070,0x00000096,0x0000013d, + 0x0004003d,0x00000006,0x000001a3,0x000001a2,0x00060041,0x00000007,0x000001a4,0x00000070, + 0x00000096,0x0000019d,0x0003003e,0x000001a4,0x000001a3,0x00060041,0x00000007,0x000001a5, + 0x00000070,0x00000096,0x000000d6,0x0004003d,0x00000006,0x000001a6,0x000001a5,0x00060041, + 0x00000007,0x000001a7,0x00000070,0x00000096,0x0000013d,0x0003003e,0x000001a7,0x000001a6, + 0x0004003d,0x00000006,0x000001a8,0x00000071,0x00060041,0x00000007,0x000001a9,0x00000070, + 0x00000096,0x000000d6,0x0003003e,0x000001a9,0x000001a8,0x00040039,0x00000006,0x000001aa, + 0x0000004f,0x00050041,0x00000033,0x000001ab,0x00000070,0x00000096,0x0004003d,0x00000032, + 0x000001ac,0x000001ab,0x00070050,0x00000032,0x000001ad,0x000001aa,0x000001aa,0x000001aa, + 0x000001aa,0x00050088,0x00000032,0x000001ae,0x000001ac,0x000001ad,0x00050041,0x00000033, + 0x000001af,0x00000070,0x00000096,0x0003003e,0x000001af,0x000001ae,0x0004003d,0x00000006, + 0x000001b0,0x00000164,0x00060041,0x00000007,0x000001b1,0x00000070,0x00000096,0x000001a0, + 0x0004003d,0x00000006,0x000001b2,0x000001b1,0x000500b7,0x00000062,0x000001b3,0x000001b2, + 0x0000007a,0x000600a9,0x00000006,0x000001b4,0x000001b3,0x0000007b,0x0000007a,0x00050085, + 0x00000006,0x000001b5,0x000001b0,0x000001b4,0x00050041,0x00000007,0x000001b6,0x00000070, + 0x0000009c,0x0003003e,0x000001b6,0x000001b5,0x0004003d,0x0000006d,0x000001b7,0x00000070, + 0x000200fe,0x000001b7,0x00010038,0x00050036,0x00000002,0x00000077,0x00000000,0x00000075, + 0x00030037,0x00000031,0x00000076,0x000200f8,0x00000078,0x0004003b,0x0000006e,0x000001ba, + 0x00000007,0x0004003b,0x00000012,0x000001be,0x00000007,0x0004003b,0x00000031,0x000001bf, + 0x00000007,0x0004003b,0x00000012,0x000001c2,0x00000007,0x0004003b,0x00000012,0x000001ca, + 0x00000007,0x0004003b,0x00000012,0x000001d1,0x00000007,0x0004003b,0x00000012,0x000001d8, + 0x00000007,0x0004003b,0x00000012,0x000001dc,0x00000007,0x0004003b,0x00000012,0x000001e1, + 0x00000007,0x0004003b,0x00000012,0x000001e4,0x00000007,0x0004003b,0x00000031,0x000001e6, + 0x00000007,0x0004003b,0x00000031,0x000001e7,0x00000007,0x0004003b,0x00000033,0x000001e9, + 0x00000007,0x0004003b,0x00000012,0x000001ea,0x00000007,0x0004003b,0x00000007,0x000001ed, + 0x00000007,0x0004003b,0x00000007,0x000001ee,0x00000007,0x0004003b,0x00000007,0x000001f2, + 0x00000007,0x0004003b,0x00000007,0x000001f3,0x00000007,0x0004003b,0x00000007,0x000001f7, + 0x00000007,0x0004003b,0x00000007,0x000001f8,0x00000007,0x0004003b,0x00000007,0x000001fc, + 0x00000007,0x0004003b,0x00000007,0x000001fd,0x00000007,0x0004003b,0x00000201,0x00000202, + 0x00000007,0x0004003b,0x00000201,0x00000206,0x00000007,0x0004003b,0x00000012,0x0000020b, + 0x00000007,0x0004003b,0x00000012,0x0000020e,0x00000007,0x0004003b,0x00000031,0x00000210, + 0x00000007,0x0004003b,0x00000031,0x00000211,0x00000007,0x0004003b,0x00000007,0x00000213, + 0x00000007,0x0004003b,0x00000012,0x00000214,0x00000007,0x0004003b,0x00000012,0x00000219, + 0x00000007,0x0004003b,0x00000012,0x0000021c,0x00000007,0x0004003b,0x00000031,0x0000021e, + 0x00000007,0x0004003b,0x00000031,0x0000021f,0x00000007,0x0004003b,0x00000012,0x00000221, + 0x00000007,0x0004003b,0x00000012,0x00000229,0x00000007,0x0004003b,0x00000012,0x0000022f, + 0x00000007,0x0004003b,0x00000031,0x00000231,0x00000007,0x0004003b,0x00000031,0x00000232, + 0x00000007,0x0004003b,0x00000007,0x00000234,0x00000007,0x0004003b,0x00000012,0x00000235, + 0x00000007,0x0004003b,0x0000006e,0x00000238,0x00000007,0x0004003b,0x00000007,0x0000023a, + 0x00000007,0x0004003b,0x00000007,0x0000023c,0x00000007,0x0004003b,0x00000007,0x0000023f, + 0x00000007,0x0004003b,0x00000012,0x00000240,0x00000007,0x0004003b,0x00000007,0x00000245, + 0x00000007,0x0004003b,0x00000031,0x00000256,0x00000007,0x0004003b,0x00000033,0x00000258, + 0x00000007,0x0004003b,0x00000031,0x0000025c,0x00000007,0x0004003b,0x00000007,0x0000025e, + 0x00000007,0x00050041,0x00000007,0x000001bb,0x000001ba,0x0000009c,0x0003003e,0x000001bb, + 0x0000007a,0x00050041,0x00000033,0x000001bd,0x000001ba,0x00000096,0x0003003e,0x000001bd, + 0x000001bc,0x0004003d,0x00000021,0x000001c0,0x00000076,0x0003003e,0x000001bf,0x000001c0, + 0x00050039,0x00000011,0x000001c1,0x0000004d,0x000001bf,0x0003003e,0x000001be,0x000001c1, + 0x0004003d,0x00000021,0x000001c3,0x00000076,0x0004006f,0x00000011,0x000001c4,0x000001c3, + 0x00050050,0x00000011,0x000001c5,0x00000150,0x00000150,0x00050081,0x00000011,0x000001c6, + 0x000001c4,0x000001c5,0x00040039,0x00000021,0x000001c7,0x00000023,0x0004006f,0x00000011, + 0x000001c8,0x000001c7,0x00050088,0x00000011,0x000001c9,0x000001c6,0x000001c8,0x0003003e, + 0x000001c2,0x000001c9,0x0004003d,0x00000011,0x000001cb,0x000001c2,0x00040039,0x00000011, + 0x000001cc,0x0000002a,0x00040039,0x00000021,0x000001cd,0x00000023,0x0004006f,0x00000011, + 0x000001ce,0x000001cd,0x00050088,0x00000011,0x000001cf,0x000001cc,0x000001ce,0x00050081, + 0x00000011,0x000001d0,0x000001cb,0x000001cf,0x0003003e,0x000001ca,0x000001d0,0x0004003d, + 0x00000011,0x000001d2,0x000001c2,0x00040039,0x00000011,0x000001d3,0x0000002c,0x00040039, + 0x00000021,0x000001d4,0x00000025,0x0004006f,0x00000011,0x000001d5,0x000001d4,0x00050088, + 0x00000011,0x000001d6,0x000001d3,0x000001d5,0x00050081,0x00000011,0x000001d7,0x000001d2, + 0x000001d6,0x0003003e,0x000001d1,0x000001d7,0x0004003d,0x00000011,0x000001d9,0x000001d1, + 0x0004003d,0x00000011,0x000001da,0x000001be,0x00050081,0x00000011,0x000001db,0x000001d9, + 0x000001da,0x0003003e,0x000001d8,0x000001db,0x0004003d,0x00000011,0x000001dd,0x000001d8, + 0x0003003e,0x000001dc,0x000001dd,0x00050039,0x00000062,0x000001de,0x00000065,0x000001dc, + 0x000300f7,0x000001e0,0x00000000,0x000400fa,0x000001de,0x000001df,0x000001e0,0x000200f8, + 0x000001df,0x00040039,0x00000021,0x000001e2,0x00000023,0x00040039,0x00000021,0x000001e3, + 0x00000027,0x0004003d,0x00000011,0x000001e5,0x000001ca,0x0003003e,0x000001e4,0x000001e5, + 0x0003003e,0x000001e6,0x000001e2,0x0003003e,0x000001e7,0x000001e3,0x00070039,0x00000011, + 0x000001e8,0x0000006b,0x000001e4,0x000001e6,0x000001e7,0x0003003e,0x000001e1,0x000001e8, + 0x0004003d,0x00000011,0x000001eb,0x000001e1,0x0003003e,0x000001ea,0x000001eb,0x00050039, + 0x00000032,0x000001ec,0x00000052,0x000001ea,0x0003003e,0x000001e9,0x000001ec,0x00050041, + 0x00000007,0x000001ef,0x000001e9,0x000000d6,0x0004003d,0x00000006,0x000001f0,0x000001ef, + 0x0003003e,0x000001ee,0x000001f0,0x00050039,0x00000006,0x000001f1,0x0000000a,0x000001ee, + 0x0003003e,0x000001ed,0x000001f1,0x00050041,0x00000007,0x000001f4,0x000001e9,0x0000013d, + 0x0004003d,0x00000006,0x000001f5,0x000001f4,0x0003003e,0x000001f3,0x000001f5,0x00050039, + 0x00000006,0x000001f6,0x0000000a,0x000001f3,0x0003003e,0x000001f2,0x000001f6,0x00050041, + 0x00000007,0x000001f9,0x000001e9,0x0000019d,0x0004003d,0x00000006,0x000001fa,0x000001f9, + 0x0003003e,0x000001f8,0x000001fa,0x00050039,0x00000006,0x000001fb,0x0000000a,0x000001f8, + 0x0003003e,0x000001f7,0x000001fb,0x00050041,0x00000007,0x000001fe,0x000001e9,0x000001a0, + 0x0004003d,0x00000006,0x000001ff,0x000001fe,0x0003003e,0x000001fd,0x000001ff,0x00050039, + 0x00000006,0x00000200,0x0000000a,0x000001fd,0x0003003e,0x000001fc,0x00000200,0x0004003d, + 0x00000006,0x00000203,0x000001fc,0x000500ba,0x00000062,0x00000205,0x00000203,0x00000204, + 0x0003003e,0x00000202,0x00000205,0x0004003d,0x00000062,0x00000207,0x00000202,0x0003003e, + 0x00000206,0x00000207,0x0004003d,0x00000062,0x00000208,0x00000206,0x000300f7,0x0000020a, + 0x00000000,0x000400fa,0x00000208,0x00000209,0x0000020a,0x000200f8,0x00000209,0x00040039, + 0x00000021,0x0000020c,0x00000023,0x00040039,0x00000021,0x0000020d,0x00000027,0x0004003d, + 0x00000011,0x0000020f,0x000001ca,0x0003003e,0x0000020e,0x0000020f,0x0003003e,0x00000210, + 0x0000020c,0x0003003e,0x00000211,0x0000020d,0x00070039,0x00000011,0x00000212,0x0000006b, + 0x0000020e,0x00000210,0x00000211,0x0003003e,0x0000020b,0x00000212,0x0004003d,0x00000011, + 0x00000215,0x0000020b,0x0003003e,0x00000214,0x00000215,0x00050039,0x00000006,0x00000216, + 0x00000044,0x00000214,0x00040039,0x00000006,0x00000217,0x0000004f,0x00050085,0x00000006, + 0x00000218,0x00000216,0x00000217,0x0003003e,0x00000213,0x00000218,0x00040039,0x00000021, + 0x0000021a,0x00000025,0x00040039,0x00000021,0x0000021b,0x00000027,0x0004003d,0x00000011, + 0x0000021d,0x000001d8,0x0003003e,0x0000021c,0x0000021d,0x0003003e,0x0000021e,0x0000021a, + 0x0003003e,0x0000021f,0x0000021b,0x00070039,0x00000011,0x00000220,0x0000006b,0x0000021c, + 0x0000021e,0x0000021f,0x0003003e,0x00000219,0x00000220,0x0004003d,0x00000011,0x00000222, + 0x00000219,0x0003003e,0x00000221,0x00000222,0x00050039,0x00000032,0x00000223,0x0000003b, + 0x00000221,0x00040039,0x00000006,0x00000224,0x0000002f,0x0005008e,0x00000032,0x00000225, + 0x00000223,0x00000224,0x00040039,0x00000006,0x00000226,0x0000004f,0x0005008e,0x00000032, + 0x00000227,0x00000225,0x00000226,0x00050041,0x00000033,0x00000228,0x000001ba,0x00000096, + 0x0003003e,0x00000228,0x00000227,0x00040039,0x00000021,0x0000022a,0x00000023,0x00050050, + 0x00000021,0x0000022c,0x0000022b,0x0000022b,0x00050087,0x00000021,0x0000022d,0x0000022a, + 0x0000022c,0x00040039,0x00000021,0x0000022e,0x0000003d,0x0004003d,0x00000011,0x00000230, + 0x000001ca,0x0003003e,0x0000022f,0x00000230,0x0003003e,0x00000231,0x0000022d,0x0003003e, + 0x00000232,0x0000022e,0x00070039,0x00000011,0x00000233,0x0000006b,0x0000022f,0x00000231, + 0x00000232,0x0003003e,0x00000229,0x00000233,0x0004003d,0x00000011,0x00000236,0x00000229, + 0x0003003e,0x00000235,0x00000236,0x00050039,0x00000006,0x00000237,0x00000041,0x00000235, + 0x0003003e,0x00000234,0x00000237,0x0004003d,0x0000006d,0x00000239,0x000001ba,0x0003003e, + 0x00000238,0x00000239,0x0004003d,0x00000006,0x0000023b,0x00000213,0x0003003e,0x0000023a, + 0x0000023b,0x0004003d,0x00000006,0x0000023d,0x00000234,0x0003003e,0x0000023c,0x0000023d, + 0x00070039,0x0000006d,0x0000023e,0x00000073,0x00000238,0x0000023a,0x0000023c,0x0003003e, + 0x000001ba,0x0000023e,0x0004003d,0x00000011,0x00000241,0x000001be,0x0003003e,0x00000240, + 0x00000241,0x00050039,0x00000006,0x00000242,0x00000055,0x00000240,0x00050088,0x00000006, + 0x00000244,0x00000242,0x00000243,0x0003003e,0x00000245,0x00000244,0x00050039,0x00000006, + 0x00000246,0x0000000a,0x00000245,0x00050083,0x00000006,0x00000247,0x0000007b,0x00000246, + 0x0003003e,0x0000023f,0x00000247,0x0004003d,0x00000006,0x00000248,0x0000023f,0x0004003d, + 0x00000006,0x00000249,0x000001f2,0x00050083,0x00000006,0x0000024a,0x0000007b,0x00000249, + 0x00050085,0x00000006,0x0000024b,0x00000248,0x0000024a,0x0004003d,0x00000006,0x0000024c, + 0x000001ed,0x00050083,0x00000006,0x0000024d,0x0000007b,0x0000024c,0x00050085,0x00000006, + 0x0000024e,0x0000024b,0x0000024d,0x0004003d,0x00000006,0x0000024f,0x000001f7,0x00050083, + 0x00000006,0x00000250,0x0000007b,0x0000024f,0x00050085,0x00000006,0x00000251,0x0000024e, + 0x00000250,0x00050041,0x00000007,0x00000252,0x000001ba,0x0000009c,0x0004003d,0x00000006, + 0x00000253,0x00000252,0x00050085,0x00000006,0x00000254,0x00000253,0x00000251,0x00050041, + 0x00000007,0x00000255,0x000001ba,0x0000009c,0x0003003e,0x00000255,0x00000254,0x000200f9, + 0x0000020a,0x000200f8,0x0000020a,0x000200f9,0x000001e0,0x000200f8,0x000001e0,0x0004003d, + 0x00000021,0x00000257,0x00000076,0x0003003e,0x00000256,0x00000257,0x00050041,0x00000033, + 0x00000259,0x000001ba,0x00000096,0x0004003d,0x00000032,0x0000025a,0x00000259,0x0003003e, + 0x00000258,0x0000025a,0x00060039,0x00000002,0x0000025b,0x00000037,0x00000256,0x00000258, + 0x0004003d,0x00000021,0x0000025d,0x00000076,0x0003003e,0x0000025c,0x0000025d,0x00050041, + 0x00000007,0x0000025f,0x000001ba,0x0000009c,0x0004003d,0x00000006,0x00000260,0x0000025f, + 0x0003003e,0x0000025e,0x00000260,0x00060039,0x00000002,0x00000261,0x00000049,0x0000025c, + 0x0000025e,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h new file mode 100644 index 000000000..831563084 --- /dev/null +++ b/gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h @@ -0,0 +1,1527 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_LUMA_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000747,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x00000731,0x00000733,0x00060010,0x00000004,0x00000011, + 0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469, + 0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47, + 0x735f5248,0x65646168,0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004, + 0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273, + 0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005, + 0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005, + 0x00000010,0x73746962,0x00000000,0x00060005,0x00000018,0x4d786666,0x69286e69,0x31693b31, + 0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017,0x00000079,0x00060005, + 0x0000001f,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x0000001d,0x00000078, + 0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023,0x4d786666,0x69287861,0x31693b31, + 0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022,0x00000079,0x00060005, + 0x00000027,0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000025,0x00000078, + 0x00030005,0x00000026,0x00000079,0x000a0005,0x0000002c,0x52786666,0x70616d65,0x57726f46, + 0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000002b,0x00000061, + 0x00050005,0x00000030,0x646e6552,0x69537265,0x0028657a,0x00050005,0x00000033,0x746c6544, + 0x6d695461,0x00002865,0x00050005,0x00000036,0x4370694d,0x746e756f,0x00000028,0x00060005, + 0x00000038,0x576d754e,0x476b726f,0x70756f72,0x00002873,0x00070005,0x0000003b,0x6b726f57, + 0x756f7247,0x66664f70,0x28746573,0x00000000,0x00080005,0x00000040,0x64616f4c,0x74726146, + 0x74736568,0x74706544,0x69762868,0x00003b32,0x00040005,0x0000003f,0x50785069,0x0000736f, + 0x000a0005,0x00000045,0x726f7453,0x72614665,0x73656874,0x70654474,0x694d6874,0x76283170, + 0x663b3269,0x00003b31,0x00040005,0x00000043,0x50785069,0x0000736f,0x00040005,0x00000044, + 0x70654466,0x00006874,0x00080005,0x00000048,0x64616f4c,0x72727543,0x4c746e65,0x28616d75, + 0x3b326976,0x00000000,0x00040005,0x00000047,0x50785069,0x0000736f,0x00060005,0x0000004c, + 0x64616f4c,0x6d617246,0x666e4965,0x0000286f,0x00070005,0x00000051,0x726f7453,0x61724665, + 0x6e49656d,0x76286f66,0x003b3466,0x00040005,0x00000050,0x666e4966,0x0000006f,0x00080005, + 0x00000057,0x6f4c5752,0x79506461,0x696d6172,0x69762864,0x31753b32,0x0000003b,0x00040005, + 0x00000055,0x50785069,0x0000736f,0x00040005,0x00000056,0x65646e69,0x00000078,0x00090005, + 0x0000005e,0x726f7453,0x72795065,0x64696d61,0x32697628,0x3266763b,0x3b31753b,0x00000000, + 0x00040005,0x0000005b,0x50785069,0x0000736f,0x00050005,0x0000005c,0x5674756f,0x65756c61, + 0x00000000,0x00040005,0x0000005d,0x65646e69,0x00000078,0x000a0005,0x00000062,0x5f445053, + 0x72636e49,0x65736165,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00050005, + 0x00000061,0x43647073,0x746e756f,0x00007265,0x00080005,0x00000064,0x5f445053,0x65736552, + 0x6f744174,0x4363696d,0x746e756f,0x00287265,0x00080005,0x0000006a,0x6d616c43,0x616f4c70, + 0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005,0x00000067,0x53785069,0x6c706d61, + 0x00000065,0x00050005,0x00000068,0x4f785069,0x65736666,0x00000074,0x00060005,0x00000069, + 0x78655469,0x65727574,0x657a6953,0x00000000,0x000a0005,0x0000006e,0x706d6f43,0x41657475, + 0x456f7475,0x736f7078,0x46657275,0x4c6d6f72,0x28677661,0x003b3166,0x00040005,0x0000006d, + 0x6776614c,0x00000000,0x000a0005,0x00000071,0x49647053,0x6572636e,0x41657361,0x696d6f74, + 0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005,0x00000070,0x63696c73,0x00000065, + 0x00080005,0x00000073,0x47647053,0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000, + 0x00090005,0x00000076,0x52647053,0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872, + 0x0000003b,0x00040005,0x00000075,0x63696c73,0x00000065,0x00090005,0x0000007b,0x4c647053, + 0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266,0x00003b31,0x00040005,0x00000079, + 0x50785069,0x0000736f,0x00040005,0x0000007a,0x63696c73,0x00000065,0x00060005,0x00000080, + 0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x0000007e,0x00786574,0x00040005, + 0x0000007f,0x63696c73,0x00000065,0x00090005,0x00000087,0x52647053,0x63756465,0x76283465, + 0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x00000083,0x00003076,0x00030005, + 0x00000084,0x00003176,0x00030005,0x00000085,0x00003276,0x00030005,0x00000086,0x00003376, + 0x00080005,0x0000008e,0x53647053,0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175, + 0x00030005,0x0000008a,0x00786970,0x00050005,0x0000008b,0x5674756f,0x65756c61,0x00000000, + 0x00040005,0x0000008c,0x65646e69,0x00000078,0x00040005,0x0000008d,0x63696c73,0x00000065, + 0x00090005,0x00000093,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461,0x753b3175, + 0x00003b31,0x00030005,0x00000091,0x00000078,0x00030005,0x00000092,0x00000079,0x000a0005, + 0x00000099,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528,0x763b3175, + 0x003b3466,0x00030005,0x00000096,0x00000078,0x00030005,0x00000097,0x00000079,0x00040005, + 0x00000098,0x756c6176,0x00000065,0x000a0005,0x0000009b,0x53786666,0x6f576470,0x72676b72, + 0x5370756f,0x66667568,0x6142656c,0x65697272,0x00002872,0x00090005,0x000000a2,0x45647053, + 0x57746978,0x676b726f,0x70756f72,0x3b317528,0x753b3175,0x00003b31,0x00060005,0x0000009f, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00080005,0x000000a0,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x000000a1,0x63696c73,0x00000065, + 0x00070005,0x000000a6,0x52647053,0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005, + 0x000000a5,0x00000076,0x000b0005,0x000000af,0x52647053,0x63756465,0x616f4c65,0x76283464, + 0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x000000aa,0x00003069, + 0x00030005,0x000000ab,0x00003169,0x00030005,0x000000ac,0x00003269,0x00030005,0x000000ad, + 0x00003369,0x00040005,0x000000ae,0x63696c73,0x00000065,0x00080005,0x000000b4,0x52647053, + 0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x000000b2,0x65736162, + 0x00000000,0x00040005,0x000000b3,0x63696c73,0x00000065,0x000e0005,0x000000bb,0x52647053, + 0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32, + 0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000b6,0x00003069,0x00030005,0x000000b7, + 0x00003169,0x00030005,0x000000b8,0x00003269,0x00030005,0x000000b9,0x00003369,0x00040005, + 0x000000ba,0x63696c73,0x00000065,0x000b0005,0x000000bf,0x52647053,0x63756465,0x616f4c65, + 0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005,0x000000bd, + 0x65736162,0x00000000,0x00040005,0x000000be,0x63696c73,0x00000065,0x00100005,0x000000c8, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973, + 0x3b317528,0x763b3175,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000c2, + 0x00000078,0x00030005,0x000000c3,0x00000079,0x00050005,0x000000c4,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000c5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000c6,0x0070696d,0x00040005,0x000000c7,0x63696c73,0x00000065, + 0x000d0005,0x000000d0,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000ca,0x00000078, + 0x00030005,0x000000cb,0x00000079,0x00050005,0x000000cc,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000cd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000ce,0x0070696d,0x00040005,0x000000cf,0x63696c73,0x00000065,0x000c0005, + 0x000000d8,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000d2,0x00000078,0x00030005,0x000000d3, + 0x00000079,0x00050005,0x000000d4,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000d5, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000d6, + 0x0070696d,0x00040005,0x000000d7,0x63696c73,0x00000065,0x000c0005,0x000000e0,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175, + 0x00003b31,0x00030005,0x000000da,0x00000078,0x00030005,0x000000db,0x00000079,0x00050005, + 0x000000dc,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000dd,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000de,0x0070696d,0x00040005, + 0x000000df,0x63696c73,0x00000065,0x000c0005,0x000000e8,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005, + 0x000000e2,0x00000078,0x00030005,0x000000e3,0x00000079,0x00050005,0x000000e4,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000e5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x000000e6,0x0070696d,0x00040005,0x000000e7,0x63696c73, + 0x00000065,0x000b0005,0x000000ef,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f, + 0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x000000eb,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000ec,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000ed,0x0070696d,0x00040005,0x000000ee,0x63696c73,0x00000065, + 0x000b0005,0x000000f6,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000f2,0x00000078,0x00030005,0x000000f3, + 0x00000079,0x00040005,0x000000f4,0x7370696d,0x00000000,0x00040005,0x000000f5,0x63696c73, + 0x00000065,0x000e0005,0x00000100,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674, + 0x31752872,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005, + 0x000000f9,0x00000078,0x00030005,0x000000fa,0x00000079,0x00050005,0x000000fb,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000fc,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000fd,0x65736162,0x0070694d,0x00040005,0x000000fe, + 0x7370696d,0x00000000,0x00040005,0x000000ff,0x63696c73,0x00000065,0x000a0005,0x00000108, + 0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31, + 0x00050005,0x00000103,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000104,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000105,0x7370696d, + 0x00000000,0x00060005,0x00000106,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005, + 0x00000107,0x63696c73,0x00000065,0x000b0005,0x00000111,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x0000010b, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000010c,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x0000010d,0x7370696d,0x00000000,0x00060005, + 0x0000010e,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x0000010f,0x63696c73, + 0x00000065,0x00060005,0x00000110,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00090005, + 0x00000118,0x706d6f43,0x41657475,0x456f7475,0x736f7078,0x28657275,0x3b337576,0x003b3175, + 0x00050005,0x00000116,0x6b726f57,0x756f7247,0x00644970,0x00070005,0x00000117,0x61636f4c, + 0x7268546c,0x49646165,0x7865646e,0x00000000,0x00040005,0x00000140,0x61726170,0x0000006d, + 0x00040005,0x00000142,0x61726170,0x0000006d,0x00040005,0x00000143,0x61726170,0x0000006d, + 0x00040005,0x00000146,0x61726170,0x0000006d,0x00040005,0x00000147,0x61726170,0x0000006d, + 0x00040005,0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014b,0x61726170,0x0000006d, + 0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x0000014e,0x61726170,0x0000006d, + 0x00040005,0x00000150,0x61726170,0x0000006d,0x00040005,0x00000152,0x61726170,0x0000006d, + 0x00040005,0x00000153,0x61726170,0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d, + 0x00040005,0x00000156,0x61726170,0x0000006d,0x00040005,0x00000157,0x61726170,0x0000006d, + 0x00070005,0x0000015c,0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006, + 0x0000015c,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000015c,0x00000001, + 0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006, + 0x0000015c,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000015c, + 0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065, + 0x00070006,0x0000015c,0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006, + 0x0000015c,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000015c, + 0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000015c, + 0x00000007,0x74694a66,0x00726574,0x00090006,0x0000015c,0x00000008,0x65725066,0x756f6976, + 0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x0000015c,0x00000009,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000015c,0x0000000a,0x776f4466, + 0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000015c,0x0000000b,0x746f4d66, + 0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006, + 0x0000015c,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000015c,0x0000000d, + 0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000015c, + 0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000015c,0x0000000f,0x6c654466, + 0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000015c,0x00000010,0x65695666, + 0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000015c, + 0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000015c,0x00000012,0x6c655666, + 0x7469636f,0x63614679,0x00726f74,0x00080006,0x0000015c,0x00000013,0x61655266,0x76697463, + 0x73656e65,0x61635373,0x0000656c,0x00080006,0x0000015c,0x00000014,0x61685366,0x676e6964, + 0x6e616843,0x63536567,0x00656c61,0x000a0006,0x0000015c,0x00000015,0x63634166,0x6c756d75, + 0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000015c,0x00000016, + 0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000, + 0x00060005,0x0000015e,0x53466263,0x70553352,0x6c616373,0x00007265,0x00040005,0x0000016a, + 0x50536263,0x00745f44,0x00050006,0x0000016a,0x00000000,0x7370696d,0x00000000,0x00070006, + 0x0000016a,0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00070006,0x0000016a, + 0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00060006,0x0000016a,0x00000003, + 0x646e6572,0x69537265,0x0000657a,0x00040005,0x0000016c,0x50536263,0x00000044,0x00070005, + 0x0000017f,0x61665f72,0x65687472,0x645f7473,0x68747065,0x00000000,0x00080005,0x00000189, + 0x665f7772,0x68747261,0x5f747365,0x74706564,0x696d5f68,0x00003170,0x00060005,0x0000018f, + 0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x00000198,0x665f7772,0x656d6172, + 0x666e695f,0x0000006f,0x00050005,0x000001a6,0x735f7772,0x6d5f6470,0x00307069,0x00050005, + 0x000001b0,0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001ba,0x735f7772,0x6d5f6470, + 0x00327069,0x00050005,0x000001c4,0x735f7772,0x6d5f6470,0x00337069,0x00050005,0x000001cf, + 0x735f7772,0x6d5f6470,0x00347069,0x00050005,0x000001da,0x735f7772,0x6d5f6470,0x00357069, + 0x00080005,0x00000221,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f,0x00000000, + 0x00040005,0x00000228,0x75736572,0x0000746c,0x00040005,0x0000022f,0x61726170,0x0000006d, + 0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005,0x00000234,0x61726170,0x0000006d, + 0x00040005,0x00000235,0x61726170,0x0000006d,0x00040005,0x0000023b,0x61726170,0x0000006d, + 0x00040005,0x0000023e,0x61726170,0x0000006d,0x00040005,0x00000240,0x61726170,0x0000006d, + 0x00040005,0x00000241,0x61726170,0x0000006d,0x00060005,0x00000249,0x6f707845,0x65727573, + 0x314f5349,0x00003030,0x00040005,0x00000250,0x78616d4c,0x00000000,0x00040005,0x00000253, + 0x61726170,0x0000006d,0x00040005,0x00000254,0x61726170,0x0000006d,0x00050005,0x0000025e, + 0x43647073,0x746e756f,0x00007265,0x00040005,0x0000025f,0x61726170,0x0000006d,0x00060005, + 0x00000267,0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005,0x0000026b,0x61726170, + 0x0000006d,0x00040005,0x0000026c,0x61726170,0x0000006d,0x00040005,0x0000026d,0x61726170, + 0x0000006d,0x00040005,0x0000026f,0x6d754c66,0x00000061,0x00040005,0x00000270,0x61726170, + 0x0000006d,0x00050005,0x00000273,0x676f4c66,0x616d754c,0x00000000,0x00040005,0x00000277, + 0x61726170,0x0000006d,0x00040005,0x00000278,0x61726170,0x0000006d,0x00080005,0x0000027a, + 0x72614666,0x73656874,0x70654474,0x6e496874,0x6574654d,0x00007372,0x00040005,0x0000027b, + 0x61726170,0x0000006d,0x00040005,0x0000027e,0x74754f66,0x00747570,0x00040005,0x00000289, + 0x61726170,0x0000006d,0x00040005,0x0000028b,0x61726170,0x0000006d,0x00040005,0x000002a1, + 0x61726170,0x0000006d,0x00040005,0x000002a3,0x61726170,0x0000006d,0x00040005,0x000002a6, + 0x61726170,0x0000006d,0x00040005,0x000002ae,0x61726170,0x0000006d,0x00040005,0x000002b0, + 0x61726170,0x0000006d,0x00050005,0x000002c0,0x6d617266,0x666e4965,0x0000006f,0x00060005, + 0x000002c2,0x65635366,0x7641656e,0x6d754c67,0x00000061,0x00060005,0x000002c5,0x65725066, + 0x676f4c76,0x616d754c,0x00000000,0x00050005,0x000002c8,0x676f4c66,0x616d754c,0x00000000, + 0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002db,0x61726170,0x0000006d, + 0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d, + 0x00070005,0x000002ed,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005, + 0x000002f3,0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000002f8, + 0x49647073,0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x000002fd,0x49647073, + 0x7265746e,0x6964656d,0x41657461,0x00000000,0x00040005,0x0000031f,0x61726170,0x0000006d, + 0x00030005,0x00000329,0x00003076,0x00030005,0x0000032b,0x00003176,0x00030005,0x0000032e, + 0x00003276,0x00030005,0x00000331,0x00003376,0x00040005,0x00000334,0x61726170,0x0000006d, + 0x00040005,0x00000336,0x61726170,0x0000006d,0x00040005,0x00000338,0x61726170,0x0000006d, + 0x00040005,0x0000033a,0x61726170,0x0000006d,0x00030005,0x00000341,0x00003076,0x00040005, + 0x00000344,0x61726170,0x0000006d,0x00040005,0x00000345,0x61726170,0x0000006d,0x00030005, + 0x00000348,0x00003176,0x00040005,0x0000034b,0x61726170,0x0000006d,0x00040005,0x0000034c, + 0x61726170,0x0000006d,0x00030005,0x0000034f,0x00003276,0x00040005,0x00000352,0x61726170, + 0x0000006d,0x00040005,0x00000353,0x61726170,0x0000006d,0x00030005,0x00000356,0x00003376, + 0x00040005,0x00000359,0x61726170,0x0000006d,0x00040005,0x0000035a,0x61726170,0x0000006d, + 0x00040005,0x0000035d,0x61726170,0x0000006d,0x00040005,0x0000035f,0x61726170,0x0000006d, + 0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000363,0x61726170,0x0000006d, + 0x00040005,0x00000374,0x61726170,0x0000006d,0x00040005,0x00000375,0x61726170,0x0000006d, + 0x00040005,0x00000376,0x61726170,0x0000006d,0x00040005,0x00000377,0x61726170,0x0000006d, + 0x00040005,0x00000378,0x61726170,0x0000006d,0x00030005,0x0000037d,0x00003076,0x00040005, + 0x00000381,0x61726170,0x0000006d,0x00040005,0x00000382,0x61726170,0x0000006d,0x00030005, + 0x00000385,0x00003176,0x00040005,0x00000389,0x61726170,0x0000006d,0x00040005,0x0000038a, + 0x61726170,0x0000006d,0x00030005,0x0000038d,0x00003276,0x00040005,0x00000391,0x61726170, + 0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d,0x00030005,0x00000395,0x00003376, + 0x00040005,0x00000399,0x61726170,0x0000006d,0x00040005,0x0000039a,0x61726170,0x0000006d, + 0x00040005,0x0000039d,0x61726170,0x0000006d,0x00040005,0x0000039f,0x61726170,0x0000006d, + 0x00040005,0x000003a1,0x61726170,0x0000006d,0x00040005,0x000003a3,0x61726170,0x0000006d, + 0x00040005,0x000003b0,0x61726170,0x0000006d,0x00040005,0x000003b1,0x61726170,0x0000006d, + 0x00040005,0x000003b2,0x61726170,0x0000006d,0x00040005,0x000003b3,0x61726170,0x0000006d, + 0x00040005,0x000003b4,0x61726170,0x0000006d,0x00030005,0x000003b9,0x00786574,0x00030005, + 0x000003c7,0x00786970,0x00030005,0x000003d5,0x00000076,0x00040005,0x000003d8,0x61726170, + 0x0000006d,0x00040005,0x000003d9,0x61726170,0x0000006d,0x00040005,0x000003dd,0x61726170, + 0x0000006d,0x00040005,0x000003df,0x61726170,0x0000006d,0x00040005,0x000003e2,0x61726170, + 0x0000006d,0x00040005,0x000003e3,0x61726170,0x0000006d,0x00040005,0x00000400,0x61726170, + 0x0000006d,0x00040005,0x00000401,0x61726170,0x0000006d,0x00040005,0x00000405,0x61726170, + 0x0000006d,0x00040005,0x00000407,0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170, + 0x0000006d,0x00040005,0x0000040b,0x61726170,0x0000006d,0x00040005,0x00000428,0x61726170, + 0x0000006d,0x00040005,0x00000429,0x61726170,0x0000006d,0x00040005,0x0000042d,0x61726170, + 0x0000006d,0x00040005,0x0000042f,0x61726170,0x0000006d,0x00040005,0x00000432,0x61726170, + 0x0000006d,0x00040005,0x00000433,0x61726170,0x0000006d,0x00040005,0x00000453,0x61726170, + 0x0000006d,0x00040005,0x00000454,0x61726170,0x0000006d,0x00040005,0x00000458,0x61726170, + 0x0000006d,0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045d,0x61726170, + 0x0000006d,0x00040005,0x0000045e,0x61726170,0x0000006d,0x00040005,0x00000466,0x61726170, + 0x0000006d,0x00040005,0x0000046b,0x61726170,0x0000006d,0x00040005,0x00000470,0x61726170, + 0x0000006d,0x00040005,0x00000475,0x61726170,0x0000006d,0x00040005,0x0000048b,0x61726170, + 0x0000006d,0x00040005,0x0000048c,0x61726170,0x0000006d,0x00040005,0x0000048f,0x61726170, + 0x0000006d,0x00040005,0x00000490,0x61726170,0x0000006d,0x00040005,0x00000497,0x61726170, + 0x0000006d,0x00040005,0x00000498,0x61726170,0x0000006d,0x00040005,0x00000499,0x61726170, + 0x0000006d,0x00040005,0x000004ab,0x61726170,0x0000006d,0x00040005,0x000004ac,0x61726170, + 0x0000006d,0x00040005,0x000004af,0x61726170,0x0000006d,0x00040005,0x000004b0,0x61726170, + 0x0000006d,0x00040005,0x000004b8,0x61726170,0x0000006d,0x00040005,0x000004b9,0x61726170, + 0x0000006d,0x00040005,0x000004ba,0x61726170,0x0000006d,0x00040005,0x000004cb,0x61726170, + 0x0000006d,0x00040005,0x000004cc,0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170, + 0x0000006d,0x00040005,0x000004d0,0x61726170,0x0000006d,0x00040005,0x000004d8,0x61726170, + 0x0000006d,0x00040005,0x000004d9,0x61726170,0x0000006d,0x00040005,0x000004da,0x61726170, + 0x0000006d,0x00040005,0x000004ec,0x61726170,0x0000006d,0x00040005,0x000004ed,0x61726170, + 0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d,0x00040005,0x000004f1,0x61726170, + 0x0000006d,0x00040005,0x000004fa,0x61726170,0x0000006d,0x00040005,0x000004fb,0x61726170, + 0x0000006d,0x00040005,0x000004fc,0x61726170,0x0000006d,0x00040005,0x00000500,0x61726170, + 0x0000006d,0x00040005,0x00000502,0x61726170,0x0000006d,0x00040005,0x00000504,0x61726170, + 0x0000006d,0x00040005,0x00000506,0x61726170,0x0000006d,0x00040005,0x00000508,0x61726170, + 0x0000006d,0x00040005,0x0000050a,0x61726170,0x0000006d,0x00030005,0x0000050d,0x00000076, + 0x00040005,0x0000050e,0x61726170,0x0000006d,0x00040005,0x00000510,0x61726170,0x0000006d, + 0x00040005,0x00000513,0x61726170,0x0000006d,0x00040005,0x00000527,0x61726170,0x0000006d, + 0x00040005,0x00000528,0x61726170,0x0000006d,0x00040005,0x0000052a,0x61726170,0x0000006d, + 0x00040005,0x0000052c,0x61726170,0x0000006d,0x00040005,0x00000534,0x61726170,0x0000006d, + 0x00040005,0x00000535,0x61726170,0x0000006d,0x00040005,0x00000537,0x61726170,0x0000006d, + 0x00030005,0x0000053e,0x00000076,0x00040005,0x00000546,0x61726170,0x0000006d,0x00040005, + 0x00000547,0x61726170,0x0000006d,0x00040005,0x00000549,0x61726170,0x0000006d,0x00040005, + 0x0000055d,0x61726170,0x0000006d,0x00040005,0x0000055e,0x61726170,0x0000006d,0x00040005, + 0x00000560,0x61726170,0x0000006d,0x00040005,0x00000562,0x61726170,0x0000006d,0x00040005, + 0x0000056c,0x61726170,0x0000006d,0x00040005,0x0000056d,0x61726170,0x0000006d,0x00040005, + 0x0000056e,0x61726170,0x0000006d,0x00030005,0x00000575,0x00000076,0x00040005,0x0000057c, + 0x61726170,0x0000006d,0x00040005,0x0000057d,0x61726170,0x0000006d,0x00040005,0x0000057f, + 0x61726170,0x0000006d,0x00040005,0x00000593,0x61726170,0x0000006d,0x00040005,0x00000594, + 0x61726170,0x0000006d,0x00040005,0x00000596,0x61726170,0x0000006d,0x00040005,0x00000598, + 0x61726170,0x0000006d,0x00040005,0x0000059f,0x61726170,0x0000006d,0x00040005,0x000005a0, + 0x61726170,0x0000006d,0x00040005,0x000005a1,0x61726170,0x0000006d,0x00030005,0x000005a8, + 0x00000076,0x00040005,0x000005a9,0x61726170,0x0000006d,0x00040005,0x000005ab,0x61726170, + 0x0000006d,0x00040005,0x000005ad,0x61726170,0x0000006d,0x00040005,0x000005b7,0x61726170, + 0x0000006d,0x00040005,0x000005b8,0x61726170,0x0000006d,0x00040005,0x000005ba,0x61726170, + 0x0000006d,0x00040005,0x000005bc,0x61726170,0x0000006d,0x00030005,0x000005bf,0x00786574, + 0x00030005,0x000005c9,0x00786970,0x00030005,0x000005d3,0x00003076,0x00040005,0x000005d6, + 0x61726170,0x0000006d,0x00040005,0x000005d7,0x61726170,0x0000006d,0x00040005,0x000005db, + 0x61726170,0x0000006d,0x00040005,0x000005dd,0x61726170,0x0000006d,0x00040005,0x000005df, + 0x61726170,0x0000006d,0x00040005,0x000005e0,0x61726170,0x0000006d,0x00030005,0x000005f5, + 0x00003176,0x00040005,0x000005f8,0x61726170,0x0000006d,0x00040005,0x000005f9,0x61726170, + 0x0000006d,0x00040005,0x000005fc,0x61726170,0x0000006d,0x00040005,0x000005fe,0x61726170, + 0x0000006d,0x00040005,0x00000600,0x61726170,0x0000006d,0x00040005,0x00000601,0x61726170, + 0x0000006d,0x00030005,0x00000616,0x00003276,0x00040005,0x00000619,0x61726170,0x0000006d, + 0x00040005,0x0000061a,0x61726170,0x0000006d,0x00040005,0x0000061d,0x61726170,0x0000006d, + 0x00040005,0x0000061f,0x61726170,0x0000006d,0x00040005,0x00000621,0x61726170,0x0000006d, + 0x00040005,0x00000622,0x61726170,0x0000006d,0x00030005,0x00000637,0x00003376,0x00040005, + 0x0000063a,0x61726170,0x0000006d,0x00040005,0x0000063b,0x61726170,0x0000006d,0x00040005, + 0x0000063e,0x61726170,0x0000006d,0x00040005,0x00000640,0x61726170,0x0000006d,0x00040005, + 0x00000642,0x61726170,0x0000006d,0x00040005,0x00000643,0x61726170,0x0000006d,0x00030005, + 0x0000064c,0x00000076,0x00040005,0x0000064d,0x61726170,0x0000006d,0x00040005,0x0000064f, + 0x61726170,0x0000006d,0x00040005,0x00000651,0x61726170,0x0000006d,0x00040005,0x00000653, + 0x61726170,0x0000006d,0x00040005,0x0000065b,0x61726170,0x0000006d,0x00040005,0x0000065c, + 0x61726170,0x0000006d,0x00040005,0x0000065e,0x61726170,0x0000006d,0x00040005,0x0000065f, + 0x61726170,0x0000006d,0x00040005,0x00000662,0x61726170,0x0000006d,0x00040005,0x00000664, + 0x61726170,0x0000006d,0x00040005,0x00000666,0x61726170,0x0000006d,0x00040005,0x00000670, + 0x61726170,0x0000006d,0x00040005,0x00000672,0x61726170,0x0000006d,0x00040005,0x00000674, + 0x61726170,0x0000006d,0x00040005,0x00000676,0x61726170,0x0000006d,0x00040005,0x00000678, + 0x61726170,0x0000006d,0x00040005,0x0000067a,0x61726170,0x0000006d,0x00040005,0x00000687, + 0x61726170,0x0000006d,0x00040005,0x00000689,0x61726170,0x0000006d,0x00040005,0x0000068b, + 0x61726170,0x0000006d,0x00040005,0x0000068d,0x61726170,0x0000006d,0x00040005,0x0000068f, + 0x61726170,0x0000006d,0x00040005,0x00000690,0x61726170,0x0000006d,0x00040005,0x0000069d, + 0x61726170,0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a1, + 0x61726170,0x0000006d,0x00040005,0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006a5, + 0x61726170,0x0000006d,0x00040005,0x000006a6,0x61726170,0x0000006d,0x00040005,0x000006b3, + 0x61726170,0x0000006d,0x00040005,0x000006b5,0x61726170,0x0000006d,0x00040005,0x000006b7, + 0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d,0x00040005,0x000006bb, + 0x5f627573,0x00007978,0x00040005,0x000006be,0x61726170,0x0000006d,0x00030005,0x000006c0, + 0x00000078,0x00030005,0x000006c9,0x00000079,0x00040005,0x000006d1,0x61726170,0x0000006d, + 0x00040005,0x000006d3,0x61726170,0x0000006d,0x00040005,0x000006d5,0x61726170,0x0000006d, + 0x00040005,0x000006d7,0x61726170,0x0000006d,0x00040005,0x000006d9,0x61726170,0x0000006d, + 0x00040005,0x000006db,0x61726170,0x0000006d,0x00040005,0x000006de,0x61726170,0x0000006d, + 0x00040005,0x000006e0,0x61726170,0x0000006d,0x00040005,0x000006e2,0x61726170,0x0000006d, + 0x00040005,0x000006e4,0x61726170,0x0000006d,0x00040005,0x000006e6,0x61726170,0x0000006d, + 0x00040005,0x000006e7,0x61726170,0x0000006d,0x00040005,0x000006e9,0x61726170,0x0000006d, + 0x00040005,0x000006f1,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x000006f5,0x61726170,0x0000006d,0x00040005,0x000006fb,0x61726170,0x0000006d, + 0x00040005,0x000006fe,0x61726170,0x0000006d,0x00040005,0x00000700,0x61726170,0x0000006d, + 0x00040005,0x00000702,0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d, + 0x00040005,0x00000707,0x61726170,0x0000006d,0x00040005,0x00000709,0x61726170,0x0000006d, + 0x00040005,0x0000070b,0x61726170,0x0000006d,0x00040005,0x0000070c,0x61726170,0x0000006d, + 0x00040005,0x0000070e,0x61726170,0x0000006d,0x00040005,0x0000070f,0x61726170,0x0000006d, + 0x00040005,0x00000711,0x61726170,0x0000006d,0x00040005,0x00000717,0x61726170,0x0000006d, + 0x00040005,0x00000718,0x61726170,0x0000006d,0x00040005,0x0000071a,0x61726170,0x0000006d, + 0x00040005,0x0000071c,0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d, + 0x00040005,0x00000729,0x61726170,0x0000006d,0x00040005,0x0000072a,0x61726170,0x0000006d, + 0x00040005,0x0000072b,0x61726170,0x0000006d,0x00040005,0x0000072c,0x61726170,0x0000006d, + 0x00040005,0x0000072d,0x61726170,0x0000006d,0x00040005,0x0000072e,0x61726170,0x0000006d, + 0x00060005,0x00000731,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000733, + 0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000734, + 0x61726170,0x0000006d,0x00040005,0x00000736,0x61726170,0x0000006d,0x00060005,0x0000073d, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00060005,0x0000073e,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00030047,0x0000015c,0x00000002,0x00050048,0x0000015c,0x00000000, + 0x00000023,0x00000000,0x00050048,0x0000015c,0x00000001,0x00000023,0x00000008,0x00050048, + 0x0000015c,0x00000002,0x00000023,0x00000010,0x00050048,0x0000015c,0x00000003,0x00000023, + 0x00000018,0x00050048,0x0000015c,0x00000004,0x00000023,0x00000020,0x00050048,0x0000015c, + 0x00000005,0x00000023,0x00000028,0x00050048,0x0000015c,0x00000006,0x00000023,0x00000030, + 0x00050048,0x0000015c,0x00000007,0x00000023,0x00000040,0x00050048,0x0000015c,0x00000008, + 0x00000023,0x00000048,0x00050048,0x0000015c,0x00000009,0x00000023,0x00000050,0x00050048, + 0x0000015c,0x0000000a,0x00000023,0x00000058,0x00050048,0x0000015c,0x0000000b,0x00000023, + 0x00000060,0x00050048,0x0000015c,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000015c, + 0x0000000d,0x00000023,0x0000006c,0x00050048,0x0000015c,0x0000000e,0x00000023,0x00000070, + 0x00050048,0x0000015c,0x0000000f,0x00000023,0x00000074,0x00050048,0x0000015c,0x00000010, + 0x00000023,0x00000078,0x00050048,0x0000015c,0x00000011,0x00000023,0x0000007c,0x00050048, + 0x0000015c,0x00000012,0x00000023,0x00000080,0x00050048,0x0000015c,0x00000013,0x00000023, + 0x00000084,0x00050048,0x0000015c,0x00000014,0x00000023,0x00000088,0x00050048,0x0000015c, + 0x00000015,0x00000023,0x0000008c,0x00050048,0x0000015c,0x00000016,0x00000023,0x00000090, + 0x00040047,0x0000015e,0x00000021,0x0000000b,0x00040047,0x0000015e,0x00000022,0x00000000, + 0x00030047,0x0000016a,0x00000002,0x00050048,0x0000016a,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000016a,0x00000001,0x00000023,0x00000004,0x00050048,0x0000016a,0x00000002, + 0x00000023,0x00000008,0x00050048,0x0000016a,0x00000003,0x00000023,0x00000010,0x00040047, + 0x0000016c,0x00000021,0x0000000c,0x00040047,0x0000016c,0x00000022,0x00000000,0x00040047, + 0x0000017f,0x00000021,0x00000001,0x00040047,0x0000017f,0x00000022,0x00000000,0x00040047, + 0x00000189,0x00000021,0x0000000a,0x00040047,0x00000189,0x00000022,0x00000000,0x00040047, + 0x0000018f,0x00000021,0x00000000,0x00040047,0x0000018f,0x00000022,0x00000000,0x00040047, + 0x00000198,0x00000021,0x00000003,0x00040047,0x00000198,0x00000022,0x00000000,0x00040047, + 0x000001a6,0x00000021,0x00000004,0x00040047,0x000001a6,0x00000022,0x00000000,0x00040047, + 0x000001b0,0x00000021,0x00000005,0x00040047,0x000001b0,0x00000022,0x00000000,0x00040047, + 0x000001ba,0x00000021,0x00000006,0x00040047,0x000001ba,0x00000022,0x00000000,0x00040047, + 0x000001c4,0x00000021,0x00000007,0x00040047,0x000001c4,0x00000022,0x00000000,0x00040047, + 0x000001cf,0x00000021,0x00000008,0x00040047,0x000001cf,0x00000022,0x00000000,0x00030047, + 0x000001da,0x00000017,0x00040047,0x000001da,0x00000021,0x00000009,0x00040047,0x000001da, + 0x00000022,0x00000000,0x00030047,0x00000221,0x00000017,0x00040047,0x00000221,0x00000021, + 0x00000002,0x00040047,0x00000221,0x00000022,0x00000000,0x00040047,0x00000731,0x0000000b, + 0x0000001a,0x00040047,0x00000733,0x0000000b,0x0000001d,0x00040047,0x0000073d,0x00000021, + 0x000003e8,0x00040047,0x0000073d,0x00000022,0x00000000,0x00040047,0x0000073e,0x00000021, + 0x000003e9,0x00040047,0x0000073e,0x00000022,0x00000000,0x00040047,0x00000746,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008, + 0x00000006,0x00000007,0x00000007,0x00000007,0x00040015,0x00000013,0x00000020,0x00000001, + 0x00040020,0x00000014,0x00000007,0x00000013,0x00050021,0x00000015,0x00000013,0x00000014, + 0x00000014,0x00030016,0x0000001a,0x00000020,0x00040020,0x0000001b,0x00000007,0x0000001a, + 0x00050021,0x0000001c,0x0000001a,0x0000001b,0x0000001b,0x00040017,0x00000029,0x00000006, + 0x00000002,0x00040021,0x0000002a,0x00000029,0x00000007,0x00040017,0x0000002e,0x00000013, + 0x00000002,0x00030021,0x0000002f,0x0000002e,0x00030021,0x00000032,0x0000001a,0x00030021, + 0x00000035,0x00000006,0x00030021,0x0000003a,0x00000029,0x00040020,0x0000003d,0x00000007, + 0x0000002e,0x00040021,0x0000003e,0x0000001a,0x0000003d,0x00050021,0x00000042,0x00000002, + 0x0000003d,0x0000001b,0x00040017,0x0000004a,0x0000001a,0x00000004,0x00030021,0x0000004b, + 0x0000004a,0x00040020,0x0000004e,0x00000007,0x0000004a,0x00040021,0x0000004f,0x00000002, + 0x0000004e,0x00040017,0x00000053,0x0000001a,0x00000002,0x00050021,0x00000054,0x00000053, + 0x0000003d,0x00000007,0x00040020,0x00000059,0x00000007,0x00000053,0x00060021,0x0000005a, + 0x00000002,0x0000003d,0x00000059,0x00000007,0x00040021,0x00000060,0x00000002,0x00000007, + 0x00060021,0x00000066,0x0000002e,0x0000003d,0x0000003d,0x0000003d,0x00040021,0x0000006c, + 0x0000001a,0x0000001b,0x00050021,0x00000078,0x0000004a,0x00000059,0x00000007,0x00050021, + 0x0000007d,0x0000004a,0x0000003d,0x00000007,0x00070021,0x00000082,0x0000004a,0x0000004e, + 0x0000004e,0x0000004e,0x0000004e,0x00070021,0x00000089,0x00000002,0x0000003d,0x0000004e, + 0x00000007,0x00000007,0x00050021,0x00000090,0x0000004a,0x00000007,0x00000007,0x00060021, + 0x00000095,0x00000002,0x00000007,0x00000007,0x0000004e,0x00020014,0x0000009d,0x00060021, + 0x0000009e,0x0000009d,0x00000007,0x00000007,0x00000007,0x00040021,0x000000a4,0x0000004a, + 0x0000004e,0x00040020,0x000000a8,0x00000007,0x00000029,0x00080021,0x000000a9,0x0000004a, + 0x000000a8,0x000000a8,0x000000a8,0x000000a8,0x00000007,0x00050021,0x000000b1,0x0000004a, + 0x000000a8,0x00000007,0x00090021,0x000000c1,0x00000002,0x00000007,0x00000007,0x000000a8, + 0x00000007,0x00000007,0x00000007,0x00070021,0x000000ea,0x00000002,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00070021,0x000000f1,0x00000002,0x00000007,0x00000007,0x00000007, + 0x00000007,0x000a0021,0x000000f8,0x00000002,0x00000007,0x00000007,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00000007,0x00080021,0x00000102,0x00000002,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00000007,0x00090021,0x0000010a,0x00000002,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00000007,0x000000a8,0x00040017,0x00000113,0x00000006,0x00000003, + 0x00040020,0x00000114,0x00000007,0x00000113,0x00050021,0x00000115,0x00000002,0x00000114, + 0x00000007,0x0004002b,0x00000013,0x00000124,0x00000000,0x0004002b,0x00000006,0x0000013e, + 0x00000002,0x0004002b,0x00000006,0x0000013f,0x00000003,0x0004002b,0x00000006,0x00000145, + 0x00000001,0x0019001e,0x0000015c,0x0000002e,0x0000002e,0x0000002e,0x0000002e,0x0000002e, + 0x0000002e,0x0000004a,0x00000053,0x00000053,0x00000053,0x00000053,0x00000053,0x0000001a, + 0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x0000001a,0x00040020,0x0000015d,0x00000002,0x0000015c,0x0004003b,0x0000015d, + 0x0000015e,0x00000002,0x00040020,0x0000015f,0x00000002,0x0000002e,0x0004002b,0x00000013, + 0x00000164,0x0000000e,0x00040020,0x00000165,0x00000002,0x0000001a,0x0006001e,0x0000016a, + 0x00000006,0x00000006,0x00000029,0x00000029,0x00040020,0x0000016b,0x00000002,0x0000016a, + 0x0004003b,0x0000016b,0x0000016c,0x00000002,0x00040020,0x0000016d,0x00000002,0x00000006, + 0x0004002b,0x00000013,0x00000172,0x00000001,0x0004002b,0x00000013,0x00000177,0x00000002, + 0x00040020,0x00000178,0x00000002,0x00000029,0x00090019,0x0000017d,0x0000001a,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x0000017e,0x00000000, + 0x0000017d,0x0004003b,0x0000017e,0x0000017f,0x00000000,0x0004002b,0x00000006,0x00000183, + 0x00000000,0x00090019,0x00000187,0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000009,0x00040020,0x00000188,0x00000000,0x00000187,0x0004003b,0x00000188, + 0x00000189,0x00000000,0x0004002b,0x0000001a,0x0000018d,0x00000000,0x0004003b,0x0000017e, + 0x0000018f,0x00000000,0x00090019,0x00000196,0x0000001a,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000001,0x00040020,0x00000197,0x00000000,0x00000196,0x0004003b, + 0x00000197,0x00000198,0x00000000,0x0005002c,0x0000002e,0x0000019a,0x00000124,0x00000124, + 0x00090019,0x000001a4,0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000007,0x00040020,0x000001a5,0x00000000,0x000001a4,0x0004003b,0x000001a5,0x000001a6, + 0x00000000,0x0004003b,0x000001a5,0x000001b0,0x00000000,0x0004003b,0x000001a5,0x000001ba, + 0x00000000,0x0004003b,0x000001a5,0x000001c4,0x00000000,0x0004002b,0x00000006,0x000001cb, + 0x00000004,0x0004003b,0x000001a5,0x000001cf,0x00000000,0x0004002b,0x00000006,0x000001d6, + 0x00000005,0x0004003b,0x000001a5,0x000001da,0x00000000,0x0005002c,0x00000053,0x000001e0, + 0x0000018d,0x0000018d,0x00090019,0x0000021f,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000021,0x00040020,0x00000220,0x00000000,0x0000021f,0x0004003b, + 0x00000220,0x00000221,0x00000000,0x00040020,0x00000222,0x0000000b,0x00000006,0x00040017, + 0x00000226,0x00000006,0x00000004,0x0007002c,0x00000226,0x00000227,0x00000183,0x00000183, + 0x00000183,0x00000183,0x0004002b,0x0000001a,0x0000024b,0x42c80000,0x0004002b,0x0000001a, + 0x0000024d,0x41480000,0x0004002b,0x0000001a,0x00000251,0x3f99999a,0x0004002b,0x0000001a, + 0x00000252,0x40000000,0x0004002b,0x0000001a,0x00000258,0x3f800000,0x00040020,0x0000025d, + 0x00000004,0x00000006,0x0004003b,0x0000025d,0x0000025e,0x00000004,0x0004002b,0x0000001a, + 0x00000274,0x387fda40,0x0007002c,0x0000004a,0x0000027f,0x0000018d,0x0000018d,0x0000018d, + 0x0000018d,0x0004002b,0x0000001a,0x00000299,0x3e800000,0x00040017,0x000002bb,0x0000009d, + 0x00000002,0x0004002b,0x0000001a,0x000002cc,0x461c4000,0x0004002b,0x00000006,0x000002e9, + 0x00000010,0x0004001c,0x000002ea,0x0000001a,0x000002e9,0x0004001c,0x000002eb,0x000002ea, + 0x000002e9,0x00040020,0x000002ec,0x00000004,0x000002eb,0x0004003b,0x000002ec,0x000002ed, + 0x00000004,0x00040020,0x000002f0,0x00000004,0x0000001a,0x0004003b,0x000002ec,0x000002f3, + 0x00000004,0x0004003b,0x000002ec,0x000002f8,0x00000004,0x0004003b,0x000002ec,0x000002fd, + 0x00000004,0x0004002b,0x00000006,0x00000319,0x00000d48,0x0004002b,0x00000006,0x0000031a, + 0x00000108,0x0005002c,0x00000029,0x00000369,0x00000183,0x00000183,0x0005002c,0x00000029, + 0x0000036c,0x00000183,0x00000145,0x0005002c,0x00000029,0x0000036f,0x00000145,0x00000183, + 0x0005002c,0x00000029,0x00000372,0x00000145,0x00000145,0x0004002b,0x00000006,0x000003bb, + 0x00000040,0x0004002b,0x00000006,0x000003c9,0x00000020,0x0004001c,0x000003d3,0x0000004a, + 0x000001cb,0x00040020,0x000003d4,0x00000007,0x000003d3,0x0004002b,0x00000013,0x00000450, + 0x00000003,0x0004002b,0x00000006,0x000004a3,0x00000008,0x0004002b,0x00000006,0x000005da, + 0x00000006,0x0004002b,0x00000006,0x00000647,0x00000007,0x0004002b,0x00000013,0x000006c4, + 0x00000006,0x0004002b,0x00000013,0x000006cd,0x00000007,0x00040020,0x00000730,0x00000001, + 0x00000113,0x0004003b,0x00000730,0x00000731,0x00000001,0x00040020,0x00000732,0x00000001, + 0x00000006,0x0004003b,0x00000732,0x00000733,0x00000001,0x0004002b,0x0000001a,0x00000739, + 0x477fe000,0x0004002b,0x0000001a,0x0000073a,0x37801002,0x0002001a,0x0000073b,0x00040020, + 0x0000073c,0x00000000,0x0000073b,0x0004003b,0x0000073c,0x0000073d,0x00000000,0x0004003b, + 0x0000073c,0x0000073e,0x00000000,0x0004002b,0x0000001a,0x0000073f,0x7f7fffff,0x0004002b, + 0x0000001a,0x00000740,0x00800000,0x0004002b,0x0000001a,0x00000741,0x3a1fe868,0x0004002b, + 0x0000001a,0x00000742,0x3d800000,0x0004002b,0x0000001a,0x00000743,0x3d3d70a4,0x0004002b, + 0x0000001a,0x00000744,0x3e400000,0x0004002b,0x00000006,0x00000745,0x00000100,0x0006002c, + 0x00000113,0x00000746,0x00000745,0x00000145,0x00000145,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000114,0x00000734,0x00000007, + 0x0004003b,0x00000007,0x00000736,0x00000007,0x0004003d,0x00000113,0x00000735,0x00000731, + 0x0003003e,0x00000734,0x00000735,0x0004003d,0x00000006,0x00000737,0x00000733,0x0003003e, + 0x00000736,0x00000737,0x00060039,0x00000002,0x00000738,0x00000118,0x00000734,0x00000736, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x0000011a,0x00000009,0x0004003d,0x00000006, + 0x0000011b,0x0000000a,0x0004007c,0x00000013,0x0000011c,0x0000011b,0x0004003d,0x00000006, + 0x0000011d,0x0000000b,0x0004007c,0x00000013,0x0000011e,0x0000011d,0x000600cb,0x00000006, + 0x0000011f,0x0000011a,0x0000011c,0x0000011e,0x000200fe,0x0000011f,0x00010038,0x00050036, + 0x00000006,0x00000011,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037, + 0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x00000006,0x00000122,0x0000000e,0x0004003d,0x00000006,0x00000123,0x0000000f,0x0004003d, + 0x00000006,0x00000125,0x00000010,0x0004007c,0x00000013,0x00000126,0x00000125,0x000700c9, + 0x00000006,0x00000127,0x00000122,0x00000123,0x00000124,0x00000126,0x000200fe,0x00000127, + 0x00010038,0x00050036,0x00000013,0x00000018,0x00000000,0x00000015,0x00030037,0x00000014, + 0x00000016,0x00030037,0x00000014,0x00000017,0x000200f8,0x00000019,0x0004003d,0x00000013, + 0x0000012a,0x00000016,0x0004003d,0x00000013,0x0000012b,0x00000017,0x0007000c,0x00000013, + 0x0000012c,0x00000001,0x00000027,0x0000012a,0x0000012b,0x000200fe,0x0000012c,0x00010038, + 0x00050036,0x0000001a,0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d, + 0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a,0x0000012f, + 0x0000001d,0x0004003d,0x0000001a,0x00000130,0x0000001e,0x0007000c,0x0000001a,0x00000131, + 0x00000001,0x00000028,0x0000012f,0x00000130,0x000200fe,0x00000131,0x00010038,0x00050036, + 0x00000013,0x00000023,0x00000000,0x00000015,0x00030037,0x00000014,0x00000021,0x00030037, + 0x00000014,0x00000022,0x000200f8,0x00000024,0x0004003d,0x00000013,0x00000134,0x00000021, + 0x0004003d,0x00000013,0x00000135,0x00000022,0x0007000c,0x00000013,0x00000136,0x00000001, + 0x0000002a,0x00000134,0x00000135,0x000200fe,0x00000136,0x00010038,0x00050036,0x0000001a, + 0x00000027,0x00000000,0x0000001c,0x00030037,0x0000001b,0x00000025,0x00030037,0x0000001b, + 0x00000026,0x000200f8,0x00000028,0x0004003d,0x0000001a,0x00000139,0x00000025,0x0004003d, + 0x0000001a,0x0000013a,0x00000026,0x0007000c,0x0000001a,0x0000013b,0x00000001,0x0000001a, + 0x00000139,0x0000013a,0x000200fe,0x0000013b,0x00010038,0x00050036,0x00000029,0x0000002c, + 0x00000000,0x0000002a,0x00030037,0x00000007,0x0000002b,0x000200f8,0x0000002d,0x0004003b, + 0x00000007,0x00000140,0x00000007,0x0004003b,0x00000007,0x00000142,0x00000007,0x0004003b, + 0x00000007,0x00000143,0x00000007,0x0004003b,0x00000007,0x00000146,0x00000007,0x0004003b, + 0x00000007,0x00000147,0x00000007,0x0004003b,0x00000007,0x00000149,0x00000007,0x0004003b, + 0x00000007,0x0000014b,0x00000007,0x0004003b,0x00000007,0x0000014d,0x00000007,0x0004003b, + 0x00000007,0x0000014e,0x00000007,0x0004003b,0x00000007,0x00000150,0x00000007,0x0004003b, + 0x00000007,0x00000152,0x00000007,0x0004003b,0x00000007,0x00000153,0x00000007,0x0004003b, + 0x00000007,0x00000155,0x00000007,0x0004003b,0x00000007,0x00000156,0x00000007,0x0004003b, + 0x00000007,0x00000157,0x00000007,0x0004003d,0x00000006,0x00000141,0x0000002b,0x0003003e, + 0x00000140,0x00000141,0x0003003e,0x00000142,0x0000013e,0x0003003e,0x00000143,0x0000013f, + 0x00070039,0x00000006,0x00000144,0x0000000c,0x00000140,0x00000142,0x00000143,0x0003003e, + 0x00000146,0x00000144,0x0004003d,0x00000006,0x00000148,0x0000002b,0x0003003e,0x00000147, + 0x00000148,0x0003003e,0x00000149,0x00000145,0x00070039,0x00000006,0x0000014a,0x00000011, + 0x00000146,0x00000147,0x00000149,0x0004003d,0x00000006,0x0000014c,0x0000002b,0x0003003e, + 0x0000014b,0x0000014c,0x0003003e,0x0000014d,0x0000013f,0x0003003e,0x0000014e,0x0000013f, + 0x00070039,0x00000006,0x0000014f,0x0000000c,0x0000014b,0x0000014d,0x0000014e,0x0004003d, + 0x00000006,0x00000151,0x0000002b,0x0003003e,0x00000150,0x00000151,0x0003003e,0x00000152, + 0x00000145,0x0003003e,0x00000153,0x0000013e,0x00070039,0x00000006,0x00000154,0x0000000c, + 0x00000150,0x00000152,0x00000153,0x0003003e,0x00000155,0x0000014f,0x0003003e,0x00000156, + 0x00000154,0x0003003e,0x00000157,0x0000013e,0x00070039,0x00000006,0x00000158,0x00000011, + 0x00000155,0x00000156,0x00000157,0x00050050,0x00000029,0x00000159,0x0000014a,0x00000158, + 0x000200fe,0x00000159,0x00010038,0x00050036,0x0000002e,0x00000030,0x00000000,0x0000002f, + 0x000200f8,0x00000031,0x00050041,0x0000015f,0x00000160,0x0000015e,0x00000124,0x0004003d, + 0x0000002e,0x00000161,0x00000160,0x000200fe,0x00000161,0x00010038,0x00050036,0x0000001a, + 0x00000033,0x00000000,0x00000032,0x000200f8,0x00000034,0x00050041,0x00000165,0x00000166, + 0x0000015e,0x00000164,0x0004003d,0x0000001a,0x00000167,0x00000166,0x000200fe,0x00000167, + 0x00010038,0x00050036,0x00000006,0x00000036,0x00000000,0x00000035,0x000200f8,0x00000037, + 0x00050041,0x0000016d,0x0000016e,0x0000016c,0x00000124,0x0004003d,0x00000006,0x0000016f, + 0x0000016e,0x000200fe,0x0000016f,0x00010038,0x00050036,0x00000006,0x00000038,0x00000000, + 0x00000035,0x000200f8,0x00000039,0x00050041,0x0000016d,0x00000173,0x0000016c,0x00000172, + 0x0004003d,0x00000006,0x00000174,0x00000173,0x000200fe,0x00000174,0x00010038,0x00050036, + 0x00000029,0x0000003b,0x00000000,0x0000003a,0x000200f8,0x0000003c,0x00050041,0x00000178, + 0x00000179,0x0000016c,0x00000177,0x0004003d,0x00000029,0x0000017a,0x00000179,0x000200fe, + 0x0000017a,0x00010038,0x00050036,0x0000001a,0x00000040,0x00000000,0x0000003e,0x00030037, + 0x0000003d,0x0000003f,0x000200f8,0x00000041,0x0004003d,0x0000017d,0x00000180,0x0000017f, + 0x0004003d,0x0000002e,0x00000181,0x0000003f,0x0007005f,0x0000004a,0x00000182,0x00000180, + 0x00000181,0x00000002,0x00000124,0x00050051,0x0000001a,0x00000184,0x00000182,0x00000000, + 0x000200fe,0x00000184,0x00010038,0x00050036,0x00000002,0x00000045,0x00000000,0x00000042, + 0x00030037,0x0000003d,0x00000043,0x00030037,0x0000001b,0x00000044,0x000200f8,0x00000046, + 0x0004003d,0x00000187,0x0000018a,0x00000189,0x0004003d,0x0000002e,0x0000018b,0x00000043, + 0x0004003d,0x0000001a,0x0000018c,0x00000044,0x00070050,0x0000004a,0x0000018e,0x0000018c, + 0x0000018d,0x0000018d,0x0000018d,0x00040063,0x0000018a,0x0000018b,0x0000018e,0x000100fd, + 0x00010038,0x00050036,0x0000001a,0x00000048,0x00000000,0x0000003e,0x00030037,0x0000003d, + 0x00000047,0x000200f8,0x00000049,0x0004003d,0x0000017d,0x00000190,0x0000018f,0x0004003d, + 0x0000002e,0x00000191,0x00000047,0x0007005f,0x0000004a,0x00000192,0x00000190,0x00000191, + 0x00000002,0x00000124,0x00050051,0x0000001a,0x00000193,0x00000192,0x00000000,0x000200fe, + 0x00000193,0x00010038,0x00050036,0x0000004a,0x0000004c,0x00000000,0x0000004b,0x000200f8, + 0x0000004d,0x0004003d,0x00000196,0x00000199,0x00000198,0x00050062,0x0000004a,0x0000019b, + 0x00000199,0x0000019a,0x000200fe,0x0000019b,0x00010038,0x00050036,0x00000002,0x00000051, + 0x00000000,0x0000004f,0x00030037,0x0000004e,0x00000050,0x000200f8,0x00000052,0x0004003d, + 0x00000196,0x0000019e,0x00000198,0x0004003d,0x0000004a,0x0000019f,0x00000050,0x00040063, + 0x0000019e,0x0000019a,0x0000019f,0x000100fd,0x00010038,0x00050036,0x00000053,0x00000057, + 0x00000000,0x00000054,0x00030037,0x0000003d,0x00000055,0x00030037,0x00000007,0x00000056, + 0x000200f8,0x00000058,0x0004003d,0x00000006,0x000001a0,0x00000056,0x000500aa,0x0000009d, + 0x000001a1,0x000001a0,0x00000183,0x000300f7,0x000001a3,0x00000000,0x000400fa,0x000001a1, + 0x000001a2,0x000001a3,0x000200f8,0x000001a2,0x0004003d,0x000001a4,0x000001a7,0x000001a6, + 0x0004003d,0x0000002e,0x000001a8,0x00000055,0x00050062,0x0000004a,0x000001a9,0x000001a7, + 0x000001a8,0x0007004f,0x00000053,0x000001aa,0x000001a9,0x000001a9,0x00000000,0x00000001, + 0x000200fe,0x000001aa,0x000200f8,0x000001a3,0x0004003d,0x00000006,0x000001ac,0x00000056, + 0x000500aa,0x0000009d,0x000001ad,0x000001ac,0x00000145,0x000300f7,0x000001af,0x00000000, + 0x000400fa,0x000001ad,0x000001ae,0x000001af,0x000200f8,0x000001ae,0x0004003d,0x000001a4, + 0x000001b1,0x000001b0,0x0004003d,0x0000002e,0x000001b2,0x00000055,0x00050062,0x0000004a, + 0x000001b3,0x000001b1,0x000001b2,0x0007004f,0x00000053,0x000001b4,0x000001b3,0x000001b3, + 0x00000000,0x00000001,0x000200fe,0x000001b4,0x000200f8,0x000001af,0x0004003d,0x00000006, + 0x000001b6,0x00000056,0x000500aa,0x0000009d,0x000001b7,0x000001b6,0x0000013e,0x000300f7, + 0x000001b9,0x00000000,0x000400fa,0x000001b7,0x000001b8,0x000001b9,0x000200f8,0x000001b8, + 0x0004003d,0x000001a4,0x000001bb,0x000001ba,0x0004003d,0x0000002e,0x000001bc,0x00000055, + 0x00050062,0x0000004a,0x000001bd,0x000001bb,0x000001bc,0x0007004f,0x00000053,0x000001be, + 0x000001bd,0x000001bd,0x00000000,0x00000001,0x000200fe,0x000001be,0x000200f8,0x000001b9, + 0x0004003d,0x00000006,0x000001c0,0x00000056,0x000500aa,0x0000009d,0x000001c1,0x000001c0, + 0x0000013f,0x000300f7,0x000001c3,0x00000000,0x000400fa,0x000001c1,0x000001c2,0x000001c3, + 0x000200f8,0x000001c2,0x0004003d,0x000001a4,0x000001c5,0x000001c4,0x0004003d,0x0000002e, + 0x000001c6,0x00000055,0x00050062,0x0000004a,0x000001c7,0x000001c5,0x000001c6,0x0007004f, + 0x00000053,0x000001c8,0x000001c7,0x000001c7,0x00000000,0x00000001,0x000200fe,0x000001c8, + 0x000200f8,0x000001c3,0x0004003d,0x00000006,0x000001ca,0x00000056,0x000500aa,0x0000009d, + 0x000001cc,0x000001ca,0x000001cb,0x000300f7,0x000001ce,0x00000000,0x000400fa,0x000001cc, + 0x000001cd,0x000001ce,0x000200f8,0x000001cd,0x0004003d,0x000001a4,0x000001d0,0x000001cf, + 0x0004003d,0x0000002e,0x000001d1,0x00000055,0x00050062,0x0000004a,0x000001d2,0x000001d0, + 0x000001d1,0x0007004f,0x00000053,0x000001d3,0x000001d2,0x000001d2,0x00000000,0x00000001, + 0x000200fe,0x000001d3,0x000200f8,0x000001ce,0x0004003d,0x00000006,0x000001d5,0x00000056, + 0x000500aa,0x0000009d,0x000001d7,0x000001d5,0x000001d6,0x000300f7,0x000001d9,0x00000000, + 0x000400fa,0x000001d7,0x000001d8,0x000001d9,0x000200f8,0x000001d8,0x0004003d,0x000001a4, + 0x000001db,0x000001da,0x0004003d,0x0000002e,0x000001dc,0x00000055,0x00050062,0x0000004a, + 0x000001dd,0x000001db,0x000001dc,0x0007004f,0x00000053,0x000001de,0x000001dd,0x000001dd, + 0x00000000,0x00000001,0x000200fe,0x000001de,0x000200f8,0x000001d9,0x000200fe,0x000001e0, + 0x00010038,0x00050036,0x00000002,0x0000005e,0x00000000,0x0000005a,0x00030037,0x0000003d, + 0x0000005b,0x00030037,0x00000059,0x0000005c,0x00030037,0x00000007,0x0000005d,0x000200f8, + 0x0000005f,0x0004003d,0x00000006,0x000001e3,0x0000005d,0x000500aa,0x0000009d,0x000001e4, + 0x000001e3,0x00000183,0x000300f7,0x000001e6,0x00000000,0x000400fa,0x000001e4,0x000001e5, + 0x000001e6,0x000200f8,0x000001e5,0x0004003d,0x000001a4,0x000001e7,0x000001a6,0x0004003d, + 0x0000002e,0x000001e8,0x0000005b,0x0004003d,0x00000053,0x000001e9,0x0000005c,0x00050051, + 0x0000001a,0x000001ea,0x000001e9,0x00000000,0x00050051,0x0000001a,0x000001eb,0x000001e9, + 0x00000001,0x00070050,0x0000004a,0x000001ec,0x000001ea,0x000001eb,0x0000018d,0x0000018d, + 0x00040063,0x000001e7,0x000001e8,0x000001ec,0x000200f9,0x000001e6,0x000200f8,0x000001e6, + 0x0004003d,0x00000006,0x000001ed,0x0000005d,0x000500aa,0x0000009d,0x000001ee,0x000001ed, + 0x00000145,0x000300f7,0x000001f0,0x00000000,0x000400fa,0x000001ee,0x000001ef,0x000001f0, + 0x000200f8,0x000001ef,0x0004003d,0x000001a4,0x000001f1,0x000001b0,0x0004003d,0x0000002e, + 0x000001f2,0x0000005b,0x0004003d,0x00000053,0x000001f3,0x0000005c,0x00050051,0x0000001a, + 0x000001f4,0x000001f3,0x00000000,0x00050051,0x0000001a,0x000001f5,0x000001f3,0x00000001, + 0x00070050,0x0000004a,0x000001f6,0x000001f4,0x000001f5,0x0000018d,0x0000018d,0x00040063, + 0x000001f1,0x000001f2,0x000001f6,0x000200f9,0x000001f0,0x000200f8,0x000001f0,0x0004003d, + 0x00000006,0x000001f7,0x0000005d,0x000500aa,0x0000009d,0x000001f8,0x000001f7,0x0000013e, + 0x000300f7,0x000001fa,0x00000000,0x000400fa,0x000001f8,0x000001f9,0x000001fa,0x000200f8, + 0x000001f9,0x0004003d,0x000001a4,0x000001fb,0x000001ba,0x0004003d,0x0000002e,0x000001fc, + 0x0000005b,0x0004003d,0x00000053,0x000001fd,0x0000005c,0x00050051,0x0000001a,0x000001fe, + 0x000001fd,0x00000000,0x00050051,0x0000001a,0x000001ff,0x000001fd,0x00000001,0x00070050, + 0x0000004a,0x00000200,0x000001fe,0x000001ff,0x0000018d,0x0000018d,0x00040063,0x000001fb, + 0x000001fc,0x00000200,0x000200f9,0x000001fa,0x000200f8,0x000001fa,0x0004003d,0x00000006, + 0x00000201,0x0000005d,0x000500aa,0x0000009d,0x00000202,0x00000201,0x0000013f,0x000300f7, + 0x00000204,0x00000000,0x000400fa,0x00000202,0x00000203,0x00000204,0x000200f8,0x00000203, + 0x0004003d,0x000001a4,0x00000205,0x000001c4,0x0004003d,0x0000002e,0x00000206,0x0000005b, + 0x0004003d,0x00000053,0x00000207,0x0000005c,0x00050051,0x0000001a,0x00000208,0x00000207, + 0x00000000,0x00050051,0x0000001a,0x00000209,0x00000207,0x00000001,0x00070050,0x0000004a, + 0x0000020a,0x00000208,0x00000209,0x0000018d,0x0000018d,0x00040063,0x00000205,0x00000206, + 0x0000020a,0x000200f9,0x00000204,0x000200f8,0x00000204,0x0004003d,0x00000006,0x0000020b, + 0x0000005d,0x000500aa,0x0000009d,0x0000020c,0x0000020b,0x000001cb,0x000300f7,0x0000020e, + 0x00000000,0x000400fa,0x0000020c,0x0000020d,0x0000020e,0x000200f8,0x0000020d,0x0004003d, + 0x000001a4,0x0000020f,0x000001cf,0x0004003d,0x0000002e,0x00000210,0x0000005b,0x0004003d, + 0x00000053,0x00000211,0x0000005c,0x00050051,0x0000001a,0x00000212,0x00000211,0x00000000, + 0x00050051,0x0000001a,0x00000213,0x00000211,0x00000001,0x00070050,0x0000004a,0x00000214, + 0x00000212,0x00000213,0x0000018d,0x0000018d,0x00040063,0x0000020f,0x00000210,0x00000214, + 0x000200f9,0x0000020e,0x000200f8,0x0000020e,0x0004003d,0x00000006,0x00000215,0x0000005d, + 0x000500aa,0x0000009d,0x00000216,0x00000215,0x000001d6,0x000300f7,0x00000218,0x00000000, + 0x000400fa,0x00000216,0x00000217,0x00000218,0x000200f8,0x00000217,0x0004003d,0x000001a4, + 0x00000219,0x000001da,0x0004003d,0x0000002e,0x0000021a,0x0000005b,0x0004003d,0x00000053, + 0x0000021b,0x0000005c,0x00050051,0x0000001a,0x0000021c,0x0000021b,0x00000000,0x00050051, + 0x0000001a,0x0000021d,0x0000021b,0x00000001,0x00070050,0x0000004a,0x0000021e,0x0000021c, + 0x0000021d,0x0000018d,0x0000018d,0x00040063,0x00000219,0x0000021a,0x0000021e,0x000200f9, + 0x00000218,0x000200f8,0x00000218,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000062, + 0x00000000,0x00000060,0x00030037,0x00000007,0x00000061,0x000200f8,0x00000063,0x0006003c, + 0x00000222,0x00000223,0x00000221,0x0000019a,0x00000183,0x000700ea,0x00000006,0x00000224, + 0x00000223,0x00000145,0x00000183,0x00000145,0x0003003e,0x00000061,0x00000224,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000064,0x00000000,0x00000003,0x000200f8,0x00000065, + 0x0004003d,0x0000021f,0x00000225,0x00000221,0x00040063,0x00000225,0x0000019a,0x00000227, + 0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000006a,0x00000000,0x00000066,0x00030037, + 0x0000003d,0x00000067,0x00030037,0x0000003d,0x00000068,0x00030037,0x0000003d,0x00000069, + 0x000200f8,0x0000006b,0x0004003b,0x0000003d,0x00000228,0x00000007,0x0004003b,0x00000014, + 0x0000022f,0x00000007,0x0004003b,0x00000014,0x00000232,0x00000007,0x0004003b,0x00000014, + 0x00000234,0x00000007,0x0004003b,0x00000014,0x00000235,0x00000007,0x0004003b,0x00000014, + 0x0000023b,0x00000007,0x0004003b,0x00000014,0x0000023e,0x00000007,0x0004003b,0x00000014, + 0x00000240,0x00000007,0x0004003b,0x00000014,0x00000241,0x00000007,0x0004003d,0x0000002e, + 0x00000229,0x00000067,0x0004003d,0x0000002e,0x0000022a,0x00000068,0x00050080,0x0000002e, + 0x0000022b,0x00000229,0x0000022a,0x0003003e,0x00000228,0x0000022b,0x00050041,0x00000014, + 0x0000022c,0x00000069,0x00000183,0x0004003d,0x00000013,0x0000022d,0x0000022c,0x00050082, + 0x00000013,0x0000022e,0x0000022d,0x00000172,0x00050041,0x00000014,0x00000230,0x00000228, + 0x00000183,0x0004003d,0x00000013,0x00000231,0x00000230,0x0003003e,0x0000022f,0x00000231, + 0x0003003e,0x00000232,0x0000022e,0x00060039,0x00000013,0x00000233,0x00000018,0x0000022f, + 0x00000232,0x0003003e,0x00000234,0x00000124,0x0003003e,0x00000235,0x00000233,0x00060039, + 0x00000013,0x00000236,0x00000023,0x00000234,0x00000235,0x00050041,0x00000014,0x00000237, + 0x00000228,0x00000183,0x0003003e,0x00000237,0x00000236,0x00050041,0x00000014,0x00000238, + 0x00000069,0x00000145,0x0004003d,0x00000013,0x00000239,0x00000238,0x00050082,0x00000013, + 0x0000023a,0x00000239,0x00000172,0x00050041,0x00000014,0x0000023c,0x00000228,0x00000145, + 0x0004003d,0x00000013,0x0000023d,0x0000023c,0x0003003e,0x0000023b,0x0000023d,0x0003003e, + 0x0000023e,0x0000023a,0x00060039,0x00000013,0x0000023f,0x00000018,0x0000023b,0x0000023e, + 0x0003003e,0x00000240,0x00000124,0x0003003e,0x00000241,0x0000023f,0x00060039,0x00000013, + 0x00000242,0x00000023,0x00000240,0x00000241,0x00050041,0x00000014,0x00000243,0x00000228, + 0x00000145,0x0003003e,0x00000243,0x00000242,0x0004003d,0x0000002e,0x00000244,0x00000228, + 0x000200fe,0x00000244,0x00010038,0x00050036,0x0000001a,0x0000006e,0x00000000,0x0000006c, + 0x00030037,0x0000001b,0x0000006d,0x000200f8,0x0000006f,0x0004003b,0x0000001b,0x00000249, + 0x00000007,0x0004003b,0x0000001b,0x00000250,0x00000007,0x0004003b,0x0000001b,0x00000253, + 0x00000007,0x0004003b,0x0000001b,0x00000254,0x00000007,0x0004003d,0x0000001a,0x00000247, + 0x0000006d,0x0006000c,0x0000001a,0x00000248,0x00000001,0x0000001b,0x00000247,0x0003003e, + 0x0000006d,0x00000248,0x0004003d,0x0000001a,0x0000024a,0x0000006d,0x00050085,0x0000001a, + 0x0000024c,0x0000024a,0x0000024b,0x00050088,0x0000001a,0x0000024e,0x0000024c,0x0000024d, + 0x0006000c,0x0000001a,0x0000024f,0x00000001,0x0000001e,0x0000024e,0x0003003e,0x00000249, + 0x0000024f,0x0003003e,0x00000253,0x00000252,0x0004003d,0x0000001a,0x00000255,0x00000249, + 0x0003003e,0x00000254,0x00000255,0x00060039,0x0000001a,0x00000256,0x00000027,0x00000253, + 0x00000254,0x00050085,0x0000001a,0x00000257,0x00000251,0x00000256,0x0003003e,0x00000250, + 0x00000257,0x0004003d,0x0000001a,0x00000259,0x00000250,0x00050088,0x0000001a,0x0000025a, + 0x00000258,0x00000259,0x000200fe,0x0000025a,0x00010038,0x00050036,0x00000002,0x00000071, + 0x00000000,0x00000060,0x00030037,0x00000007,0x00000070,0x000200f8,0x00000072,0x0004003b, + 0x00000007,0x0000025f,0x00000007,0x0004003d,0x00000006,0x00000260,0x0000025e,0x0003003e, + 0x0000025f,0x00000260,0x00050039,0x00000002,0x00000261,0x00000062,0x0000025f,0x0004003d, + 0x00000006,0x00000262,0x0000025f,0x0003003e,0x0000025e,0x00000262,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x00000073,0x00000000,0x00000035,0x000200f8,0x00000074,0x0004003d, + 0x00000006,0x00000263,0x0000025e,0x000200fe,0x00000263,0x00010038,0x00050036,0x00000002, + 0x00000076,0x00000000,0x00000060,0x00030037,0x00000007,0x00000075,0x000200f8,0x00000077, + 0x00040039,0x00000002,0x00000266,0x00000064,0x000100fd,0x00010038,0x00050036,0x0000004a, + 0x0000007b,0x00000000,0x00000078,0x00030037,0x00000059,0x00000079,0x00030037,0x00000007, + 0x0000007a,0x000200f8,0x0000007c,0x0004003b,0x0000003d,0x00000267,0x00000007,0x0004003b, + 0x0000003d,0x0000026b,0x00000007,0x0004003b,0x0000003d,0x0000026c,0x00000007,0x0004003b, + 0x0000003d,0x0000026d,0x00000007,0x0004003b,0x0000001b,0x0000026f,0x00000007,0x0004003b, + 0x0000003d,0x00000270,0x00000007,0x0004003b,0x0000001b,0x00000273,0x00000007,0x0004003b, + 0x0000001b,0x00000277,0x00000007,0x0004003b,0x0000001b,0x00000278,0x00000007,0x0004003b, + 0x0000001b,0x0000027a,0x00000007,0x0004003b,0x0000003d,0x0000027b,0x00000007,0x0004003b, + 0x0000004e,0x0000027e,0x00000007,0x0004003d,0x00000053,0x00000268,0x00000079,0x0004006e, + 0x0000002e,0x00000269,0x00000268,0x00040039,0x0000002e,0x0000026a,0x00000030,0x0003003e, + 0x0000026b,0x00000269,0x0003003e,0x0000026c,0x0000019a,0x0003003e,0x0000026d,0x0000026a, + 0x00070039,0x0000002e,0x0000026e,0x0000006a,0x0000026b,0x0000026c,0x0000026d,0x0003003e, + 0x00000267,0x0000026e,0x0004003d,0x0000002e,0x00000271,0x00000267,0x0003003e,0x00000270, + 0x00000271,0x00050039,0x0000001a,0x00000272,0x00000048,0x00000270,0x0003003e,0x0000026f, + 0x00000272,0x0004003d,0x0000001a,0x00000275,0x0000026f,0x0006000c,0x0000001a,0x00000276, + 0x00000001,0x0000001c,0x00000275,0x0003003e,0x00000277,0x00000274,0x0003003e,0x00000278, + 0x00000276,0x00060039,0x0000001a,0x00000279,0x0000001f,0x00000277,0x00000278,0x0003003e, + 0x00000273,0x00000279,0x0004003d,0x0000002e,0x0000027c,0x00000267,0x0003003e,0x0000027b, + 0x0000027c,0x00050039,0x0000001a,0x0000027d,0x00000040,0x0000027b,0x0003003e,0x0000027a, + 0x0000027d,0x0003003e,0x0000027e,0x0000027f,0x0004003d,0x0000001a,0x00000280,0x00000273, + 0x00050041,0x0000001b,0x00000281,0x0000027e,0x00000183,0x0003003e,0x00000281,0x00000280, + 0x0004003d,0x0000001a,0x00000282,0x0000026f,0x00050041,0x0000001b,0x00000283,0x0000027e, + 0x00000145,0x0003003e,0x00000283,0x00000282,0x0004003d,0x0000001a,0x00000284,0x0000027a, + 0x00050041,0x0000001b,0x00000285,0x0000027e,0x0000013e,0x0003003e,0x00000285,0x00000284, + 0x0004003d,0x0000004a,0x00000286,0x0000027e,0x000200fe,0x00000286,0x00010038,0x00050036, + 0x0000004a,0x00000080,0x00000000,0x0000007d,0x00030037,0x0000003d,0x0000007e,0x00030037, + 0x00000007,0x0000007f,0x000200f8,0x00000081,0x0004003b,0x0000003d,0x00000289,0x00000007, + 0x0004003b,0x00000007,0x0000028b,0x00000007,0x0004003d,0x0000002e,0x0000028a,0x0000007e, + 0x0003003e,0x00000289,0x0000028a,0x0003003e,0x0000028b,0x000001d6,0x00060039,0x00000053, + 0x0000028c,0x00000057,0x00000289,0x0000028b,0x00050051,0x0000001a,0x0000028d,0x0000028c, + 0x00000000,0x00050051,0x0000001a,0x0000028e,0x0000028c,0x00000001,0x00070050,0x0000004a, + 0x0000028f,0x0000028d,0x0000028e,0x0000018d,0x0000018d,0x000200fe,0x0000028f,0x00010038, + 0x00050036,0x0000004a,0x00000087,0x00000000,0x00000082,0x00030037,0x0000004e,0x00000083, + 0x00030037,0x0000004e,0x00000084,0x00030037,0x0000004e,0x00000085,0x00030037,0x0000004e, + 0x00000086,0x000200f8,0x00000088,0x0004003d,0x0000004a,0x00000292,0x00000083,0x0004003d, + 0x0000004a,0x00000293,0x00000084,0x00050081,0x0000004a,0x00000294,0x00000292,0x00000293, + 0x0004003d,0x0000004a,0x00000295,0x00000085,0x00050081,0x0000004a,0x00000296,0x00000294, + 0x00000295,0x0004003d,0x0000004a,0x00000297,0x00000086,0x00050081,0x0000004a,0x00000298, + 0x00000296,0x00000297,0x0005008e,0x0000004a,0x0000029a,0x00000298,0x00000299,0x000200fe, + 0x0000029a,0x00010038,0x00050036,0x00000002,0x0000008e,0x00000000,0x00000089,0x00030037, + 0x0000003d,0x0000008a,0x00030037,0x0000004e,0x0000008b,0x00030037,0x00000007,0x0000008c, + 0x00030037,0x00000007,0x0000008d,0x000200f8,0x0000008f,0x0004003b,0x0000003d,0x000002a1, + 0x00000007,0x0004003b,0x00000059,0x000002a3,0x00000007,0x0004003b,0x00000007,0x000002a6, + 0x00000007,0x0004003b,0x0000003d,0x000002ae,0x00000007,0x0004003b,0x0000001b,0x000002b0, + 0x00000007,0x0004003b,0x0000004e,0x000002c0,0x00000007,0x0004003b,0x0000001b,0x000002c2, + 0x00000007,0x0004003b,0x0000001b,0x000002c5,0x00000007,0x0004003b,0x0000001b,0x000002c8, + 0x00000007,0x0004003b,0x0000001b,0x000002da,0x00000007,0x0004003b,0x0000001b,0x000002db, + 0x00000007,0x0004003b,0x0000001b,0x000002de,0x00000007,0x0004003b,0x0000004e,0x000002e6, + 0x00000007,0x0004003d,0x00000006,0x0000029d,0x0000008c,0x000500aa,0x0000009d,0x0000029e, + 0x0000029d,0x000001d6,0x000300f7,0x000002a0,0x00000000,0x000400fa,0x0000029e,0x0000029f, + 0x000002a9,0x000200f8,0x0000029f,0x0004003d,0x0000002e,0x000002a2,0x0000008a,0x0003003e, + 0x000002a1,0x000002a2,0x0004003d,0x0000004a,0x000002a4,0x0000008b,0x0007004f,0x00000053, + 0x000002a5,0x000002a4,0x000002a4,0x00000000,0x00000001,0x0003003e,0x000002a3,0x000002a5, + 0x0004003d,0x00000006,0x000002a7,0x0000008c,0x0003003e,0x000002a6,0x000002a7,0x00070039, + 0x00000002,0x000002a8,0x0000005e,0x000002a1,0x000002a3,0x000002a6,0x000200f9,0x000002a0, + 0x000200f8,0x000002a9,0x0004003d,0x00000006,0x000002aa,0x0000008c,0x000500aa,0x0000009d, + 0x000002ab,0x000002aa,0x00000183,0x000300f7,0x000002ad,0x00000000,0x000400fa,0x000002ab, + 0x000002ac,0x000002ad,0x000200f8,0x000002ac,0x0004003d,0x0000002e,0x000002af,0x0000008a, + 0x0003003e,0x000002ae,0x000002af,0x00050041,0x0000001b,0x000002b1,0x0000008b,0x0000013e, + 0x0004003d,0x0000001a,0x000002b2,0x000002b1,0x0003003e,0x000002b0,0x000002b2,0x00060039, + 0x00000002,0x000002b3,0x00000045,0x000002ae,0x000002b0,0x000200f9,0x000002ad,0x000200f8, + 0x000002ad,0x000200f9,0x000002a0,0x000200f8,0x000002a0,0x0004003d,0x00000006,0x000002b4, + 0x0000008c,0x00040039,0x00000006,0x000002b5,0x00000036,0x00050082,0x00000006,0x000002b6, + 0x000002b5,0x00000145,0x000500aa,0x0000009d,0x000002b7,0x000002b4,0x000002b6,0x000300f7, + 0x000002b9,0x00000000,0x000400fa,0x000002b7,0x000002b8,0x000002b9,0x000200f8,0x000002b8, + 0x0004003d,0x0000002e,0x000002ba,0x0000008a,0x000500aa,0x000002bb,0x000002bc,0x000002ba, + 0x0000019a,0x0004009b,0x0000009d,0x000002bd,0x000002bc,0x000300f7,0x000002bf,0x00000000, + 0x000400fa,0x000002bd,0x000002be,0x000002bf,0x000200f8,0x000002be,0x00040039,0x0000004a, + 0x000002c1,0x0000004c,0x0003003e,0x000002c0,0x000002c1,0x00050041,0x0000001b,0x000002c3, + 0x0000008b,0x00000145,0x0004003d,0x0000001a,0x000002c4,0x000002c3,0x0003003e,0x000002c2, + 0x000002c4,0x00050041,0x0000001b,0x000002c6,0x000002c0,0x00000145,0x0004003d,0x0000001a, + 0x000002c7,0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00050041,0x0000001b,0x000002c9, + 0x0000008b,0x00000183,0x0004003d,0x0000001a,0x000002ca,0x000002c9,0x0003003e,0x000002c8, + 0x000002ca,0x0004003d,0x0000001a,0x000002cb,0x000002c5,0x000500b8,0x0000009d,0x000002cd, + 0x000002cb,0x000002cc,0x000300f7,0x000002cf,0x00000000,0x000400fa,0x000002cd,0x000002ce, + 0x000002cf,0x000200f8,0x000002ce,0x0004003d,0x0000001a,0x000002d0,0x000002c5,0x0004003d, + 0x0000001a,0x000002d1,0x000002c8,0x0004003d,0x0000001a,0x000002d2,0x000002c5,0x00050083, + 0x0000001a,0x000002d3,0x000002d1,0x000002d2,0x00040039,0x0000001a,0x000002d4,0x00000033, + 0x0004007f,0x0000001a,0x000002d5,0x000002d4,0x0006000c,0x0000001a,0x000002d6,0x00000001, + 0x0000001b,0x000002d5,0x00050083,0x0000001a,0x000002d7,0x00000258,0x000002d6,0x00050085, + 0x0000001a,0x000002d8,0x000002d3,0x000002d7,0x00050081,0x0000001a,0x000002d9,0x000002d0, + 0x000002d8,0x0003003e,0x000002c8,0x000002d9,0x0003003e,0x000002da,0x0000018d,0x0004003d, + 0x0000001a,0x000002dc,0x000002c8,0x0003003e,0x000002db,0x000002dc,0x00060039,0x0000001a, + 0x000002dd,0x0000001f,0x000002da,0x000002db,0x0003003e,0x000002c8,0x000002dd,0x000200f9, + 0x000002cf,0x000200f8,0x000002cf,0x0004003d,0x0000001a,0x000002df,0x000002c8,0x0003003e, + 0x000002de,0x000002df,0x00050039,0x0000001a,0x000002e0,0x0000006e,0x000002de,0x00050041, + 0x0000001b,0x000002e1,0x000002c0,0x00000183,0x0003003e,0x000002e1,0x000002e0,0x0004003d, + 0x0000001a,0x000002e2,0x000002c8,0x00050041,0x0000001b,0x000002e3,0x000002c0,0x00000145, + 0x0003003e,0x000002e3,0x000002e2,0x0004003d,0x0000001a,0x000002e4,0x000002c2,0x00050041, + 0x0000001b,0x000002e5,0x000002c0,0x0000013e,0x0003003e,0x000002e5,0x000002e4,0x0004003d, + 0x0000004a,0x000002e7,0x000002c0,0x0003003e,0x000002e6,0x000002e7,0x00050039,0x00000002, + 0x000002e8,0x00000051,0x000002e6,0x000200f9,0x000002bf,0x000200f8,0x000002bf,0x000200f9, + 0x000002b9,0x000200f8,0x000002b9,0x000100fd,0x00010038,0x00050036,0x0000004a,0x00000093, + 0x00000000,0x00000090,0x00030037,0x00000007,0x00000091,0x00030037,0x00000007,0x00000092, + 0x000200f8,0x00000094,0x0004003d,0x00000006,0x000002ee,0x00000091,0x0004003d,0x00000006, + 0x000002ef,0x00000092,0x00060041,0x000002f0,0x000002f1,0x000002ed,0x000002ee,0x000002ef, + 0x0004003d,0x0000001a,0x000002f2,0x000002f1,0x0004003d,0x00000006,0x000002f4,0x00000091, + 0x0004003d,0x00000006,0x000002f5,0x00000092,0x00060041,0x000002f0,0x000002f6,0x000002f3, + 0x000002f4,0x000002f5,0x0004003d,0x0000001a,0x000002f7,0x000002f6,0x0004003d,0x00000006, + 0x000002f9,0x00000091,0x0004003d,0x00000006,0x000002fa,0x00000092,0x00060041,0x000002f0, + 0x000002fb,0x000002f8,0x000002f9,0x000002fa,0x0004003d,0x0000001a,0x000002fc,0x000002fb, + 0x0004003d,0x00000006,0x000002fe,0x00000091,0x0004003d,0x00000006,0x000002ff,0x00000092, + 0x00060041,0x000002f0,0x00000300,0x000002fd,0x000002fe,0x000002ff,0x0004003d,0x0000001a, + 0x00000301,0x00000300,0x00070050,0x0000004a,0x00000302,0x000002f2,0x000002f7,0x000002fc, + 0x00000301,0x000200fe,0x00000302,0x00010038,0x00050036,0x00000002,0x00000099,0x00000000, + 0x00000095,0x00030037,0x00000007,0x00000096,0x00030037,0x00000007,0x00000097,0x00030037, + 0x0000004e,0x00000098,0x000200f8,0x0000009a,0x0004003d,0x00000006,0x00000305,0x00000096, + 0x0004003d,0x00000006,0x00000306,0x00000097,0x00050041,0x0000001b,0x00000307,0x00000098, + 0x00000183,0x0004003d,0x0000001a,0x00000308,0x00000307,0x00060041,0x000002f0,0x00000309, + 0x000002ed,0x00000305,0x00000306,0x0003003e,0x00000309,0x00000308,0x0004003d,0x00000006, + 0x0000030a,0x00000096,0x0004003d,0x00000006,0x0000030b,0x00000097,0x00050041,0x0000001b, + 0x0000030c,0x00000098,0x00000145,0x0004003d,0x0000001a,0x0000030d,0x0000030c,0x00060041, + 0x000002f0,0x0000030e,0x000002f3,0x0000030a,0x0000030b,0x0003003e,0x0000030e,0x0000030d, + 0x0004003d,0x00000006,0x0000030f,0x00000096,0x0004003d,0x00000006,0x00000310,0x00000097, + 0x00050041,0x0000001b,0x00000311,0x00000098,0x0000013e,0x0004003d,0x0000001a,0x00000312, + 0x00000311,0x00060041,0x000002f0,0x00000313,0x000002f8,0x0000030f,0x00000310,0x0003003e, + 0x00000313,0x00000312,0x0004003d,0x00000006,0x00000314,0x00000096,0x0004003d,0x00000006, + 0x00000315,0x00000097,0x00050041,0x0000001b,0x00000316,0x00000098,0x0000013f,0x0004003d, + 0x0000001a,0x00000317,0x00000316,0x00060041,0x000002f0,0x00000318,0x000002fd,0x00000314, + 0x00000315,0x0003003e,0x00000318,0x00000317,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x0000009b,0x00000000,0x00000003,0x000200f8,0x0000009c,0x000300e1,0x0000013e,0x00000319, + 0x000400e0,0x0000013e,0x0000013e,0x0000031a,0x000100fd,0x00010038,0x00050036,0x0000009d, + 0x000000a2,0x00000000,0x0000009e,0x00030037,0x00000007,0x0000009f,0x00030037,0x00000007, + 0x000000a0,0x00030037,0x00000007,0x000000a1,0x000200f8,0x000000a3,0x0004003b,0x00000007, + 0x0000031f,0x00000007,0x0004003d,0x00000006,0x0000031b,0x000000a0,0x000500aa,0x0000009d, + 0x0000031c,0x0000031b,0x00000183,0x000300f7,0x0000031e,0x00000000,0x000400fa,0x0000031c, + 0x0000031d,0x0000031e,0x000200f8,0x0000031d,0x0004003d,0x00000006,0x00000320,0x000000a1, + 0x0003003e,0x0000031f,0x00000320,0x00050039,0x00000002,0x00000321,0x00000071,0x0000031f, + 0x000200f9,0x0000031e,0x000200f8,0x0000031e,0x00040039,0x00000002,0x00000322,0x0000009b, + 0x00040039,0x00000006,0x00000323,0x00000073,0x0004003d,0x00000006,0x00000324,0x0000009f, + 0x00050082,0x00000006,0x00000325,0x00000324,0x00000145,0x000500ab,0x0000009d,0x00000326, + 0x00000323,0x00000325,0x000200fe,0x00000326,0x00010038,0x00050036,0x0000004a,0x000000a6, + 0x00000000,0x000000a4,0x00030037,0x0000004e,0x000000a5,0x000200f8,0x000000a7,0x0004003b, + 0x0000004e,0x00000329,0x00000007,0x0004003b,0x0000004e,0x0000032b,0x00000007,0x0004003b, + 0x0000004e,0x0000032e,0x00000007,0x0004003b,0x0000004e,0x00000331,0x00000007,0x0004003b, + 0x0000004e,0x00000334,0x00000007,0x0004003b,0x0000004e,0x00000336,0x00000007,0x0004003b, + 0x0000004e,0x00000338,0x00000007,0x0004003b,0x0000004e,0x0000033a,0x00000007,0x0004003d, + 0x0000004a,0x0000032a,0x000000a5,0x0003003e,0x00000329,0x0000032a,0x0004003d,0x0000004a, + 0x0000032c,0x000000a5,0x0006016e,0x0000004a,0x0000032d,0x0000013f,0x0000032c,0x00000183, + 0x0003003e,0x0000032b,0x0000032d,0x0004003d,0x0000004a,0x0000032f,0x000000a5,0x0006016e, + 0x0000004a,0x00000330,0x0000013f,0x0000032f,0x00000145,0x0003003e,0x0000032e,0x00000330, + 0x0004003d,0x0000004a,0x00000332,0x000000a5,0x0006016e,0x0000004a,0x00000333,0x0000013f, + 0x00000332,0x0000013e,0x0003003e,0x00000331,0x00000333,0x0004003d,0x0000004a,0x00000335, + 0x00000329,0x0003003e,0x00000334,0x00000335,0x0004003d,0x0000004a,0x00000337,0x0000032b, + 0x0003003e,0x00000336,0x00000337,0x0004003d,0x0000004a,0x00000339,0x0000032e,0x0003003e, + 0x00000338,0x00000339,0x0004003d,0x0000004a,0x0000033b,0x00000331,0x0003003e,0x0000033a, + 0x0000033b,0x00080039,0x0000004a,0x0000033c,0x00000087,0x00000334,0x00000336,0x00000338, + 0x0000033a,0x000200fe,0x0000033c,0x00010038,0x00050036,0x0000004a,0x000000af,0x00000000, + 0x000000a9,0x00030037,0x000000a8,0x000000aa,0x00030037,0x000000a8,0x000000ab,0x00030037, + 0x000000a8,0x000000ac,0x00030037,0x000000a8,0x000000ad,0x00030037,0x00000007,0x000000ae, + 0x000200f8,0x000000b0,0x0004003b,0x0000004e,0x00000341,0x00000007,0x0004003b,0x0000003d, + 0x00000344,0x00000007,0x0004003b,0x00000007,0x00000345,0x00000007,0x0004003b,0x0000004e, + 0x00000348,0x00000007,0x0004003b,0x0000003d,0x0000034b,0x00000007,0x0004003b,0x00000007, + 0x0000034c,0x00000007,0x0004003b,0x0000004e,0x0000034f,0x00000007,0x0004003b,0x0000003d, + 0x00000352,0x00000007,0x0004003b,0x00000007,0x00000353,0x00000007,0x0004003b,0x0000004e, + 0x00000356,0x00000007,0x0004003b,0x0000003d,0x00000359,0x00000007,0x0004003b,0x00000007, + 0x0000035a,0x00000007,0x0004003b,0x0000004e,0x0000035d,0x00000007,0x0004003b,0x0000004e, + 0x0000035f,0x00000007,0x0004003b,0x0000004e,0x00000361,0x00000007,0x0004003b,0x0000004e, + 0x00000363,0x00000007,0x0004003d,0x00000029,0x00000342,0x000000aa,0x0004007c,0x0000002e, + 0x00000343,0x00000342,0x0003003e,0x00000344,0x00000343,0x0004003d,0x00000006,0x00000346, + 0x000000ae,0x0003003e,0x00000345,0x00000346,0x00060039,0x0000004a,0x00000347,0x00000080, + 0x00000344,0x00000345,0x0003003e,0x00000341,0x00000347,0x0004003d,0x00000029,0x00000349, + 0x000000ab,0x0004007c,0x0000002e,0x0000034a,0x00000349,0x0003003e,0x0000034b,0x0000034a, + 0x0004003d,0x00000006,0x0000034d,0x000000ae,0x0003003e,0x0000034c,0x0000034d,0x00060039, + 0x0000004a,0x0000034e,0x00000080,0x0000034b,0x0000034c,0x0003003e,0x00000348,0x0000034e, + 0x0004003d,0x00000029,0x00000350,0x000000ac,0x0004007c,0x0000002e,0x00000351,0x00000350, + 0x0003003e,0x00000352,0x00000351,0x0004003d,0x00000006,0x00000354,0x000000ae,0x0003003e, + 0x00000353,0x00000354,0x00060039,0x0000004a,0x00000355,0x00000080,0x00000352,0x00000353, + 0x0003003e,0x0000034f,0x00000355,0x0004003d,0x00000029,0x00000357,0x000000ad,0x0004007c, + 0x0000002e,0x00000358,0x00000357,0x0003003e,0x00000359,0x00000358,0x0004003d,0x00000006, + 0x0000035b,0x000000ae,0x0003003e,0x0000035a,0x0000035b,0x00060039,0x0000004a,0x0000035c, + 0x00000080,0x00000359,0x0000035a,0x0003003e,0x00000356,0x0000035c,0x0004003d,0x0000004a, + 0x0000035e,0x00000341,0x0003003e,0x0000035d,0x0000035e,0x0004003d,0x0000004a,0x00000360, + 0x00000348,0x0003003e,0x0000035f,0x00000360,0x0004003d,0x0000004a,0x00000362,0x0000034f, + 0x0003003e,0x00000361,0x00000362,0x0004003d,0x0000004a,0x00000364,0x00000356,0x0003003e, + 0x00000363,0x00000364,0x00080039,0x0000004a,0x00000365,0x00000087,0x0000035d,0x0000035f, + 0x00000361,0x00000363,0x000200fe,0x00000365,0x00010038,0x00050036,0x0000004a,0x000000b4, + 0x00000000,0x000000b1,0x00030037,0x000000a8,0x000000b2,0x00030037,0x00000007,0x000000b3, + 0x000200f8,0x000000b5,0x0004003b,0x000000a8,0x00000374,0x00000007,0x0004003b,0x000000a8, + 0x00000375,0x00000007,0x0004003b,0x000000a8,0x00000376,0x00000007,0x0004003b,0x000000a8, + 0x00000377,0x00000007,0x0004003b,0x00000007,0x00000378,0x00000007,0x0004003d,0x00000029, + 0x00000368,0x000000b2,0x00050080,0x00000029,0x0000036a,0x00000368,0x00000369,0x0004003d, + 0x00000029,0x0000036b,0x000000b2,0x00050080,0x00000029,0x0000036d,0x0000036b,0x0000036c, + 0x0004003d,0x00000029,0x0000036e,0x000000b2,0x00050080,0x00000029,0x00000370,0x0000036e, + 0x0000036f,0x0004003d,0x00000029,0x00000371,0x000000b2,0x00050080,0x00000029,0x00000373, + 0x00000371,0x00000372,0x0003003e,0x00000374,0x0000036a,0x0003003e,0x00000375,0x0000036d, + 0x0003003e,0x00000376,0x00000370,0x0003003e,0x00000377,0x00000373,0x0004003d,0x00000006, + 0x00000379,0x000000b3,0x0003003e,0x00000378,0x00000379,0x00090039,0x0000004a,0x0000037a, + 0x000000af,0x00000374,0x00000375,0x00000376,0x00000377,0x00000378,0x000200fe,0x0000037a, + 0x00010038,0x00050036,0x0000004a,0x000000bb,0x00000000,0x000000a9,0x00030037,0x000000a8, + 0x000000b6,0x00030037,0x000000a8,0x000000b7,0x00030037,0x000000a8,0x000000b8,0x00030037, + 0x000000a8,0x000000b9,0x00030037,0x00000007,0x000000ba,0x000200f8,0x000000bc,0x0004003b, + 0x0000004e,0x0000037d,0x00000007,0x0004003b,0x00000059,0x00000381,0x00000007,0x0004003b, + 0x00000007,0x00000382,0x00000007,0x0004003b,0x0000004e,0x00000385,0x00000007,0x0004003b, + 0x00000059,0x00000389,0x00000007,0x0004003b,0x00000007,0x0000038a,0x00000007,0x0004003b, + 0x0000004e,0x0000038d,0x00000007,0x0004003b,0x00000059,0x00000391,0x00000007,0x0004003b, + 0x00000007,0x00000392,0x00000007,0x0004003b,0x0000004e,0x00000395,0x00000007,0x0004003b, + 0x00000059,0x00000399,0x00000007,0x0004003b,0x00000007,0x0000039a,0x00000007,0x0004003b, + 0x0000004e,0x0000039d,0x00000007,0x0004003b,0x0000004e,0x0000039f,0x00000007,0x0004003b, + 0x0000004e,0x000003a1,0x00000007,0x0004003b,0x0000004e,0x000003a3,0x00000007,0x0004003d, + 0x00000029,0x0000037e,0x000000b6,0x0004007c,0x0000002e,0x0000037f,0x0000037e,0x0004006f, + 0x00000053,0x00000380,0x0000037f,0x0003003e,0x00000381,0x00000380,0x0004003d,0x00000006, + 0x00000383,0x000000ba,0x0003003e,0x00000382,0x00000383,0x00060039,0x0000004a,0x00000384, + 0x0000007b,0x00000381,0x00000382,0x0003003e,0x0000037d,0x00000384,0x0004003d,0x00000029, + 0x00000386,0x000000b7,0x0004007c,0x0000002e,0x00000387,0x00000386,0x0004006f,0x00000053, + 0x00000388,0x00000387,0x0003003e,0x00000389,0x00000388,0x0004003d,0x00000006,0x0000038b, + 0x000000ba,0x0003003e,0x0000038a,0x0000038b,0x00060039,0x0000004a,0x0000038c,0x0000007b, + 0x00000389,0x0000038a,0x0003003e,0x00000385,0x0000038c,0x0004003d,0x00000029,0x0000038e, + 0x000000b8,0x0004007c,0x0000002e,0x0000038f,0x0000038e,0x0004006f,0x00000053,0x00000390, + 0x0000038f,0x0003003e,0x00000391,0x00000390,0x0004003d,0x00000006,0x00000393,0x000000ba, + 0x0003003e,0x00000392,0x00000393,0x00060039,0x0000004a,0x00000394,0x0000007b,0x00000391, + 0x00000392,0x0003003e,0x0000038d,0x00000394,0x0004003d,0x00000029,0x00000396,0x000000b9, + 0x0004007c,0x0000002e,0x00000397,0x00000396,0x0004006f,0x00000053,0x00000398,0x00000397, + 0x0003003e,0x00000399,0x00000398,0x0004003d,0x00000006,0x0000039b,0x000000ba,0x0003003e, + 0x0000039a,0x0000039b,0x00060039,0x0000004a,0x0000039c,0x0000007b,0x00000399,0x0000039a, + 0x0003003e,0x00000395,0x0000039c,0x0004003d,0x0000004a,0x0000039e,0x0000037d,0x0003003e, + 0x0000039d,0x0000039e,0x0004003d,0x0000004a,0x000003a0,0x00000385,0x0003003e,0x0000039f, + 0x000003a0,0x0004003d,0x0000004a,0x000003a2,0x0000038d,0x0003003e,0x000003a1,0x000003a2, + 0x0004003d,0x0000004a,0x000003a4,0x00000395,0x0003003e,0x000003a3,0x000003a4,0x00080039, + 0x0000004a,0x000003a5,0x00000087,0x0000039d,0x0000039f,0x000003a1,0x000003a3,0x000200fe, + 0x000003a5,0x00010038,0x00050036,0x0000004a,0x000000bf,0x00000000,0x000000b1,0x00030037, + 0x000000a8,0x000000bd,0x00030037,0x00000007,0x000000be,0x000200f8,0x000000c0,0x0004003b, + 0x000000a8,0x000003b0,0x00000007,0x0004003b,0x000000a8,0x000003b1,0x00000007,0x0004003b, + 0x000000a8,0x000003b2,0x00000007,0x0004003b,0x000000a8,0x000003b3,0x00000007,0x0004003b, + 0x00000007,0x000003b4,0x00000007,0x0004003d,0x00000029,0x000003a8,0x000000bd,0x00050080, + 0x00000029,0x000003a9,0x000003a8,0x00000369,0x0004003d,0x00000029,0x000003aa,0x000000bd, + 0x00050080,0x00000029,0x000003ab,0x000003aa,0x0000036c,0x0004003d,0x00000029,0x000003ac, + 0x000000bd,0x00050080,0x00000029,0x000003ad,0x000003ac,0x0000036f,0x0004003d,0x00000029, + 0x000003ae,0x000000bd,0x00050080,0x00000029,0x000003af,0x000003ae,0x00000372,0x0003003e, + 0x000003b0,0x000003a9,0x0003003e,0x000003b1,0x000003ab,0x0003003e,0x000003b2,0x000003ad, + 0x0003003e,0x000003b3,0x000003af,0x0004003d,0x00000006,0x000003b5,0x000000be,0x0003003e, + 0x000003b4,0x000003b5,0x00090039,0x0000004a,0x000003b6,0x000000bb,0x000003b0,0x000003b1, + 0x000003b2,0x000003b3,0x000003b4,0x000200fe,0x000003b6,0x00010038,0x00050036,0x00000002, + 0x000000c8,0x00000000,0x000000c1,0x00030037,0x00000007,0x000000c2,0x00030037,0x00000007, + 0x000000c3,0x00030037,0x000000a8,0x000000c4,0x00030037,0x00000007,0x000000c5,0x00030037, + 0x00000007,0x000000c6,0x00030037,0x00000007,0x000000c7,0x000200f8,0x000000c9,0x0004003b, + 0x0000003d,0x000003b9,0x00000007,0x0004003b,0x0000003d,0x000003c7,0x00000007,0x0004003b, + 0x000003d4,0x000003d5,0x00000007,0x0004003b,0x000000a8,0x000003d8,0x00000007,0x0004003b, + 0x00000007,0x000003d9,0x00000007,0x0004003b,0x0000003d,0x000003dd,0x00000007,0x0004003b, + 0x0000004e,0x000003df,0x00000007,0x0004003b,0x00000007,0x000003e2,0x00000007,0x0004003b, + 0x00000007,0x000003e3,0x00000007,0x0004003b,0x000000a8,0x00000400,0x00000007,0x0004003b, + 0x00000007,0x00000401,0x00000007,0x0004003b,0x0000003d,0x00000405,0x00000007,0x0004003b, + 0x0000004e,0x00000407,0x00000007,0x0004003b,0x00000007,0x0000040a,0x00000007,0x0004003b, + 0x00000007,0x0000040b,0x00000007,0x0004003b,0x000000a8,0x00000428,0x00000007,0x0004003b, + 0x00000007,0x00000429,0x00000007,0x0004003b,0x0000003d,0x0000042d,0x00000007,0x0004003b, + 0x0000004e,0x0000042f,0x00000007,0x0004003b,0x00000007,0x00000432,0x00000007,0x0004003b, + 0x00000007,0x00000433,0x00000007,0x0004003b,0x000000a8,0x00000453,0x00000007,0x0004003b, + 0x00000007,0x00000454,0x00000007,0x0004003b,0x0000003d,0x00000458,0x00000007,0x0004003b, + 0x0000004e,0x0000045a,0x00000007,0x0004003b,0x00000007,0x0000045d,0x00000007,0x0004003b, + 0x00000007,0x0000045e,0x00000007,0x0004003b,0x0000004e,0x00000466,0x00000007,0x0004003b, + 0x0000004e,0x0000046b,0x00000007,0x0004003b,0x0000004e,0x00000470,0x00000007,0x0004003b, + 0x0000004e,0x00000475,0x00000007,0x0004003b,0x0000003d,0x0000048b,0x00000007,0x0004003b, + 0x0000004e,0x0000048c,0x00000007,0x0004003b,0x00000007,0x0000048f,0x00000007,0x0004003b, + 0x00000007,0x00000490,0x00000007,0x0004003b,0x00000007,0x00000497,0x00000007,0x0004003b, + 0x00000007,0x00000498,0x00000007,0x0004003b,0x0000004e,0x00000499,0x00000007,0x0004003b, + 0x0000003d,0x000004ab,0x00000007,0x0004003b,0x0000004e,0x000004ac,0x00000007,0x0004003b, + 0x00000007,0x000004af,0x00000007,0x0004003b,0x00000007,0x000004b0,0x00000007,0x0004003b, + 0x00000007,0x000004b8,0x00000007,0x0004003b,0x00000007,0x000004b9,0x00000007,0x0004003b, + 0x0000004e,0x000004ba,0x00000007,0x0004003b,0x0000003d,0x000004cb,0x00000007,0x0004003b, + 0x0000004e,0x000004cc,0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b, + 0x00000007,0x000004d0,0x00000007,0x0004003b,0x00000007,0x000004d8,0x00000007,0x0004003b, + 0x00000007,0x000004d9,0x00000007,0x0004003b,0x0000004e,0x000004da,0x00000007,0x0004003b, + 0x0000003d,0x000004ec,0x00000007,0x0004003b,0x0000004e,0x000004ed,0x00000007,0x0004003b, + 0x00000007,0x000004f0,0x00000007,0x0004003b,0x00000007,0x000004f1,0x00000007,0x0004003b, + 0x00000007,0x000004fa,0x00000007,0x0004003b,0x00000007,0x000004fb,0x00000007,0x0004003b, + 0x0000004e,0x000004fc,0x00000007,0x0004003d,0x00000029,0x000003ba,0x000000c4,0x00050050, + 0x00000029,0x000003bc,0x000003bb,0x000003bb,0x00050084,0x00000029,0x000003bd,0x000003ba, + 0x000003bc,0x0004007c,0x0000002e,0x000003be,0x000003bd,0x0004003d,0x00000006,0x000003bf, + 0x000000c2,0x00050084,0x00000006,0x000003c0,0x000003bf,0x0000013e,0x0004007c,0x00000013, + 0x000003c1,0x000003c0,0x0004003d,0x00000006,0x000003c2,0x000000c3,0x00050084,0x00000006, + 0x000003c3,0x000003c2,0x0000013e,0x0004007c,0x00000013,0x000003c4,0x000003c3,0x00050050, + 0x0000002e,0x000003c5,0x000003c1,0x000003c4,0x00050080,0x0000002e,0x000003c6,0x000003be, + 0x000003c5,0x0003003e,0x000003b9,0x000003c6,0x0004003d,0x00000029,0x000003c8,0x000000c4, + 0x00050050,0x00000029,0x000003ca,0x000003c9,0x000003c9,0x00050084,0x00000029,0x000003cb, + 0x000003c8,0x000003ca,0x0004007c,0x0000002e,0x000003cc,0x000003cb,0x0004003d,0x00000006, + 0x000003cd,0x000000c2,0x0004007c,0x00000013,0x000003ce,0x000003cd,0x0004003d,0x00000006, + 0x000003cf,0x000000c3,0x0004007c,0x00000013,0x000003d0,0x000003cf,0x00050050,0x0000002e, + 0x000003d1,0x000003ce,0x000003d0,0x00050080,0x0000002e,0x000003d2,0x000003cc,0x000003d1, + 0x0003003e,0x000003c7,0x000003d2,0x0004003d,0x0000002e,0x000003d6,0x000003b9,0x0004007c, + 0x00000029,0x000003d7,0x000003d6,0x0003003e,0x000003d8,0x000003d7,0x0004003d,0x00000006, + 0x000003da,0x000000c7,0x0003003e,0x000003d9,0x000003da,0x00060039,0x0000004a,0x000003db, + 0x000000bf,0x000003d8,0x000003d9,0x00050041,0x0000004e,0x000003dc,0x000003d5,0x00000124, + 0x0003003e,0x000003dc,0x000003db,0x0004003d,0x0000002e,0x000003de,0x000003c7,0x0003003e, + 0x000003dd,0x000003de,0x00050041,0x0000004e,0x000003e0,0x000003d5,0x00000124,0x0004003d, + 0x0000004a,0x000003e1,0x000003e0,0x0003003e,0x000003df,0x000003e1,0x0003003e,0x000003e2, + 0x00000183,0x0004003d,0x00000006,0x000003e4,0x000000c7,0x0003003e,0x000003e3,0x000003e4, + 0x00080039,0x00000002,0x000003e5,0x0000008e,0x000003dd,0x000003df,0x000003e2,0x000003e3, + 0x0004003d,0x00000029,0x000003e6,0x000000c4,0x00050050,0x00000029,0x000003e7,0x000003bb, + 0x000003bb,0x00050084,0x00000029,0x000003e8,0x000003e6,0x000003e7,0x0004007c,0x0000002e, + 0x000003e9,0x000003e8,0x0004003d,0x00000006,0x000003ea,0x000000c2,0x00050084,0x00000006, + 0x000003eb,0x000003ea,0x0000013e,0x00050080,0x00000006,0x000003ec,0x000003eb,0x000003c9, + 0x0004007c,0x00000013,0x000003ed,0x000003ec,0x0004003d,0x00000006,0x000003ee,0x000000c3, + 0x00050084,0x00000006,0x000003ef,0x000003ee,0x0000013e,0x0004007c,0x00000013,0x000003f0, + 0x000003ef,0x00050050,0x0000002e,0x000003f1,0x000003ed,0x000003f0,0x00050080,0x0000002e, + 0x000003f2,0x000003e9,0x000003f1,0x0003003e,0x000003b9,0x000003f2,0x0004003d,0x00000029, + 0x000003f3,0x000000c4,0x00050050,0x00000029,0x000003f4,0x000003c9,0x000003c9,0x00050084, + 0x00000029,0x000003f5,0x000003f3,0x000003f4,0x0004007c,0x0000002e,0x000003f6,0x000003f5, + 0x0004003d,0x00000006,0x000003f7,0x000000c2,0x00050080,0x00000006,0x000003f8,0x000003f7, + 0x000002e9,0x0004007c,0x00000013,0x000003f9,0x000003f8,0x0004003d,0x00000006,0x000003fa, + 0x000000c3,0x0004007c,0x00000013,0x000003fb,0x000003fa,0x00050050,0x0000002e,0x000003fc, + 0x000003f9,0x000003fb,0x00050080,0x0000002e,0x000003fd,0x000003f6,0x000003fc,0x0003003e, + 0x000003c7,0x000003fd,0x0004003d,0x0000002e,0x000003fe,0x000003b9,0x0004007c,0x00000029, + 0x000003ff,0x000003fe,0x0003003e,0x00000400,0x000003ff,0x0004003d,0x00000006,0x00000402, + 0x000000c7,0x0003003e,0x00000401,0x00000402,0x00060039,0x0000004a,0x00000403,0x000000bf, + 0x00000400,0x00000401,0x00050041,0x0000004e,0x00000404,0x000003d5,0x00000172,0x0003003e, + 0x00000404,0x00000403,0x0004003d,0x0000002e,0x00000406,0x000003c7,0x0003003e,0x00000405, + 0x00000406,0x00050041,0x0000004e,0x00000408,0x000003d5,0x00000172,0x0004003d,0x0000004a, + 0x00000409,0x00000408,0x0003003e,0x00000407,0x00000409,0x0003003e,0x0000040a,0x00000183, + 0x0004003d,0x00000006,0x0000040c,0x000000c7,0x0003003e,0x0000040b,0x0000040c,0x00080039, + 0x00000002,0x0000040d,0x0000008e,0x00000405,0x00000407,0x0000040a,0x0000040b,0x0004003d, + 0x00000029,0x0000040e,0x000000c4,0x00050050,0x00000029,0x0000040f,0x000003bb,0x000003bb, + 0x00050084,0x00000029,0x00000410,0x0000040e,0x0000040f,0x0004007c,0x0000002e,0x00000411, + 0x00000410,0x0004003d,0x00000006,0x00000412,0x000000c2,0x00050084,0x00000006,0x00000413, + 0x00000412,0x0000013e,0x0004007c,0x00000013,0x00000414,0x00000413,0x0004003d,0x00000006, + 0x00000415,0x000000c3,0x00050084,0x00000006,0x00000416,0x00000415,0x0000013e,0x00050080, + 0x00000006,0x00000417,0x00000416,0x000003c9,0x0004007c,0x00000013,0x00000418,0x00000417, + 0x00050050,0x0000002e,0x00000419,0x00000414,0x00000418,0x00050080,0x0000002e,0x0000041a, + 0x00000411,0x00000419,0x0003003e,0x000003b9,0x0000041a,0x0004003d,0x00000029,0x0000041b, + 0x000000c4,0x00050050,0x00000029,0x0000041c,0x000003c9,0x000003c9,0x00050084,0x00000029, + 0x0000041d,0x0000041b,0x0000041c,0x0004007c,0x0000002e,0x0000041e,0x0000041d,0x0004003d, + 0x00000006,0x0000041f,0x000000c2,0x0004007c,0x00000013,0x00000420,0x0000041f,0x0004003d, + 0x00000006,0x00000421,0x000000c3,0x00050080,0x00000006,0x00000422,0x00000421,0x000002e9, + 0x0004007c,0x00000013,0x00000423,0x00000422,0x00050050,0x0000002e,0x00000424,0x00000420, + 0x00000423,0x00050080,0x0000002e,0x00000425,0x0000041e,0x00000424,0x0003003e,0x000003c7, + 0x00000425,0x0004003d,0x0000002e,0x00000426,0x000003b9,0x0004007c,0x00000029,0x00000427, + 0x00000426,0x0003003e,0x00000428,0x00000427,0x0004003d,0x00000006,0x0000042a,0x000000c7, + 0x0003003e,0x00000429,0x0000042a,0x00060039,0x0000004a,0x0000042b,0x000000bf,0x00000428, + 0x00000429,0x00050041,0x0000004e,0x0000042c,0x000003d5,0x00000177,0x0003003e,0x0000042c, + 0x0000042b,0x0004003d,0x0000002e,0x0000042e,0x000003c7,0x0003003e,0x0000042d,0x0000042e, + 0x00050041,0x0000004e,0x00000430,0x000003d5,0x00000177,0x0004003d,0x0000004a,0x00000431, + 0x00000430,0x0003003e,0x0000042f,0x00000431,0x0003003e,0x00000432,0x00000183,0x0004003d, + 0x00000006,0x00000434,0x000000c7,0x0003003e,0x00000433,0x00000434,0x00080039,0x00000002, + 0x00000435,0x0000008e,0x0000042d,0x0000042f,0x00000432,0x00000433,0x0004003d,0x00000029, + 0x00000436,0x000000c4,0x00050050,0x00000029,0x00000437,0x000003bb,0x000003bb,0x00050084, + 0x00000029,0x00000438,0x00000436,0x00000437,0x0004007c,0x0000002e,0x00000439,0x00000438, + 0x0004003d,0x00000006,0x0000043a,0x000000c2,0x00050084,0x00000006,0x0000043b,0x0000043a, + 0x0000013e,0x00050080,0x00000006,0x0000043c,0x0000043b,0x000003c9,0x0004007c,0x00000013, + 0x0000043d,0x0000043c,0x0004003d,0x00000006,0x0000043e,0x000000c3,0x00050084,0x00000006, + 0x0000043f,0x0000043e,0x0000013e,0x00050080,0x00000006,0x00000440,0x0000043f,0x000003c9, + 0x0004007c,0x00000013,0x00000441,0x00000440,0x00050050,0x0000002e,0x00000442,0x0000043d, + 0x00000441,0x00050080,0x0000002e,0x00000443,0x00000439,0x00000442,0x0003003e,0x000003b9, + 0x00000443,0x0004003d,0x00000029,0x00000444,0x000000c4,0x00050050,0x00000029,0x00000445, + 0x000003c9,0x000003c9,0x00050084,0x00000029,0x00000446,0x00000444,0x00000445,0x0004007c, + 0x0000002e,0x00000447,0x00000446,0x0004003d,0x00000006,0x00000448,0x000000c2,0x00050080, + 0x00000006,0x00000449,0x00000448,0x000002e9,0x0004007c,0x00000013,0x0000044a,0x00000449, + 0x0004003d,0x00000006,0x0000044b,0x000000c3,0x00050080,0x00000006,0x0000044c,0x0000044b, + 0x000002e9,0x0004007c,0x00000013,0x0000044d,0x0000044c,0x00050050,0x0000002e,0x0000044e, + 0x0000044a,0x0000044d,0x00050080,0x0000002e,0x0000044f,0x00000447,0x0000044e,0x0003003e, + 0x000003c7,0x0000044f,0x0004003d,0x0000002e,0x00000451,0x000003b9,0x0004007c,0x00000029, + 0x00000452,0x00000451,0x0003003e,0x00000453,0x00000452,0x0004003d,0x00000006,0x00000455, + 0x000000c7,0x0003003e,0x00000454,0x00000455,0x00060039,0x0000004a,0x00000456,0x000000bf, + 0x00000453,0x00000454,0x00050041,0x0000004e,0x00000457,0x000003d5,0x00000450,0x0003003e, + 0x00000457,0x00000456,0x0004003d,0x0000002e,0x00000459,0x000003c7,0x0003003e,0x00000458, + 0x00000459,0x00050041,0x0000004e,0x0000045b,0x000003d5,0x00000450,0x0004003d,0x0000004a, + 0x0000045c,0x0000045b,0x0003003e,0x0000045a,0x0000045c,0x0003003e,0x0000045d,0x00000183, + 0x0004003d,0x00000006,0x0000045f,0x000000c7,0x0003003e,0x0000045e,0x0000045f,0x00080039, + 0x00000002,0x00000460,0x0000008e,0x00000458,0x0000045a,0x0000045d,0x0000045e,0x0004003d, + 0x00000006,0x00000461,0x000000c6,0x000500b2,0x0000009d,0x00000462,0x00000461,0x00000145, + 0x000300f7,0x00000464,0x00000000,0x000400fa,0x00000462,0x00000463,0x00000464,0x000200f8, + 0x00000463,0x000100fd,0x000200f8,0x00000464,0x00050041,0x0000004e,0x00000467,0x000003d5, + 0x00000124,0x0004003d,0x0000004a,0x00000468,0x00000467,0x0003003e,0x00000466,0x00000468, + 0x00050039,0x0000004a,0x00000469,0x000000a6,0x00000466,0x00050041,0x0000004e,0x0000046a, + 0x000003d5,0x00000124,0x0003003e,0x0000046a,0x00000469,0x00050041,0x0000004e,0x0000046c, + 0x000003d5,0x00000172,0x0004003d,0x0000004a,0x0000046d,0x0000046c,0x0003003e,0x0000046b, + 0x0000046d,0x00050039,0x0000004a,0x0000046e,0x000000a6,0x0000046b,0x00050041,0x0000004e, + 0x0000046f,0x000003d5,0x00000172,0x0003003e,0x0000046f,0x0000046e,0x00050041,0x0000004e, + 0x00000471,0x000003d5,0x00000177,0x0004003d,0x0000004a,0x00000472,0x00000471,0x0003003e, + 0x00000470,0x00000472,0x00050039,0x0000004a,0x00000473,0x000000a6,0x00000470,0x00050041, + 0x0000004e,0x00000474,0x000003d5,0x00000177,0x0003003e,0x00000474,0x00000473,0x00050041, + 0x0000004e,0x00000476,0x000003d5,0x00000450,0x0004003d,0x0000004a,0x00000477,0x00000476, + 0x0003003e,0x00000475,0x00000477,0x00050039,0x0000004a,0x00000478,0x000000a6,0x00000475, + 0x00050041,0x0000004e,0x00000479,0x000003d5,0x00000450,0x0003003e,0x00000479,0x00000478, + 0x0004003d,0x00000006,0x0000047a,0x000000c5,0x00050089,0x00000006,0x0000047b,0x0000047a, + 0x000001cb,0x000500aa,0x0000009d,0x0000047c,0x0000047b,0x00000183,0x000300f7,0x0000047e, + 0x00000000,0x000400fa,0x0000047c,0x0000047d,0x0000047e,0x000200f8,0x0000047d,0x0004003d, + 0x00000029,0x0000047f,0x000000c4,0x00050050,0x00000029,0x00000480,0x000002e9,0x000002e9, + 0x00050084,0x00000029,0x00000481,0x0000047f,0x00000480,0x0004007c,0x0000002e,0x00000482, + 0x00000481,0x0004003d,0x00000006,0x00000483,0x000000c2,0x00050086,0x00000006,0x00000484, + 0x00000483,0x0000013e,0x0004007c,0x00000013,0x00000485,0x00000484,0x0004003d,0x00000006, + 0x00000486,0x000000c3,0x00050086,0x00000006,0x00000487,0x00000486,0x0000013e,0x0004007c, + 0x00000013,0x00000488,0x00000487,0x00050050,0x0000002e,0x00000489,0x00000485,0x00000488, + 0x00050080,0x0000002e,0x0000048a,0x00000482,0x00000489,0x0003003e,0x0000048b,0x0000048a, + 0x00050041,0x0000004e,0x0000048d,0x000003d5,0x00000124,0x0004003d,0x0000004a,0x0000048e, + 0x0000048d,0x0003003e,0x0000048c,0x0000048e,0x0003003e,0x0000048f,0x00000145,0x0004003d, + 0x00000006,0x00000491,0x000000c7,0x0003003e,0x00000490,0x00000491,0x00080039,0x00000002, + 0x00000492,0x0000008e,0x0000048b,0x0000048c,0x0000048f,0x00000490,0x0004003d,0x00000006, + 0x00000493,0x000000c2,0x00050086,0x00000006,0x00000494,0x00000493,0x0000013e,0x0004003d, + 0x00000006,0x00000495,0x000000c3,0x00050086,0x00000006,0x00000496,0x00000495,0x0000013e, + 0x0003003e,0x00000497,0x00000494,0x0003003e,0x00000498,0x00000496,0x00050041,0x0000004e, + 0x0000049a,0x000003d5,0x00000124,0x0004003d,0x0000004a,0x0000049b,0x0000049a,0x0003003e, + 0x00000499,0x0000049b,0x00070039,0x00000002,0x0000049c,0x00000099,0x00000497,0x00000498, + 0x00000499,0x0004003d,0x00000029,0x0000049d,0x000000c4,0x00050050,0x00000029,0x0000049e, + 0x000002e9,0x000002e9,0x00050084,0x00000029,0x0000049f,0x0000049d,0x0000049e,0x0004007c, + 0x0000002e,0x000004a0,0x0000049f,0x0004003d,0x00000006,0x000004a1,0x000000c2,0x00050086, + 0x00000006,0x000004a2,0x000004a1,0x0000013e,0x00050080,0x00000006,0x000004a4,0x000004a2, + 0x000004a3,0x0004007c,0x00000013,0x000004a5,0x000004a4,0x0004003d,0x00000006,0x000004a6, + 0x000000c3,0x00050086,0x00000006,0x000004a7,0x000004a6,0x0000013e,0x0004007c,0x00000013, + 0x000004a8,0x000004a7,0x00050050,0x0000002e,0x000004a9,0x000004a5,0x000004a8,0x00050080, + 0x0000002e,0x000004aa,0x000004a0,0x000004a9,0x0003003e,0x000004ab,0x000004aa,0x00050041, + 0x0000004e,0x000004ad,0x000003d5,0x00000172,0x0004003d,0x0000004a,0x000004ae,0x000004ad, + 0x0003003e,0x000004ac,0x000004ae,0x0003003e,0x000004af,0x00000145,0x0004003d,0x00000006, + 0x000004b1,0x000000c7,0x0003003e,0x000004b0,0x000004b1,0x00080039,0x00000002,0x000004b2, + 0x0000008e,0x000004ab,0x000004ac,0x000004af,0x000004b0,0x0004003d,0x00000006,0x000004b3, + 0x000000c2,0x00050086,0x00000006,0x000004b4,0x000004b3,0x0000013e,0x00050080,0x00000006, + 0x000004b5,0x000004b4,0x000004a3,0x0004003d,0x00000006,0x000004b6,0x000000c3,0x00050086, + 0x00000006,0x000004b7,0x000004b6,0x0000013e,0x0003003e,0x000004b8,0x000004b5,0x0003003e, + 0x000004b9,0x000004b7,0x00050041,0x0000004e,0x000004bb,0x000003d5,0x00000172,0x0004003d, + 0x0000004a,0x000004bc,0x000004bb,0x0003003e,0x000004ba,0x000004bc,0x00070039,0x00000002, + 0x000004bd,0x00000099,0x000004b8,0x000004b9,0x000004ba,0x0004003d,0x00000029,0x000004be, + 0x000000c4,0x00050050,0x00000029,0x000004bf,0x000002e9,0x000002e9,0x00050084,0x00000029, + 0x000004c0,0x000004be,0x000004bf,0x0004007c,0x0000002e,0x000004c1,0x000004c0,0x0004003d, + 0x00000006,0x000004c2,0x000000c2,0x00050086,0x00000006,0x000004c3,0x000004c2,0x0000013e, + 0x0004007c,0x00000013,0x000004c4,0x000004c3,0x0004003d,0x00000006,0x000004c5,0x000000c3, + 0x00050086,0x00000006,0x000004c6,0x000004c5,0x0000013e,0x00050080,0x00000006,0x000004c7, + 0x000004c6,0x000004a3,0x0004007c,0x00000013,0x000004c8,0x000004c7,0x00050050,0x0000002e, + 0x000004c9,0x000004c4,0x000004c8,0x00050080,0x0000002e,0x000004ca,0x000004c1,0x000004c9, + 0x0003003e,0x000004cb,0x000004ca,0x00050041,0x0000004e,0x000004cd,0x000003d5,0x00000177, + 0x0004003d,0x0000004a,0x000004ce,0x000004cd,0x0003003e,0x000004cc,0x000004ce,0x0003003e, + 0x000004cf,0x00000145,0x0004003d,0x00000006,0x000004d1,0x000000c7,0x0003003e,0x000004d0, + 0x000004d1,0x00080039,0x00000002,0x000004d2,0x0000008e,0x000004cb,0x000004cc,0x000004cf, + 0x000004d0,0x0004003d,0x00000006,0x000004d3,0x000000c2,0x00050086,0x00000006,0x000004d4, + 0x000004d3,0x0000013e,0x0004003d,0x00000006,0x000004d5,0x000000c3,0x00050086,0x00000006, + 0x000004d6,0x000004d5,0x0000013e,0x00050080,0x00000006,0x000004d7,0x000004d6,0x000004a3, + 0x0003003e,0x000004d8,0x000004d4,0x0003003e,0x000004d9,0x000004d7,0x00050041,0x0000004e, + 0x000004db,0x000003d5,0x00000177,0x0004003d,0x0000004a,0x000004dc,0x000004db,0x0003003e, + 0x000004da,0x000004dc,0x00070039,0x00000002,0x000004dd,0x00000099,0x000004d8,0x000004d9, + 0x000004da,0x0004003d,0x00000029,0x000004de,0x000000c4,0x00050050,0x00000029,0x000004df, + 0x000002e9,0x000002e9,0x00050084,0x00000029,0x000004e0,0x000004de,0x000004df,0x0004007c, + 0x0000002e,0x000004e1,0x000004e0,0x0004003d,0x00000006,0x000004e2,0x000000c2,0x00050086, + 0x00000006,0x000004e3,0x000004e2,0x0000013e,0x00050080,0x00000006,0x000004e4,0x000004e3, + 0x000004a3,0x0004007c,0x00000013,0x000004e5,0x000004e4,0x0004003d,0x00000006,0x000004e6, + 0x000000c3,0x00050086,0x00000006,0x000004e7,0x000004e6,0x0000013e,0x00050080,0x00000006, + 0x000004e8,0x000004e7,0x000004a3,0x0004007c,0x00000013,0x000004e9,0x000004e8,0x00050050, + 0x0000002e,0x000004ea,0x000004e5,0x000004e9,0x00050080,0x0000002e,0x000004eb,0x000004e1, + 0x000004ea,0x0003003e,0x000004ec,0x000004eb,0x00050041,0x0000004e,0x000004ee,0x000003d5, + 0x00000450,0x0004003d,0x0000004a,0x000004ef,0x000004ee,0x0003003e,0x000004ed,0x000004ef, + 0x0003003e,0x000004f0,0x00000145,0x0004003d,0x00000006,0x000004f2,0x000000c7,0x0003003e, + 0x000004f1,0x000004f2,0x00080039,0x00000002,0x000004f3,0x0000008e,0x000004ec,0x000004ed, + 0x000004f0,0x000004f1,0x0004003d,0x00000006,0x000004f4,0x000000c2,0x00050086,0x00000006, + 0x000004f5,0x000004f4,0x0000013e,0x00050080,0x00000006,0x000004f6,0x000004f5,0x000004a3, + 0x0004003d,0x00000006,0x000004f7,0x000000c3,0x00050086,0x00000006,0x000004f8,0x000004f7, + 0x0000013e,0x00050080,0x00000006,0x000004f9,0x000004f8,0x000004a3,0x0003003e,0x000004fa, + 0x000004f6,0x0003003e,0x000004fb,0x000004f9,0x00050041,0x0000004e,0x000004fd,0x000003d5, + 0x00000450,0x0004003d,0x0000004a,0x000004fe,0x000004fd,0x0003003e,0x000004fc,0x000004fe, + 0x00070039,0x00000002,0x000004ff,0x00000099,0x000004fa,0x000004fb,0x000004fc,0x000200f9, + 0x0000047e,0x000200f8,0x0000047e,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d0, + 0x00000000,0x000000c1,0x00030037,0x00000007,0x000000ca,0x00030037,0x00000007,0x000000cb, + 0x00030037,0x000000a8,0x000000cc,0x00030037,0x00000007,0x000000cd,0x00030037,0x00000007, + 0x000000ce,0x00030037,0x00000007,0x000000cf,0x000200f8,0x000000d1,0x0004003b,0x00000007, + 0x00000500,0x00000007,0x0004003b,0x00000007,0x00000502,0x00000007,0x0004003b,0x000000a8, + 0x00000504,0x00000007,0x0004003b,0x00000007,0x00000506,0x00000007,0x0004003b,0x00000007, + 0x00000508,0x00000007,0x0004003b,0x00000007,0x0000050a,0x00000007,0x0004003d,0x00000006, + 0x00000501,0x000000ca,0x0003003e,0x00000500,0x00000501,0x0004003d,0x00000006,0x00000503, + 0x000000cb,0x0003003e,0x00000502,0x00000503,0x0004003d,0x00000029,0x00000505,0x000000cc, + 0x0003003e,0x00000504,0x00000505,0x0004003d,0x00000006,0x00000507,0x000000cd,0x0003003e, + 0x00000506,0x00000507,0x0004003d,0x00000006,0x00000509,0x000000ce,0x0003003e,0x00000508, + 0x00000509,0x0004003d,0x00000006,0x0000050b,0x000000cf,0x0003003e,0x0000050a,0x0000050b, + 0x000a0039,0x00000002,0x0000050c,0x000000c8,0x00000500,0x00000502,0x00000504,0x00000506, + 0x00000508,0x0000050a,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d8,0x00000000, + 0x000000c1,0x00030037,0x00000007,0x000000d2,0x00030037,0x00000007,0x000000d3,0x00030037, + 0x000000a8,0x000000d4,0x00030037,0x00000007,0x000000d5,0x00030037,0x00000007,0x000000d6, + 0x00030037,0x00000007,0x000000d7,0x000200f8,0x000000d9,0x0004003b,0x0000004e,0x0000050d, + 0x00000007,0x0004003b,0x00000007,0x0000050e,0x00000007,0x0004003b,0x00000007,0x00000510, + 0x00000007,0x0004003b,0x0000004e,0x00000513,0x00000007,0x0004003b,0x0000003d,0x00000527, + 0x00000007,0x0004003b,0x0000004e,0x00000528,0x00000007,0x0004003b,0x00000007,0x0000052a, + 0x00000007,0x0004003b,0x00000007,0x0000052c,0x00000007,0x0004003b,0x00000007,0x00000534, + 0x00000007,0x0004003b,0x00000007,0x00000535,0x00000007,0x0004003b,0x0000004e,0x00000537, + 0x00000007,0x0004003d,0x00000006,0x0000050f,0x000000d2,0x0003003e,0x0000050e,0x0000050f, + 0x0004003d,0x00000006,0x00000511,0x000000d3,0x0003003e,0x00000510,0x00000511,0x00060039, + 0x0000004a,0x00000512,0x00000093,0x0000050e,0x00000510,0x0003003e,0x0000050d,0x00000512, + 0x0004003d,0x0000004a,0x00000514,0x0000050d,0x0003003e,0x00000513,0x00000514,0x00050039, + 0x0000004a,0x00000515,0x000000a6,0x00000513,0x0003003e,0x0000050d,0x00000515,0x0004003d, + 0x00000006,0x00000516,0x000000d5,0x00050089,0x00000006,0x00000517,0x00000516,0x000001cb, + 0x000500aa,0x0000009d,0x00000518,0x00000517,0x00000183,0x000300f7,0x0000051a,0x00000000, + 0x000400fa,0x00000518,0x00000519,0x0000051a,0x000200f8,0x00000519,0x0004003d,0x00000029, + 0x0000051b,0x000000d4,0x00050050,0x00000029,0x0000051c,0x000004a3,0x000004a3,0x00050084, + 0x00000029,0x0000051d,0x0000051b,0x0000051c,0x0004007c,0x0000002e,0x0000051e,0x0000051d, + 0x0004003d,0x00000006,0x0000051f,0x000000d2,0x00050086,0x00000006,0x00000520,0x0000051f, + 0x0000013e,0x0004007c,0x00000013,0x00000521,0x00000520,0x0004003d,0x00000006,0x00000522, + 0x000000d3,0x00050086,0x00000006,0x00000523,0x00000522,0x0000013e,0x0004007c,0x00000013, + 0x00000524,0x00000523,0x00050050,0x0000002e,0x00000525,0x00000521,0x00000524,0x00050080, + 0x0000002e,0x00000526,0x0000051e,0x00000525,0x0003003e,0x00000527,0x00000526,0x0004003d, + 0x0000004a,0x00000529,0x0000050d,0x0003003e,0x00000528,0x00000529,0x0004003d,0x00000006, + 0x0000052b,0x000000d6,0x0003003e,0x0000052a,0x0000052b,0x0004003d,0x00000006,0x0000052d, + 0x000000d7,0x0003003e,0x0000052c,0x0000052d,0x00080039,0x00000002,0x0000052e,0x0000008e, + 0x00000527,0x00000528,0x0000052a,0x0000052c,0x0004003d,0x00000006,0x0000052f,0x000000d2, + 0x0004003d,0x00000006,0x00000530,0x000000d3,0x00050086,0x00000006,0x00000531,0x00000530, + 0x0000013e,0x00050089,0x00000006,0x00000532,0x00000531,0x0000013e,0x00050080,0x00000006, + 0x00000533,0x0000052f,0x00000532,0x0003003e,0x00000534,0x00000533,0x0004003d,0x00000006, + 0x00000536,0x000000d3,0x0003003e,0x00000535,0x00000536,0x0004003d,0x0000004a,0x00000538, + 0x0000050d,0x0003003e,0x00000537,0x00000538,0x00070039,0x00000002,0x00000539,0x00000099, + 0x00000534,0x00000535,0x00000537,0x000200f9,0x0000051a,0x000200f8,0x0000051a,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000e0,0x00000000,0x000000c1,0x00030037,0x00000007, + 0x000000da,0x00030037,0x00000007,0x000000db,0x00030037,0x000000a8,0x000000dc,0x00030037, + 0x00000007,0x000000dd,0x00030037,0x00000007,0x000000de,0x00030037,0x00000007,0x000000df, + 0x000200f8,0x000000e1,0x0004003b,0x0000004e,0x0000053e,0x00000007,0x0004003b,0x00000007, + 0x00000546,0x00000007,0x0004003b,0x00000007,0x00000547,0x00000007,0x0004003b,0x0000004e, + 0x00000549,0x00000007,0x0004003b,0x0000003d,0x0000055d,0x00000007,0x0004003b,0x0000004e, + 0x0000055e,0x00000007,0x0004003b,0x00000007,0x00000560,0x00000007,0x0004003b,0x00000007, + 0x00000562,0x00000007,0x0004003b,0x00000007,0x0000056c,0x00000007,0x0004003b,0x00000007, + 0x0000056d,0x00000007,0x0004003b,0x0000004e,0x0000056e,0x00000007,0x0004003d,0x00000006, + 0x0000053a,0x000000dd,0x000500b0,0x0000009d,0x0000053b,0x0000053a,0x000003bb,0x000300f7, + 0x0000053d,0x00000000,0x000400fa,0x0000053b,0x0000053c,0x0000053d,0x000200f8,0x0000053c, + 0x0004003d,0x00000006,0x0000053f,0x000000da,0x00050084,0x00000006,0x00000540,0x0000053f, + 0x0000013e,0x0004003d,0x00000006,0x00000541,0x000000db,0x00050089,0x00000006,0x00000542, + 0x00000541,0x0000013e,0x00050080,0x00000006,0x00000543,0x00000540,0x00000542,0x0004003d, + 0x00000006,0x00000544,0x000000db,0x00050084,0x00000006,0x00000545,0x00000544,0x0000013e, + 0x0003003e,0x00000546,0x00000543,0x0003003e,0x00000547,0x00000545,0x00060039,0x0000004a, + 0x00000548,0x00000093,0x00000546,0x00000547,0x0003003e,0x0000053e,0x00000548,0x0004003d, + 0x0000004a,0x0000054a,0x0000053e,0x0003003e,0x00000549,0x0000054a,0x00050039,0x0000004a, + 0x0000054b,0x000000a6,0x00000549,0x0003003e,0x0000053e,0x0000054b,0x0004003d,0x00000006, + 0x0000054c,0x000000dd,0x00050089,0x00000006,0x0000054d,0x0000054c,0x000001cb,0x000500aa, + 0x0000009d,0x0000054e,0x0000054d,0x00000183,0x000300f7,0x00000550,0x00000000,0x000400fa, + 0x0000054e,0x0000054f,0x00000550,0x000200f8,0x0000054f,0x0004003d,0x00000029,0x00000551, + 0x000000dc,0x00050050,0x00000029,0x00000552,0x000001cb,0x000001cb,0x00050084,0x00000029, + 0x00000553,0x00000551,0x00000552,0x0004007c,0x0000002e,0x00000554,0x00000553,0x0004003d, + 0x00000006,0x00000555,0x000000da,0x00050086,0x00000006,0x00000556,0x00000555,0x0000013e, + 0x0004007c,0x00000013,0x00000557,0x00000556,0x0004003d,0x00000006,0x00000558,0x000000db, + 0x00050086,0x00000006,0x00000559,0x00000558,0x0000013e,0x0004007c,0x00000013,0x0000055a, + 0x00000559,0x00050050,0x0000002e,0x0000055b,0x00000557,0x0000055a,0x00050080,0x0000002e, + 0x0000055c,0x00000554,0x0000055b,0x0003003e,0x0000055d,0x0000055c,0x0004003d,0x0000004a, + 0x0000055f,0x0000053e,0x0003003e,0x0000055e,0x0000055f,0x0004003d,0x00000006,0x00000561, + 0x000000de,0x0003003e,0x00000560,0x00000561,0x0004003d,0x00000006,0x00000563,0x000000df, + 0x0003003e,0x00000562,0x00000563,0x00080039,0x00000002,0x00000564,0x0000008e,0x0000055d, + 0x0000055e,0x00000560,0x00000562,0x0004003d,0x00000006,0x00000565,0x000000da,0x00050084, + 0x00000006,0x00000566,0x00000565,0x0000013e,0x0004003d,0x00000006,0x00000567,0x000000db, + 0x00050086,0x00000006,0x00000568,0x00000567,0x0000013e,0x00050080,0x00000006,0x00000569, + 0x00000566,0x00000568,0x0004003d,0x00000006,0x0000056a,0x000000db,0x00050084,0x00000006, + 0x0000056b,0x0000056a,0x0000013e,0x0003003e,0x0000056c,0x00000569,0x0003003e,0x0000056d, + 0x0000056b,0x0004003d,0x0000004a,0x0000056f,0x0000053e,0x0003003e,0x0000056e,0x0000056f, + 0x00070039,0x00000002,0x00000570,0x00000099,0x0000056c,0x0000056d,0x0000056e,0x000200f9, + 0x00000550,0x000200f8,0x00000550,0x000200f9,0x0000053d,0x000200f8,0x0000053d,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000e8,0x00000000,0x000000c1,0x00030037,0x00000007, + 0x000000e2,0x00030037,0x00000007,0x000000e3,0x00030037,0x000000a8,0x000000e4,0x00030037, + 0x00000007,0x000000e5,0x00030037,0x00000007,0x000000e6,0x00030037,0x00000007,0x000000e7, + 0x000200f8,0x000000e9,0x0004003b,0x0000004e,0x00000575,0x00000007,0x0004003b,0x00000007, + 0x0000057c,0x00000007,0x0004003b,0x00000007,0x0000057d,0x00000007,0x0004003b,0x0000004e, + 0x0000057f,0x00000007,0x0004003b,0x0000003d,0x00000593,0x00000007,0x0004003b,0x0000004e, + 0x00000594,0x00000007,0x0004003b,0x00000007,0x00000596,0x00000007,0x0004003b,0x00000007, + 0x00000598,0x00000007,0x0004003b,0x00000007,0x0000059f,0x00000007,0x0004003b,0x00000007, + 0x000005a0,0x00000007,0x0004003b,0x0000004e,0x000005a1,0x00000007,0x0004003d,0x00000006, + 0x00000571,0x000000e5,0x000500b0,0x0000009d,0x00000572,0x00000571,0x000002e9,0x000300f7, + 0x00000574,0x00000000,0x000400fa,0x00000572,0x00000573,0x00000574,0x000200f8,0x00000573, + 0x0004003d,0x00000006,0x00000576,0x000000e2,0x00050084,0x00000006,0x00000577,0x00000576, + 0x000001cb,0x0004003d,0x00000006,0x00000578,0x000000e3,0x00050080,0x00000006,0x00000579, + 0x00000577,0x00000578,0x0004003d,0x00000006,0x0000057a,0x000000e3,0x00050084,0x00000006, + 0x0000057b,0x0000057a,0x000001cb,0x0003003e,0x0000057c,0x00000579,0x0003003e,0x0000057d, + 0x0000057b,0x00060039,0x0000004a,0x0000057e,0x00000093,0x0000057c,0x0000057d,0x0003003e, + 0x00000575,0x0000057e,0x0004003d,0x0000004a,0x00000580,0x00000575,0x0003003e,0x0000057f, + 0x00000580,0x00050039,0x0000004a,0x00000581,0x000000a6,0x0000057f,0x0003003e,0x00000575, + 0x00000581,0x0004003d,0x00000006,0x00000582,0x000000e5,0x00050089,0x00000006,0x00000583, + 0x00000582,0x000001cb,0x000500aa,0x0000009d,0x00000584,0x00000583,0x00000183,0x000300f7, + 0x00000586,0x00000000,0x000400fa,0x00000584,0x00000585,0x00000586,0x000200f8,0x00000585, + 0x0004003d,0x00000029,0x00000587,0x000000e4,0x00050050,0x00000029,0x00000588,0x0000013e, + 0x0000013e,0x00050084,0x00000029,0x00000589,0x00000587,0x00000588,0x0004007c,0x0000002e, + 0x0000058a,0x00000589,0x0004003d,0x00000006,0x0000058b,0x000000e2,0x00050086,0x00000006, + 0x0000058c,0x0000058b,0x0000013e,0x0004007c,0x00000013,0x0000058d,0x0000058c,0x0004003d, + 0x00000006,0x0000058e,0x000000e3,0x00050086,0x00000006,0x0000058f,0x0000058e,0x0000013e, + 0x0004007c,0x00000013,0x00000590,0x0000058f,0x00050050,0x0000002e,0x00000591,0x0000058d, + 0x00000590,0x00050080,0x0000002e,0x00000592,0x0000058a,0x00000591,0x0003003e,0x00000593, + 0x00000592,0x0004003d,0x0000004a,0x00000595,0x00000575,0x0003003e,0x00000594,0x00000595, + 0x0004003d,0x00000006,0x00000597,0x000000e6,0x0003003e,0x00000596,0x00000597,0x0004003d, + 0x00000006,0x00000599,0x000000e7,0x0003003e,0x00000598,0x00000599,0x00080039,0x00000002, + 0x0000059a,0x0000008e,0x00000593,0x00000594,0x00000596,0x00000598,0x0004003d,0x00000006, + 0x0000059b,0x000000e2,0x00050086,0x00000006,0x0000059c,0x0000059b,0x0000013e,0x0004003d, + 0x00000006,0x0000059d,0x000000e3,0x00050080,0x00000006,0x0000059e,0x0000059c,0x0000059d, + 0x0003003e,0x0000059f,0x0000059e,0x0003003e,0x000005a0,0x00000183,0x0004003d,0x0000004a, + 0x000005a2,0x00000575,0x0003003e,0x000005a1,0x000005a2,0x00070039,0x00000002,0x000005a3, + 0x00000099,0x0000059f,0x000005a0,0x000005a1,0x000200f9,0x00000586,0x000200f8,0x00000586, + 0x000200f9,0x00000574,0x000200f8,0x00000574,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000ef,0x00000000,0x000000ea,0x00030037,0x000000a8,0x000000eb,0x00030037,0x00000007, + 0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007,0x000000ee,0x000200f8, + 0x000000f0,0x0004003b,0x0000004e,0x000005a8,0x00000007,0x0004003b,0x00000007,0x000005a9, + 0x00000007,0x0004003b,0x00000007,0x000005ab,0x00000007,0x0004003b,0x0000004e,0x000005ad, + 0x00000007,0x0004003b,0x0000003d,0x000005b7,0x00000007,0x0004003b,0x0000004e,0x000005b8, + 0x00000007,0x0004003b,0x00000007,0x000005ba,0x00000007,0x0004003b,0x00000007,0x000005bc, + 0x00000007,0x0004003d,0x00000006,0x000005a4,0x000000ec,0x000500b0,0x0000009d,0x000005a5, + 0x000005a4,0x000001cb,0x000300f7,0x000005a7,0x00000000,0x000400fa,0x000005a5,0x000005a6, + 0x000005a7,0x000200f8,0x000005a6,0x0004003d,0x00000006,0x000005aa,0x000000ec,0x0003003e, + 0x000005a9,0x000005aa,0x0003003e,0x000005ab,0x00000183,0x00060039,0x0000004a,0x000005ac, + 0x00000093,0x000005a9,0x000005ab,0x0003003e,0x000005a8,0x000005ac,0x0004003d,0x0000004a, + 0x000005ae,0x000005a8,0x0003003e,0x000005ad,0x000005ae,0x00050039,0x0000004a,0x000005af, + 0x000000a6,0x000005ad,0x0003003e,0x000005a8,0x000005af,0x0004003d,0x00000006,0x000005b0, + 0x000000ec,0x00050089,0x00000006,0x000005b1,0x000005b0,0x000001cb,0x000500aa,0x0000009d, + 0x000005b2,0x000005b1,0x00000183,0x000300f7,0x000005b4,0x00000000,0x000400fa,0x000005b2, + 0x000005b3,0x000005b4,0x000200f8,0x000005b3,0x0004003d,0x00000029,0x000005b5,0x000000eb, + 0x0004007c,0x0000002e,0x000005b6,0x000005b5,0x0003003e,0x000005b7,0x000005b6,0x0004003d, + 0x0000004a,0x000005b9,0x000005a8,0x0003003e,0x000005b8,0x000005b9,0x0004003d,0x00000006, + 0x000005bb,0x000000ed,0x0003003e,0x000005ba,0x000005bb,0x0004003d,0x00000006,0x000005bd, + 0x000000ee,0x0003003e,0x000005bc,0x000005bd,0x00080039,0x00000002,0x000005be,0x0000008e, + 0x000005b7,0x000005b8,0x000005ba,0x000005bc,0x000200f9,0x000005b4,0x000200f8,0x000005b4, + 0x000200f9,0x000005a7,0x000200f8,0x000005a7,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000f6,0x00000000,0x000000f1,0x00030037,0x00000007,0x000000f2,0x00030037,0x00000007, + 0x000000f3,0x00030037,0x00000007,0x000000f4,0x00030037,0x00000007,0x000000f5,0x000200f8, + 0x000000f7,0x0004003b,0x0000003d,0x000005bf,0x00000007,0x0004003b,0x0000003d,0x000005c9, + 0x00000007,0x0004003b,0x0000004e,0x000005d3,0x00000007,0x0004003b,0x000000a8,0x000005d6, + 0x00000007,0x0004003b,0x00000007,0x000005d7,0x00000007,0x0004003b,0x0000003d,0x000005db, + 0x00000007,0x0004003b,0x0000004e,0x000005dd,0x00000007,0x0004003b,0x00000007,0x000005df, + 0x00000007,0x0004003b,0x00000007,0x000005e0,0x00000007,0x0004003b,0x0000004e,0x000005f5, + 0x00000007,0x0004003b,0x000000a8,0x000005f8,0x00000007,0x0004003b,0x00000007,0x000005f9, + 0x00000007,0x0004003b,0x0000003d,0x000005fc,0x00000007,0x0004003b,0x0000004e,0x000005fe, + 0x00000007,0x0004003b,0x00000007,0x00000600,0x00000007,0x0004003b,0x00000007,0x00000601, + 0x00000007,0x0004003b,0x0000004e,0x00000616,0x00000007,0x0004003b,0x000000a8,0x00000619, + 0x00000007,0x0004003b,0x00000007,0x0000061a,0x00000007,0x0004003b,0x0000003d,0x0000061d, + 0x00000007,0x0004003b,0x0000004e,0x0000061f,0x00000007,0x0004003b,0x00000007,0x00000621, + 0x00000007,0x0004003b,0x00000007,0x00000622,0x00000007,0x0004003b,0x0000004e,0x00000637, + 0x00000007,0x0004003b,0x000000a8,0x0000063a,0x00000007,0x0004003b,0x00000007,0x0000063b, + 0x00000007,0x0004003b,0x0000003d,0x0000063e,0x00000007,0x0004003b,0x0000004e,0x00000640, + 0x00000007,0x0004003b,0x00000007,0x00000642,0x00000007,0x0004003b,0x00000007,0x00000643, + 0x00000007,0x0004003b,0x0000004e,0x0000064c,0x00000007,0x0004003b,0x0000004e,0x0000064d, + 0x00000007,0x0004003b,0x0000004e,0x0000064f,0x00000007,0x0004003b,0x0000004e,0x00000651, + 0x00000007,0x0004003b,0x0000004e,0x00000653,0x00000007,0x0004003b,0x0000003d,0x0000065b, + 0x00000007,0x0004003b,0x0000004e,0x0000065c,0x00000007,0x0004003b,0x00000007,0x0000065e, + 0x00000007,0x0004003b,0x00000007,0x0000065f,0x00000007,0x0004003b,0x00000007,0x00000662, + 0x00000007,0x0004003b,0x00000007,0x00000664,0x00000007,0x0004003b,0x0000004e,0x00000666, + 0x00000007,0x0004003d,0x00000006,0x000005c0,0x000000f2,0x00050084,0x00000006,0x000005c1, + 0x000005c0,0x000001cb,0x00050080,0x00000006,0x000005c2,0x000005c1,0x00000183,0x0004007c, + 0x00000013,0x000005c3,0x000005c2,0x0004003d,0x00000006,0x000005c4,0x000000f3,0x00050084, + 0x00000006,0x000005c5,0x000005c4,0x000001cb,0x00050080,0x00000006,0x000005c6,0x000005c5, + 0x00000183,0x0004007c,0x00000013,0x000005c7,0x000005c6,0x00050050,0x0000002e,0x000005c8, + 0x000005c3,0x000005c7,0x0003003e,0x000005bf,0x000005c8,0x0004003d,0x00000006,0x000005ca, + 0x000000f2,0x00050084,0x00000006,0x000005cb,0x000005ca,0x0000013e,0x00050080,0x00000006, + 0x000005cc,0x000005cb,0x00000183,0x0004007c,0x00000013,0x000005cd,0x000005cc,0x0004003d, + 0x00000006,0x000005ce,0x000000f3,0x00050084,0x00000006,0x000005cf,0x000005ce,0x0000013e, + 0x00050080,0x00000006,0x000005d0,0x000005cf,0x00000183,0x0004007c,0x00000013,0x000005d1, + 0x000005d0,0x00050050,0x0000002e,0x000005d2,0x000005cd,0x000005d1,0x0003003e,0x000005c9, + 0x000005d2,0x0004003d,0x0000002e,0x000005d4,0x000005bf,0x0004007c,0x00000029,0x000005d5, + 0x000005d4,0x0003003e,0x000005d6,0x000005d5,0x0004003d,0x00000006,0x000005d8,0x000000f5, + 0x0003003e,0x000005d7,0x000005d8,0x00060039,0x0000004a,0x000005d9,0x000000b4,0x000005d6, + 0x000005d7,0x0003003e,0x000005d3,0x000005d9,0x0004003d,0x0000002e,0x000005dc,0x000005c9, + 0x0003003e,0x000005db,0x000005dc,0x0004003d,0x0000004a,0x000005de,0x000005d3,0x0003003e, + 0x000005dd,0x000005de,0x0003003e,0x000005df,0x000005da,0x0004003d,0x00000006,0x000005e1, + 0x000000f5,0x0003003e,0x000005e0,0x000005e1,0x00080039,0x00000002,0x000005e2,0x0000008e, + 0x000005db,0x000005dd,0x000005df,0x000005e0,0x0004003d,0x00000006,0x000005e3,0x000000f2, + 0x00050084,0x00000006,0x000005e4,0x000005e3,0x000001cb,0x00050080,0x00000006,0x000005e5, + 0x000005e4,0x0000013e,0x0004007c,0x00000013,0x000005e6,0x000005e5,0x0004003d,0x00000006, + 0x000005e7,0x000000f3,0x00050084,0x00000006,0x000005e8,0x000005e7,0x000001cb,0x00050080, + 0x00000006,0x000005e9,0x000005e8,0x00000183,0x0004007c,0x00000013,0x000005ea,0x000005e9, + 0x00050050,0x0000002e,0x000005eb,0x000005e6,0x000005ea,0x0003003e,0x000005bf,0x000005eb, + 0x0004003d,0x00000006,0x000005ec,0x000000f2,0x00050084,0x00000006,0x000005ed,0x000005ec, + 0x0000013e,0x00050080,0x00000006,0x000005ee,0x000005ed,0x00000145,0x0004007c,0x00000013, + 0x000005ef,0x000005ee,0x0004003d,0x00000006,0x000005f0,0x000000f3,0x00050084,0x00000006, + 0x000005f1,0x000005f0,0x0000013e,0x00050080,0x00000006,0x000005f2,0x000005f1,0x00000183, + 0x0004007c,0x00000013,0x000005f3,0x000005f2,0x00050050,0x0000002e,0x000005f4,0x000005ef, + 0x000005f3,0x0003003e,0x000005c9,0x000005f4,0x0004003d,0x0000002e,0x000005f6,0x000005bf, + 0x0004007c,0x00000029,0x000005f7,0x000005f6,0x0003003e,0x000005f8,0x000005f7,0x0004003d, + 0x00000006,0x000005fa,0x000000f5,0x0003003e,0x000005f9,0x000005fa,0x00060039,0x0000004a, + 0x000005fb,0x000000b4,0x000005f8,0x000005f9,0x0003003e,0x000005f5,0x000005fb,0x0004003d, + 0x0000002e,0x000005fd,0x000005c9,0x0003003e,0x000005fc,0x000005fd,0x0004003d,0x0000004a, + 0x000005ff,0x000005f5,0x0003003e,0x000005fe,0x000005ff,0x0003003e,0x00000600,0x000005da, + 0x0004003d,0x00000006,0x00000602,0x000000f5,0x0003003e,0x00000601,0x00000602,0x00080039, + 0x00000002,0x00000603,0x0000008e,0x000005fc,0x000005fe,0x00000600,0x00000601,0x0004003d, + 0x00000006,0x00000604,0x000000f2,0x00050084,0x00000006,0x00000605,0x00000604,0x000001cb, + 0x00050080,0x00000006,0x00000606,0x00000605,0x00000183,0x0004007c,0x00000013,0x00000607, + 0x00000606,0x0004003d,0x00000006,0x00000608,0x000000f3,0x00050084,0x00000006,0x00000609, + 0x00000608,0x000001cb,0x00050080,0x00000006,0x0000060a,0x00000609,0x0000013e,0x0004007c, + 0x00000013,0x0000060b,0x0000060a,0x00050050,0x0000002e,0x0000060c,0x00000607,0x0000060b, + 0x0003003e,0x000005bf,0x0000060c,0x0004003d,0x00000006,0x0000060d,0x000000f2,0x00050084, + 0x00000006,0x0000060e,0x0000060d,0x0000013e,0x00050080,0x00000006,0x0000060f,0x0000060e, + 0x00000183,0x0004007c,0x00000013,0x00000610,0x0000060f,0x0004003d,0x00000006,0x00000611, + 0x000000f3,0x00050084,0x00000006,0x00000612,0x00000611,0x0000013e,0x00050080,0x00000006, + 0x00000613,0x00000612,0x00000145,0x0004007c,0x00000013,0x00000614,0x00000613,0x00050050, + 0x0000002e,0x00000615,0x00000610,0x00000614,0x0003003e,0x000005c9,0x00000615,0x0004003d, + 0x0000002e,0x00000617,0x000005bf,0x0004007c,0x00000029,0x00000618,0x00000617,0x0003003e, + 0x00000619,0x00000618,0x0004003d,0x00000006,0x0000061b,0x000000f5,0x0003003e,0x0000061a, + 0x0000061b,0x00060039,0x0000004a,0x0000061c,0x000000b4,0x00000619,0x0000061a,0x0003003e, + 0x00000616,0x0000061c,0x0004003d,0x0000002e,0x0000061e,0x000005c9,0x0003003e,0x0000061d, + 0x0000061e,0x0004003d,0x0000004a,0x00000620,0x00000616,0x0003003e,0x0000061f,0x00000620, + 0x0003003e,0x00000621,0x000005da,0x0004003d,0x00000006,0x00000623,0x000000f5,0x0003003e, + 0x00000622,0x00000623,0x00080039,0x00000002,0x00000624,0x0000008e,0x0000061d,0x0000061f, + 0x00000621,0x00000622,0x0004003d,0x00000006,0x00000625,0x000000f2,0x00050084,0x00000006, + 0x00000626,0x00000625,0x000001cb,0x00050080,0x00000006,0x00000627,0x00000626,0x0000013e, + 0x0004007c,0x00000013,0x00000628,0x00000627,0x0004003d,0x00000006,0x00000629,0x000000f3, + 0x00050084,0x00000006,0x0000062a,0x00000629,0x000001cb,0x00050080,0x00000006,0x0000062b, + 0x0000062a,0x0000013e,0x0004007c,0x00000013,0x0000062c,0x0000062b,0x00050050,0x0000002e, + 0x0000062d,0x00000628,0x0000062c,0x0003003e,0x000005bf,0x0000062d,0x0004003d,0x00000006, + 0x0000062e,0x000000f2,0x00050084,0x00000006,0x0000062f,0x0000062e,0x0000013e,0x00050080, + 0x00000006,0x00000630,0x0000062f,0x00000145,0x0004007c,0x00000013,0x00000631,0x00000630, + 0x0004003d,0x00000006,0x00000632,0x000000f3,0x00050084,0x00000006,0x00000633,0x00000632, + 0x0000013e,0x00050080,0x00000006,0x00000634,0x00000633,0x00000145,0x0004007c,0x00000013, + 0x00000635,0x00000634,0x00050050,0x0000002e,0x00000636,0x00000631,0x00000635,0x0003003e, + 0x000005c9,0x00000636,0x0004003d,0x0000002e,0x00000638,0x000005bf,0x0004007c,0x00000029, + 0x00000639,0x00000638,0x0003003e,0x0000063a,0x00000639,0x0004003d,0x00000006,0x0000063c, + 0x000000f5,0x0003003e,0x0000063b,0x0000063c,0x00060039,0x0000004a,0x0000063d,0x000000b4, + 0x0000063a,0x0000063b,0x0003003e,0x00000637,0x0000063d,0x0004003d,0x0000002e,0x0000063f, + 0x000005c9,0x0003003e,0x0000063e,0x0000063f,0x0004003d,0x0000004a,0x00000641,0x00000637, + 0x0003003e,0x00000640,0x00000641,0x0003003e,0x00000642,0x000005da,0x0004003d,0x00000006, + 0x00000644,0x000000f5,0x0003003e,0x00000643,0x00000644,0x00080039,0x00000002,0x00000645, + 0x0000008e,0x0000063e,0x00000640,0x00000642,0x00000643,0x0004003d,0x00000006,0x00000646, + 0x000000f4,0x000500b2,0x0000009d,0x00000648,0x00000646,0x00000647,0x000300f7,0x0000064a, + 0x00000000,0x000400fa,0x00000648,0x00000649,0x0000064a,0x000200f8,0x00000649,0x000100fd, + 0x000200f8,0x0000064a,0x0004003d,0x0000004a,0x0000064e,0x000005d3,0x0003003e,0x0000064d, + 0x0000064e,0x0004003d,0x0000004a,0x00000650,0x000005f5,0x0003003e,0x0000064f,0x00000650, + 0x0004003d,0x0000004a,0x00000652,0x00000616,0x0003003e,0x00000651,0x00000652,0x0004003d, + 0x0000004a,0x00000654,0x00000637,0x0003003e,0x00000653,0x00000654,0x00080039,0x0000004a, + 0x00000655,0x00000087,0x0000064d,0x0000064f,0x00000651,0x00000653,0x0003003e,0x0000064c, + 0x00000655,0x0004003d,0x00000006,0x00000656,0x000000f2,0x0004007c,0x00000013,0x00000657, + 0x00000656,0x0004003d,0x00000006,0x00000658,0x000000f3,0x0004007c,0x00000013,0x00000659, + 0x00000658,0x00050050,0x0000002e,0x0000065a,0x00000657,0x00000659,0x0003003e,0x0000065b, + 0x0000065a,0x0004003d,0x0000004a,0x0000065d,0x0000064c,0x0003003e,0x0000065c,0x0000065d, + 0x0003003e,0x0000065e,0x00000647,0x0004003d,0x00000006,0x00000660,0x000000f5,0x0003003e, + 0x0000065f,0x00000660,0x00080039,0x00000002,0x00000661,0x0000008e,0x0000065b,0x0000065c, + 0x0000065e,0x0000065f,0x0004003d,0x00000006,0x00000663,0x000000f2,0x0003003e,0x00000662, + 0x00000663,0x0004003d,0x00000006,0x00000665,0x000000f3,0x0003003e,0x00000664,0x00000665, + 0x0004003d,0x0000004a,0x00000667,0x0000064c,0x0003003e,0x00000666,0x00000667,0x00070039, + 0x00000002,0x00000668,0x00000099,0x00000662,0x00000664,0x00000666,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000100,0x00000000,0x000000f8,0x00030037,0x00000007,0x000000f9, + 0x00030037,0x00000007,0x000000fa,0x00030037,0x000000a8,0x000000fb,0x00030037,0x00000007, + 0x000000fc,0x00030037,0x00000007,0x000000fd,0x00030037,0x00000007,0x000000fe,0x00030037, + 0x00000007,0x000000ff,0x000200f8,0x00000101,0x0004003b,0x00000007,0x00000670,0x00000007, + 0x0004003b,0x00000007,0x00000672,0x00000007,0x0004003b,0x000000a8,0x00000674,0x00000007, + 0x0004003b,0x00000007,0x00000676,0x00000007,0x0004003b,0x00000007,0x00000678,0x00000007, + 0x0004003b,0x00000007,0x0000067a,0x00000007,0x0004003b,0x00000007,0x00000687,0x00000007, + 0x0004003b,0x00000007,0x00000689,0x00000007,0x0004003b,0x000000a8,0x0000068b,0x00000007, + 0x0004003b,0x00000007,0x0000068d,0x00000007,0x0004003b,0x00000007,0x0000068f,0x00000007, + 0x0004003b,0x00000007,0x00000690,0x00000007,0x0004003b,0x00000007,0x0000069d,0x00000007, + 0x0004003b,0x00000007,0x0000069f,0x00000007,0x0004003b,0x000000a8,0x000006a1,0x00000007, + 0x0004003b,0x00000007,0x000006a3,0x00000007,0x0004003b,0x00000007,0x000006a5,0x00000007, + 0x0004003b,0x00000007,0x000006a6,0x00000007,0x0004003b,0x000000a8,0x000006b3,0x00000007, + 0x0004003b,0x00000007,0x000006b5,0x00000007,0x0004003b,0x00000007,0x000006b7,0x00000007, + 0x0004003b,0x00000007,0x000006b8,0x00000007,0x0004003d,0x00000006,0x00000669,0x000000fe, + 0x0004003d,0x00000006,0x0000066a,0x000000fd,0x000500b2,0x0000009d,0x0000066b,0x00000669, + 0x0000066a,0x000300f7,0x0000066d,0x00000000,0x000400fa,0x0000066b,0x0000066c,0x0000066d, + 0x000200f8,0x0000066c,0x000100fd,0x000200f8,0x0000066d,0x00040039,0x00000002,0x0000066f, + 0x0000009b,0x0004003d,0x00000006,0x00000671,0x000000f9,0x0003003e,0x00000670,0x00000671, + 0x0004003d,0x00000006,0x00000673,0x000000fa,0x0003003e,0x00000672,0x00000673,0x0004003d, + 0x00000029,0x00000675,0x000000fb,0x0003003e,0x00000674,0x00000675,0x0004003d,0x00000006, + 0x00000677,0x000000fc,0x0003003e,0x00000676,0x00000677,0x0004003d,0x00000006,0x00000679, + 0x000000fd,0x0003003e,0x00000678,0x00000679,0x0004003d,0x00000006,0x0000067b,0x000000ff, + 0x0003003e,0x0000067a,0x0000067b,0x000a0039,0x00000002,0x0000067c,0x000000d8,0x00000670, + 0x00000672,0x00000674,0x00000676,0x00000678,0x0000067a,0x0004003d,0x00000006,0x0000067d, + 0x000000fe,0x0004003d,0x00000006,0x0000067e,0x000000fd,0x00050080,0x00000006,0x0000067f, + 0x0000067e,0x00000145,0x000500b2,0x0000009d,0x00000680,0x0000067d,0x0000067f,0x000300f7, + 0x00000682,0x00000000,0x000400fa,0x00000680,0x00000681,0x00000682,0x000200f8,0x00000681, + 0x000100fd,0x000200f8,0x00000682,0x00040039,0x00000002,0x00000684,0x0000009b,0x0004003d, + 0x00000006,0x00000685,0x000000fd,0x00050080,0x00000006,0x00000686,0x00000685,0x00000145, + 0x0004003d,0x00000006,0x00000688,0x000000f9,0x0003003e,0x00000687,0x00000688,0x0004003d, + 0x00000006,0x0000068a,0x000000fa,0x0003003e,0x00000689,0x0000068a,0x0004003d,0x00000029, + 0x0000068c,0x000000fb,0x0003003e,0x0000068b,0x0000068c,0x0004003d,0x00000006,0x0000068e, + 0x000000fc,0x0003003e,0x0000068d,0x0000068e,0x0003003e,0x0000068f,0x00000686,0x0004003d, + 0x00000006,0x00000691,0x000000ff,0x0003003e,0x00000690,0x00000691,0x000a0039,0x00000002, + 0x00000692,0x000000e0,0x00000687,0x00000689,0x0000068b,0x0000068d,0x0000068f,0x00000690, + 0x0004003d,0x00000006,0x00000693,0x000000fe,0x0004003d,0x00000006,0x00000694,0x000000fd, + 0x00050080,0x00000006,0x00000695,0x00000694,0x0000013e,0x000500b2,0x0000009d,0x00000696, + 0x00000693,0x00000695,0x000300f7,0x00000698,0x00000000,0x000400fa,0x00000696,0x00000697, + 0x00000698,0x000200f8,0x00000697,0x000100fd,0x000200f8,0x00000698,0x00040039,0x00000002, + 0x0000069a,0x0000009b,0x0004003d,0x00000006,0x0000069b,0x000000fd,0x00050080,0x00000006, + 0x0000069c,0x0000069b,0x0000013e,0x0004003d,0x00000006,0x0000069e,0x000000f9,0x0003003e, + 0x0000069d,0x0000069e,0x0004003d,0x00000006,0x000006a0,0x000000fa,0x0003003e,0x0000069f, + 0x000006a0,0x0004003d,0x00000029,0x000006a2,0x000000fb,0x0003003e,0x000006a1,0x000006a2, + 0x0004003d,0x00000006,0x000006a4,0x000000fc,0x0003003e,0x000006a3,0x000006a4,0x0003003e, + 0x000006a5,0x0000069c,0x0004003d,0x00000006,0x000006a7,0x000000ff,0x0003003e,0x000006a6, + 0x000006a7,0x000a0039,0x00000002,0x000006a8,0x000000e8,0x0000069d,0x0000069f,0x000006a1, + 0x000006a3,0x000006a5,0x000006a6,0x0004003d,0x00000006,0x000006a9,0x000000fe,0x0004003d, + 0x00000006,0x000006aa,0x000000fd,0x00050080,0x00000006,0x000006ab,0x000006aa,0x0000013f, + 0x000500b2,0x0000009d,0x000006ac,0x000006a9,0x000006ab,0x000300f7,0x000006ae,0x00000000, + 0x000400fa,0x000006ac,0x000006ad,0x000006ae,0x000200f8,0x000006ad,0x000100fd,0x000200f8, + 0x000006ae,0x00040039,0x00000002,0x000006b0,0x0000009b,0x0004003d,0x00000006,0x000006b1, + 0x000000fd,0x00050080,0x00000006,0x000006b2,0x000006b1,0x0000013f,0x0004003d,0x00000029, + 0x000006b4,0x000000fb,0x0003003e,0x000006b3,0x000006b4,0x0004003d,0x00000006,0x000006b6, + 0x000000fc,0x0003003e,0x000006b5,0x000006b6,0x0003003e,0x000006b7,0x000006b2,0x0004003d, + 0x00000006,0x000006b9,0x000000ff,0x0003003e,0x000006b8,0x000006b9,0x00080039,0x00000002, + 0x000006ba,0x000000ef,0x000006b3,0x000006b5,0x000006b7,0x000006b8,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000108,0x00000000,0x00000102,0x00030037,0x000000a8,0x00000103, + 0x00030037,0x00000007,0x00000104,0x00030037,0x00000007,0x00000105,0x00030037,0x00000007, + 0x00000106,0x00030037,0x00000007,0x00000107,0x000200f8,0x00000109,0x0004003b,0x000000a8, + 0x000006bb,0x00000007,0x0004003b,0x00000007,0x000006be,0x00000007,0x0004003b,0x00000007, + 0x000006c0,0x00000007,0x0004003b,0x00000007,0x000006c9,0x00000007,0x0004003b,0x00000007, + 0x000006d1,0x00000007,0x0004003b,0x00000007,0x000006d3,0x00000007,0x0004003b,0x000000a8, + 0x000006d5,0x00000007,0x0004003b,0x00000007,0x000006d7,0x00000007,0x0004003b,0x00000007, + 0x000006d9,0x00000007,0x0004003b,0x00000007,0x000006db,0x00000007,0x0004003b,0x00000007, + 0x000006de,0x00000007,0x0004003b,0x00000007,0x000006e0,0x00000007,0x0004003b,0x000000a8, + 0x000006e2,0x00000007,0x0004003b,0x00000007,0x000006e4,0x00000007,0x0004003b,0x00000007, + 0x000006e6,0x00000007,0x0004003b,0x00000007,0x000006e7,0x00000007,0x0004003b,0x00000007, + 0x000006e9,0x00000007,0x0004003b,0x00000007,0x000006f1,0x00000007,0x0004003b,0x00000007, + 0x000006f3,0x00000007,0x0004003b,0x00000007,0x000006f5,0x00000007,0x0004003b,0x00000007, + 0x000006fb,0x00000007,0x0004003b,0x00000007,0x000006fe,0x00000007,0x0004003b,0x00000007, + 0x00000700,0x00000007,0x0004003b,0x00000007,0x00000702,0x00000007,0x0004003b,0x00000007, + 0x00000704,0x00000007,0x0004003b,0x00000007,0x00000707,0x00000007,0x0004003b,0x00000007, + 0x00000709,0x00000007,0x0004003b,0x000000a8,0x0000070b,0x00000007,0x0004003b,0x00000007, + 0x0000070c,0x00000007,0x0004003b,0x00000007,0x0000070e,0x00000007,0x0004003b,0x00000007, + 0x0000070f,0x00000007,0x0004003b,0x00000007,0x00000711,0x00000007,0x0004003d,0x00000006, + 0x000006bc,0x00000104,0x00050089,0x00000006,0x000006bd,0x000006bc,0x000003bb,0x0003003e, + 0x000006be,0x000006bd,0x00050039,0x00000029,0x000006bf,0x0000002c,0x000006be,0x0003003e, + 0x000006bb,0x000006bf,0x00050041,0x00000007,0x000006c1,0x000006bb,0x00000183,0x0004003d, + 0x00000006,0x000006c2,0x000006c1,0x0004003d,0x00000006,0x000006c3,0x00000104,0x000500c2, + 0x00000006,0x000006c5,0x000006c3,0x000006c4,0x00050089,0x00000006,0x000006c6,0x000006c5, + 0x0000013e,0x00050084,0x00000006,0x000006c7,0x000004a3,0x000006c6,0x00050080,0x00000006, + 0x000006c8,0x000006c2,0x000006c7,0x0003003e,0x000006c0,0x000006c8,0x00050041,0x00000007, + 0x000006ca,0x000006bb,0x00000145,0x0004003d,0x00000006,0x000006cb,0x000006ca,0x0004003d, + 0x00000006,0x000006cc,0x00000104,0x000500c2,0x00000006,0x000006ce,0x000006cc,0x000006cd, + 0x00050084,0x00000006,0x000006cf,0x000004a3,0x000006ce,0x00050080,0x00000006,0x000006d0, + 0x000006cb,0x000006cf,0x0003003e,0x000006c9,0x000006d0,0x0004003d,0x00000006,0x000006d2, + 0x000006c0,0x0003003e,0x000006d1,0x000006d2,0x0004003d,0x00000006,0x000006d4,0x000006c9, + 0x0003003e,0x000006d3,0x000006d4,0x0004003d,0x00000029,0x000006d6,0x00000103,0x0003003e, + 0x000006d5,0x000006d6,0x0004003d,0x00000006,0x000006d8,0x00000104,0x0003003e,0x000006d7, + 0x000006d8,0x0004003d,0x00000006,0x000006da,0x00000105,0x0003003e,0x000006d9,0x000006da, + 0x0004003d,0x00000006,0x000006dc,0x00000107,0x0003003e,0x000006db,0x000006dc,0x000a0039, + 0x00000002,0x000006dd,0x000000d0,0x000006d1,0x000006d3,0x000006d5,0x000006d7,0x000006d9, + 0x000006db,0x0004003d,0x00000006,0x000006df,0x000006c0,0x0003003e,0x000006de,0x000006df, + 0x0004003d,0x00000006,0x000006e1,0x000006c9,0x0003003e,0x000006e0,0x000006e1,0x0004003d, + 0x00000029,0x000006e3,0x00000103,0x0003003e,0x000006e2,0x000006e3,0x0004003d,0x00000006, + 0x000006e5,0x00000104,0x0003003e,0x000006e4,0x000006e5,0x0003003e,0x000006e6,0x0000013e, + 0x0004003d,0x00000006,0x000006e8,0x00000105,0x0003003e,0x000006e7,0x000006e8,0x0004003d, + 0x00000006,0x000006ea,0x00000107,0x0003003e,0x000006e9,0x000006ea,0x000b0039,0x00000002, + 0x000006eb,0x00000100,0x000006de,0x000006e0,0x000006e2,0x000006e4,0x000006e6,0x000006e7, + 0x000006e9,0x0004003d,0x00000006,0x000006ec,0x00000105,0x000500b2,0x0000009d,0x000006ed, + 0x000006ec,0x000005da,0x000300f7,0x000006ef,0x00000000,0x000400fa,0x000006ed,0x000006ee, + 0x000006ef,0x000200f8,0x000006ee,0x000100fd,0x000200f8,0x000006ef,0x0004003d,0x00000006, + 0x000006f2,0x00000106,0x0003003e,0x000006f1,0x000006f2,0x0004003d,0x00000006,0x000006f4, + 0x00000104,0x0003003e,0x000006f3,0x000006f4,0x0004003d,0x00000006,0x000006f6,0x00000107, + 0x0003003e,0x000006f5,0x000006f6,0x00070039,0x0000009d,0x000006f7,0x000000a2,0x000006f1, + 0x000006f3,0x000006f5,0x000300f7,0x000006f9,0x00000000,0x000400fa,0x000006f7,0x000006f8, + 0x000006f9,0x000200f8,0x000006f8,0x000100fd,0x000200f8,0x000006f9,0x0004003d,0x00000006, + 0x000006fc,0x00000107,0x0003003e,0x000006fb,0x000006fc,0x00050039,0x00000002,0x000006fd, + 0x00000076,0x000006fb,0x0004003d,0x00000006,0x000006ff,0x000006c0,0x0003003e,0x000006fe, + 0x000006ff,0x0004003d,0x00000006,0x00000701,0x000006c9,0x0003003e,0x00000700,0x00000701, + 0x0004003d,0x00000006,0x00000703,0x00000105,0x0003003e,0x00000702,0x00000703,0x0004003d, + 0x00000006,0x00000705,0x00000107,0x0003003e,0x00000704,0x00000705,0x00080039,0x00000002, + 0x00000706,0x000000f6,0x000006fe,0x00000700,0x00000702,0x00000704,0x0004003d,0x00000006, + 0x00000708,0x000006c0,0x0003003e,0x00000707,0x00000708,0x0004003d,0x00000006,0x0000070a, + 0x000006c9,0x0003003e,0x00000709,0x0000070a,0x0003003e,0x0000070b,0x00000369,0x0004003d, + 0x00000006,0x0000070d,0x00000104,0x0003003e,0x0000070c,0x0000070d,0x0003003e,0x0000070e, + 0x000004a3,0x0004003d,0x00000006,0x00000710,0x00000105,0x0003003e,0x0000070f,0x00000710, + 0x0004003d,0x00000006,0x00000712,0x00000107,0x0003003e,0x00000711,0x00000712,0x000b0039, + 0x00000002,0x00000713,0x00000100,0x00000707,0x00000709,0x0000070b,0x0000070c,0x0000070e, + 0x0000070f,0x00000711,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000111,0x00000000, + 0x0000010a,0x00030037,0x000000a8,0x0000010b,0x00030037,0x00000007,0x0000010c,0x00030037, + 0x00000007,0x0000010d,0x00030037,0x00000007,0x0000010e,0x00030037,0x00000007,0x0000010f, + 0x00030037,0x000000a8,0x00000110,0x000200f8,0x00000112,0x0004003b,0x000000a8,0x00000717, + 0x00000007,0x0004003b,0x00000007,0x00000718,0x00000007,0x0004003b,0x00000007,0x0000071a, + 0x00000007,0x0004003b,0x00000007,0x0000071c,0x00000007,0x0004003b,0x00000007,0x0000071e, + 0x00000007,0x0004003d,0x00000029,0x00000714,0x0000010b,0x0004003d,0x00000029,0x00000715, + 0x00000110,0x00050080,0x00000029,0x00000716,0x00000714,0x00000715,0x0003003e,0x00000717, + 0x00000716,0x0004003d,0x00000006,0x00000719,0x0000010c,0x0003003e,0x00000718,0x00000719, + 0x0004003d,0x00000006,0x0000071b,0x0000010d,0x0003003e,0x0000071a,0x0000071b,0x0004003d, + 0x00000006,0x0000071d,0x0000010e,0x0003003e,0x0000071c,0x0000071d,0x0004003d,0x00000006, + 0x0000071f,0x0000010f,0x0003003e,0x0000071e,0x0000071f,0x00090039,0x00000002,0x00000720, + 0x00000108,0x00000717,0x00000718,0x0000071a,0x0000071c,0x0000071e,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000118,0x00000000,0x00000115,0x00030037,0x00000114,0x00000116, + 0x00030037,0x00000007,0x00000117,0x000200f8,0x00000119,0x0004003b,0x000000a8,0x00000729, + 0x00000007,0x0004003b,0x00000007,0x0000072a,0x00000007,0x0004003b,0x00000007,0x0000072b, + 0x00000007,0x0004003b,0x00000007,0x0000072c,0x00000007,0x0004003b,0x00000007,0x0000072d, + 0x00000007,0x0004003b,0x000000a8,0x0000072e,0x00000007,0x0004003d,0x00000113,0x00000721, + 0x00000116,0x0007004f,0x00000029,0x00000722,0x00000721,0x00000721,0x00000000,0x00000001, + 0x0004003d,0x00000006,0x00000723,0x00000117,0x00040039,0x00000006,0x00000724,0x00000036, + 0x00040039,0x00000006,0x00000725,0x00000038,0x00050041,0x00000007,0x00000726,0x00000116, + 0x0000013e,0x0004003d,0x00000006,0x00000727,0x00000726,0x00040039,0x00000029,0x00000728, + 0x0000003b,0x0003003e,0x00000729,0x00000722,0x0003003e,0x0000072a,0x00000723,0x0003003e, + 0x0000072b,0x00000724,0x0003003e,0x0000072c,0x00000725,0x0003003e,0x0000072d,0x00000727, + 0x0003003e,0x0000072e,0x00000728,0x000a0039,0x00000002,0x0000072f,0x00000111,0x00000729, + 0x0000072a,0x0000072b,0x0000072c,0x0000072d,0x0000072e,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h b/gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h new file mode 100644 index 000000000..62fd5bf40 --- /dev/null +++ b/gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h @@ -0,0 +1,1567 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_LUMA_PYRAMID_NOWAVE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000787,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000771, + 0x00000773,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c, + 0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000, + 0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b, + 0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e, + 0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005, + 0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962,0x00000000,0x00060005,0x00000018, + 0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005, + 0x00000017,0x00000079,0x00060005,0x0000001f,0x4d786666,0x66287861,0x31663b31,0x0000003b, + 0x00030005,0x0000001d,0x00000078,0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023, + 0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005, + 0x00000022,0x00000079,0x00060005,0x00000027,0x50786666,0x6628776f,0x31663b31,0x0000003b, + 0x00030005,0x00000025,0x00000078,0x00030005,0x00000026,0x00000079,0x000a0005,0x0000002c, + 0x52786666,0x70616d65,0x57726f46,0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000, + 0x00030005,0x0000002b,0x00000061,0x00050005,0x00000030,0x646e6552,0x69537265,0x0028657a, + 0x00050005,0x00000033,0x746c6544,0x6d695461,0x00002865,0x00050005,0x00000036,0x4370694d, + 0x746e756f,0x00000028,0x00060005,0x00000038,0x576d754e,0x476b726f,0x70756f72,0x00002873, + 0x00070005,0x0000003b,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000,0x00080005, + 0x00000040,0x64616f4c,0x74726146,0x74736568,0x74706544,0x69762868,0x00003b32,0x00040005, + 0x0000003f,0x50785069,0x0000736f,0x000a0005,0x00000045,0x726f7453,0x72614665,0x73656874, + 0x70654474,0x694d6874,0x76283170,0x663b3269,0x00003b31,0x00040005,0x00000043,0x50785069, + 0x0000736f,0x00040005,0x00000044,0x70654466,0x00006874,0x00080005,0x00000048,0x64616f4c, + 0x72727543,0x4c746e65,0x28616d75,0x3b326976,0x00000000,0x00040005,0x00000047,0x50785069, + 0x0000736f,0x00060005,0x0000004c,0x64616f4c,0x6d617246,0x666e4965,0x0000286f,0x00070005, + 0x00000051,0x726f7453,0x61724665,0x6e49656d,0x76286f66,0x003b3466,0x00040005,0x00000050, + 0x666e4966,0x0000006f,0x00080005,0x00000057,0x6f4c5752,0x79506461,0x696d6172,0x69762864, + 0x31753b32,0x0000003b,0x00040005,0x00000055,0x50785069,0x0000736f,0x00040005,0x00000056, + 0x65646e69,0x00000078,0x00090005,0x0000005e,0x726f7453,0x72795065,0x64696d61,0x32697628, + 0x3266763b,0x3b31753b,0x00000000,0x00040005,0x0000005b,0x50785069,0x0000736f,0x00050005, + 0x0000005c,0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000005d,0x65646e69,0x00000078, + 0x000a0005,0x00000062,0x5f445053,0x72636e49,0x65736165,0x6d6f7441,0x6f436369,0x65746e75, + 0x31752872,0x0000003b,0x00050005,0x00000061,0x43647073,0x746e756f,0x00007265,0x00080005, + 0x00000064,0x5f445053,0x65736552,0x6f744174,0x4363696d,0x746e756f,0x00287265,0x00080005, + 0x0000006a,0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005, + 0x00000067,0x53785069,0x6c706d61,0x00000065,0x00050005,0x00000068,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x00000069,0x78655469,0x65727574,0x657a6953,0x00000000,0x000a0005, + 0x0000006e,0x706d6f43,0x41657475,0x456f7475,0x736f7078,0x46657275,0x4c6d6f72,0x28677661, + 0x003b3166,0x00040005,0x0000006d,0x6776614c,0x00000000,0x000a0005,0x00000071,0x49647053, + 0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005, + 0x00000070,0x63696c73,0x00000065,0x00080005,0x00000073,0x47647053,0x74417465,0x63696d6f, + 0x6e756f43,0x28726574,0x00000000,0x00090005,0x00000076,0x52647053,0x74657365,0x6d6f7441, + 0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000075,0x63696c73,0x00000065, + 0x00090005,0x0000007b,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266, + 0x00003b31,0x00040005,0x00000079,0x50785069,0x0000736f,0x00040005,0x0000007a,0x63696c73, + 0x00000065,0x00060005,0x00000080,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005, + 0x0000007e,0x00786574,0x00040005,0x0000007f,0x63696c73,0x00000065,0x00090005,0x00000087, + 0x52647053,0x63756465,0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005, + 0x00000083,0x00003076,0x00030005,0x00000084,0x00003176,0x00030005,0x00000085,0x00003276, + 0x00030005,0x00000086,0x00003376,0x00080005,0x0000008e,0x53647053,0x65726f74,0x32697628, + 0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x0000008a,0x00786970,0x00050005,0x0000008b, + 0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000008c,0x65646e69,0x00000078,0x00040005, + 0x0000008d,0x63696c73,0x00000065,0x00090005,0x00000093,0x4c647053,0x4964616f,0x7265746e, + 0x6964656d,0x28657461,0x753b3175,0x00003b31,0x00030005,0x00000091,0x00000078,0x00030005, + 0x00000092,0x00000079,0x000a0005,0x00000099,0x53647053,0x65726f74,0x65746e49,0x64656d72, + 0x65746169,0x3b317528,0x763b3175,0x003b3466,0x00030005,0x00000096,0x00000078,0x00030005, + 0x00000097,0x00000079,0x00040005,0x00000098,0x756c6176,0x00000065,0x000a0005,0x0000009b, + 0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c,0x65697272,0x00002872, + 0x00090005,0x000000a2,0x45647053,0x57746978,0x676b726f,0x70756f72,0x3b317528,0x753b3175, + 0x00003b31,0x00060005,0x0000009f,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00080005, + 0x000000a0,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005, + 0x000000a1,0x63696c73,0x00000065,0x000c0005,0x000000aa,0x52647053,0x63756465,0x746e4965, + 0x656d7265,0x74616964,0x75762865,0x75763b32,0x75763b32,0x75763b32,0x00003b32,0x00030005, + 0x000000a6,0x00003069,0x00030005,0x000000a7,0x00003169,0x00030005,0x000000a8,0x00003269, + 0x00030005,0x000000a9,0x00003369,0x000b0005,0x000000b2,0x52647053,0x63756465,0x616f4c65, + 0x76283464,0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x000000ad, + 0x00003069,0x00030005,0x000000ae,0x00003169,0x00030005,0x000000af,0x00003269,0x00030005, + 0x000000b0,0x00003369,0x00040005,0x000000b1,0x63696c73,0x00000065,0x00080005,0x000000b7, + 0x52647053,0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x000000b5, + 0x65736162,0x00000000,0x00040005,0x000000b6,0x63696c73,0x00000065,0x000e0005,0x000000be, + 0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32, + 0x75763b32,0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000b9,0x00003069,0x00030005, + 0x000000ba,0x00003169,0x00030005,0x000000bb,0x00003269,0x00030005,0x000000bc,0x00003369, + 0x00040005,0x000000bd,0x63696c73,0x00000065,0x000b0005,0x000000c2,0x52647053,0x63756465, + 0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005, + 0x000000c0,0x65736162,0x00000000,0x00040005,0x000000c1,0x63696c73,0x00000065,0x000e0005, + 0x000000cb,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x444c5f31,0x31752853, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000c5,0x00000078, + 0x00030005,0x000000c6,0x00000079,0x00050005,0x000000c7,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000c8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000c9,0x0070696d,0x00040005,0x000000ca,0x63696c73,0x00000065,0x000d0005, + 0x000000d3,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b, + 0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000cd,0x00000078,0x00030005, + 0x000000ce,0x00000079,0x00050005,0x000000cf,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000d0,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000d1,0x0070696d,0x00040005,0x000000d2,0x63696c73,0x00000065,0x000c0005,0x000000db, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000d5,0x00000078,0x00030005,0x000000d6,0x00000079, + 0x00050005,0x000000d7,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000d8,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000d9,0x0070696d, + 0x00040005,0x000000da,0x63696c73,0x00000065,0x000c0005,0x000000e3,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000dd,0x00000078,0x00030005,0x000000de,0x00000079,0x00050005,0x000000df, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000e0,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000e1,0x0070696d,0x00040005,0x000000e2, + 0x63696c73,0x00000065,0x000c0005,0x000000eb,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000e5, + 0x00000078,0x00030005,0x000000e6,0x00000079,0x00050005,0x000000e7,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000e8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000e9,0x0070696d,0x00040005,0x000000ea,0x63696c73,0x00000065, + 0x000b0005,0x000000f2,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00050005,0x000000ee,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000ef,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000f0,0x0070696d,0x00040005,0x000000f1,0x63696c73,0x00000065,0x000b0005, + 0x000000f9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000f5,0x00000078,0x00030005,0x000000f6,0x00000079, + 0x00040005,0x000000f7,0x7370696d,0x00000000,0x00040005,0x000000f8,0x63696c73,0x00000065, + 0x000e0005,0x00000103,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000fc, + 0x00000078,0x00030005,0x000000fd,0x00000079,0x00050005,0x000000fe,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000ff,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x00000100,0x65736162,0x0070694d,0x00040005,0x00000101,0x7370696d, + 0x00000000,0x00040005,0x00000102,0x63696c73,0x00000065,0x000a0005,0x0000010b,0x44647053, + 0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005, + 0x00000106,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000107,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000108,0x7370696d,0x00000000, + 0x00060005,0x00000109,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x0000010a, + 0x63696c73,0x00000065,0x000b0005,0x00000114,0x44647053,0x736e776f,0x6c706d61,0x75762865, + 0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x0000010e,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x0000010f,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x00000110,0x7370696d,0x00000000,0x00060005,0x00000111, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x00000112,0x63696c73,0x00000065, + 0x00060005,0x00000113,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00090005,0x0000011b, + 0x706d6f43,0x41657475,0x456f7475,0x736f7078,0x28657275,0x3b337576,0x003b3175,0x00050005, + 0x00000119,0x6b726f57,0x756f7247,0x00644970,0x00070005,0x0000011a,0x61636f4c,0x7268546c, + 0x49646165,0x7865646e,0x00000000,0x00040005,0x00000143,0x61726170,0x0000006d,0x00040005, + 0x00000145,0x61726170,0x0000006d,0x00040005,0x00000146,0x61726170,0x0000006d,0x00040005, + 0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005, + 0x0000014c,0x61726170,0x0000006d,0x00040005,0x0000014e,0x61726170,0x0000006d,0x00040005, + 0x00000150,0x61726170,0x0000006d,0x00040005,0x00000151,0x61726170,0x0000006d,0x00040005, + 0x00000153,0x61726170,0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d,0x00040005, + 0x00000156,0x61726170,0x0000006d,0x00040005,0x00000158,0x61726170,0x0000006d,0x00040005, + 0x00000159,0x61726170,0x0000006d,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00070005, + 0x0000015f,0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x0000015f, + 0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000015f,0x00000001,0x65725069, + 0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x0000015f, + 0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000015f,0x00000003, + 0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006, + 0x0000015f,0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x0000015f, + 0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000015f,0x00000006, + 0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000015f,0x00000007, + 0x74694a66,0x00726574,0x00090006,0x0000015f,0x00000008,0x65725066,0x756f6976,0x61724673, + 0x694a656d,0x72657474,0x00000000,0x00080006,0x0000015f,0x00000009,0x746f4d66,0x566e6f69, + 0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000015f,0x0000000a,0x776f4466,0x6163736e, + 0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000015f,0x0000000b,0x746f4d66,0x566e6f69, + 0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x0000015f, + 0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000015f,0x0000000d,0x74694a66, + 0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000015f,0x0000000e, + 0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000015f,0x0000000f,0x6c654466,0x72506174, + 0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000015f,0x00000010,0x65695666,0x61705377, + 0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000015f,0x00000011, + 0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000015f,0x00000012,0x6c655666,0x7469636f, + 0x63614679,0x00726f74,0x00080006,0x0000015f,0x00000013,0x61655266,0x76697463,0x73656e65, + 0x61635373,0x0000656c,0x00080006,0x0000015f,0x00000014,0x61685366,0x676e6964,0x6e616843, + 0x63536567,0x00656c61,0x000a0006,0x0000015f,0x00000015,0x63634166,0x6c756d75,0x6f697461, + 0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000015f,0x00000016,0x6e694d66, + 0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005, + 0x00000161,0x53466263,0x70553352,0x6c616373,0x00007265,0x00040005,0x0000016d,0x50536263, + 0x00745f44,0x00050006,0x0000016d,0x00000000,0x7370696d,0x00000000,0x00070006,0x0000016d, + 0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00070006,0x0000016d,0x00000002, + 0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00060006,0x0000016d,0x00000003,0x646e6572, + 0x69537265,0x0000657a,0x00040005,0x0000016f,0x50536263,0x00000044,0x00070005,0x00000182, + 0x61665f72,0x65687472,0x645f7473,0x68747065,0x00000000,0x00080005,0x0000018c,0x665f7772, + 0x68747261,0x5f747365,0x74706564,0x696d5f68,0x00003170,0x00060005,0x00000192,0x75635f72, + 0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x0000019b,0x665f7772,0x656d6172,0x666e695f, + 0x0000006f,0x00050005,0x000001a9,0x735f7772,0x6d5f6470,0x00307069,0x00050005,0x000001b3, + 0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001bd,0x735f7772,0x6d5f6470,0x00327069, + 0x00050005,0x000001c7,0x735f7772,0x6d5f6470,0x00337069,0x00050005,0x000001d2,0x735f7772, + 0x6d5f6470,0x00347069,0x00050005,0x000001dd,0x735f7772,0x6d5f6470,0x00357069,0x00080005, + 0x00000224,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f,0x00000000,0x00040005, + 0x0000022b,0x75736572,0x0000746c,0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005, + 0x00000235,0x61726170,0x0000006d,0x00040005,0x00000237,0x61726170,0x0000006d,0x00040005, + 0x00000238,0x61726170,0x0000006d,0x00040005,0x0000023e,0x61726170,0x0000006d,0x00040005, + 0x00000241,0x61726170,0x0000006d,0x00040005,0x00000243,0x61726170,0x0000006d,0x00040005, + 0x00000244,0x61726170,0x0000006d,0x00060005,0x0000024c,0x6f707845,0x65727573,0x314f5349, + 0x00003030,0x00040005,0x00000253,0x78616d4c,0x00000000,0x00040005,0x00000256,0x61726170, + 0x0000006d,0x00040005,0x00000257,0x61726170,0x0000006d,0x00050005,0x00000261,0x43647073, + 0x746e756f,0x00007265,0x00040005,0x00000262,0x61726170,0x0000006d,0x00060005,0x0000026a, + 0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005,0x0000026e,0x61726170,0x0000006d, + 0x00040005,0x0000026f,0x61726170,0x0000006d,0x00040005,0x00000270,0x61726170,0x0000006d, + 0x00040005,0x00000272,0x6d754c66,0x00000061,0x00040005,0x00000273,0x61726170,0x0000006d, + 0x00050005,0x00000276,0x676f4c66,0x616d754c,0x00000000,0x00040005,0x0000027a,0x61726170, + 0x0000006d,0x00040005,0x0000027b,0x61726170,0x0000006d,0x00080005,0x0000027d,0x72614666, + 0x73656874,0x70654474,0x6e496874,0x6574654d,0x00007372,0x00040005,0x0000027e,0x61726170, + 0x0000006d,0x00040005,0x00000281,0x74754f66,0x00747570,0x00040005,0x0000028c,0x61726170, + 0x0000006d,0x00040005,0x0000028e,0x61726170,0x0000006d,0x00040005,0x000002a4,0x61726170, + 0x0000006d,0x00040005,0x000002a6,0x61726170,0x0000006d,0x00040005,0x000002a9,0x61726170, + 0x0000006d,0x00040005,0x000002b1,0x61726170,0x0000006d,0x00040005,0x000002b3,0x61726170, + 0x0000006d,0x00050005,0x000002c3,0x6d617266,0x666e4965,0x0000006f,0x00060005,0x000002c5, + 0x65635366,0x7641656e,0x6d754c67,0x00000061,0x00060005,0x000002c8,0x65725066,0x676f4c76, + 0x616d754c,0x00000000,0x00050005,0x000002cb,0x676f4c66,0x616d754c,0x00000000,0x00040005, + 0x000002dd,0x61726170,0x0000006d,0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005, + 0x000002e1,0x61726170,0x0000006d,0x00040005,0x000002e9,0x61726170,0x0000006d,0x00070005, + 0x000002f0,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005,0x000002f6, + 0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000002fb,0x49647073, + 0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x00000300,0x49647073,0x7265746e, + 0x6964656d,0x41657461,0x00000000,0x00040005,0x00000322,0x61726170,0x0000006d,0x00030005, + 0x0000032c,0x00003076,0x00040005,0x0000032d,0x61726170,0x0000006d,0x00040005,0x00000330, + 0x61726170,0x0000006d,0x00030005,0x00000334,0x00003176,0x00040005,0x00000335,0x61726170, + 0x0000006d,0x00040005,0x00000338,0x61726170,0x0000006d,0x00030005,0x0000033c,0x00003276, + 0x00040005,0x0000033d,0x61726170,0x0000006d,0x00040005,0x00000340,0x61726170,0x0000006d, + 0x00030005,0x00000344,0x00003376,0x00040005,0x00000345,0x61726170,0x0000006d,0x00040005, + 0x00000348,0x61726170,0x0000006d,0x00040005,0x0000034c,0x61726170,0x0000006d,0x00040005, + 0x0000034e,0x61726170,0x0000006d,0x00040005,0x00000350,0x61726170,0x0000006d,0x00040005, + 0x00000352,0x61726170,0x0000006d,0x00030005,0x00000357,0x00003076,0x00040005,0x0000035a, + 0x61726170,0x0000006d,0x00040005,0x0000035b,0x61726170,0x0000006d,0x00030005,0x0000035e, + 0x00003176,0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000362,0x61726170, + 0x0000006d,0x00030005,0x00000365,0x00003276,0x00040005,0x00000368,0x61726170,0x0000006d, + 0x00040005,0x00000369,0x61726170,0x0000006d,0x00030005,0x0000036c,0x00003376,0x00040005, + 0x0000036f,0x61726170,0x0000006d,0x00040005,0x00000370,0x61726170,0x0000006d,0x00040005, + 0x00000373,0x61726170,0x0000006d,0x00040005,0x00000375,0x61726170,0x0000006d,0x00040005, + 0x00000377,0x61726170,0x0000006d,0x00040005,0x00000379,0x61726170,0x0000006d,0x00040005, + 0x0000038a,0x61726170,0x0000006d,0x00040005,0x0000038b,0x61726170,0x0000006d,0x00040005, + 0x0000038c,0x61726170,0x0000006d,0x00040005,0x0000038d,0x61726170,0x0000006d,0x00040005, + 0x0000038e,0x61726170,0x0000006d,0x00030005,0x00000393,0x00003076,0x00040005,0x00000397, + 0x61726170,0x0000006d,0x00040005,0x00000398,0x61726170,0x0000006d,0x00030005,0x0000039b, + 0x00003176,0x00040005,0x0000039f,0x61726170,0x0000006d,0x00040005,0x000003a0,0x61726170, + 0x0000006d,0x00030005,0x000003a3,0x00003276,0x00040005,0x000003a7,0x61726170,0x0000006d, + 0x00040005,0x000003a8,0x61726170,0x0000006d,0x00030005,0x000003ab,0x00003376,0x00040005, + 0x000003af,0x61726170,0x0000006d,0x00040005,0x000003b0,0x61726170,0x0000006d,0x00040005, + 0x000003b3,0x61726170,0x0000006d,0x00040005,0x000003b5,0x61726170,0x0000006d,0x00040005, + 0x000003b7,0x61726170,0x0000006d,0x00040005,0x000003b9,0x61726170,0x0000006d,0x00040005, + 0x000003c6,0x61726170,0x0000006d,0x00040005,0x000003c7,0x61726170,0x0000006d,0x00040005, + 0x000003c8,0x61726170,0x0000006d,0x00040005,0x000003c9,0x61726170,0x0000006d,0x00040005, + 0x000003ca,0x61726170,0x0000006d,0x00030005,0x000003cf,0x00786574,0x00030005,0x000003dd, + 0x00786970,0x00030005,0x000003eb,0x00000076,0x00040005,0x000003ee,0x61726170,0x0000006d, + 0x00040005,0x000003ef,0x61726170,0x0000006d,0x00040005,0x000003f3,0x61726170,0x0000006d, + 0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005,0x000003f8,0x61726170,0x0000006d, + 0x00040005,0x000003f9,0x61726170,0x0000006d,0x00040005,0x00000416,0x61726170,0x0000006d, + 0x00040005,0x00000417,0x61726170,0x0000006d,0x00040005,0x0000041b,0x61726170,0x0000006d, + 0x00040005,0x0000041d,0x61726170,0x0000006d,0x00040005,0x00000420,0x61726170,0x0000006d, + 0x00040005,0x00000421,0x61726170,0x0000006d,0x00040005,0x0000043e,0x61726170,0x0000006d, + 0x00040005,0x0000043f,0x61726170,0x0000006d,0x00040005,0x00000443,0x61726170,0x0000006d, + 0x00040005,0x00000445,0x61726170,0x0000006d,0x00040005,0x00000448,0x61726170,0x0000006d, + 0x00040005,0x00000449,0x61726170,0x0000006d,0x00040005,0x00000469,0x61726170,0x0000006d, + 0x00040005,0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046e,0x61726170,0x0000006d, + 0x00040005,0x00000470,0x61726170,0x0000006d,0x00040005,0x00000473,0x61726170,0x0000006d, + 0x00040005,0x00000474,0x61726170,0x0000006d,0x00030005,0x0000047c,0x00000069,0x00040005, + 0x00000485,0x61726170,0x0000006d,0x00040005,0x00000487,0x61726170,0x0000006d,0x00040005, + 0x00000489,0x61726170,0x0000006d,0x00040005,0x000004af,0x61726170,0x0000006d,0x00040005, + 0x000004b0,0x61726170,0x0000006d,0x00040005,0x000004b1,0x61726170,0x0000006d,0x00040005, + 0x000004b2,0x61726170,0x0000006d,0x00040005,0x000004c9,0x61726170,0x0000006d,0x00040005, + 0x000004ca,0x61726170,0x0000006d,0x00040005,0x000004cd,0x61726170,0x0000006d,0x00040005, + 0x000004ce,0x61726170,0x0000006d,0x00040005,0x000004dc,0x61726170,0x0000006d,0x00040005, + 0x000004dd,0x61726170,0x0000006d,0x00040005,0x000004de,0x61726170,0x0000006d,0x00040005, + 0x000004e6,0x61726170,0x0000006d,0x00040005,0x000004e7,0x61726170,0x0000006d,0x00040005, + 0x000004e8,0x61726170,0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d,0x00040005, + 0x000004f1,0x61726170,0x0000006d,0x00040005,0x000004f2,0x61726170,0x0000006d,0x00040005, + 0x000004fa,0x61726170,0x0000006d,0x00040005,0x000004fb,0x61726170,0x0000006d,0x00040005, + 0x000004fc,0x61726170,0x0000006d,0x00040005,0x00000500,0x61726170,0x0000006d,0x00040005, + 0x00000502,0x61726170,0x0000006d,0x00040005,0x00000504,0x61726170,0x0000006d,0x00040005, + 0x00000506,0x61726170,0x0000006d,0x00040005,0x00000508,0x61726170,0x0000006d,0x00040005, + 0x0000050a,0x61726170,0x0000006d,0x00030005,0x00000511,0x00000076,0x00040005,0x0000052e, + 0x61726170,0x0000006d,0x00040005,0x0000052f,0x61726170,0x0000006d,0x00040005,0x00000530, + 0x61726170,0x0000006d,0x00040005,0x00000531,0x61726170,0x0000006d,0x00040005,0x0000053d, + 0x61726170,0x0000006d,0x00040005,0x0000053e,0x61726170,0x0000006d,0x00040005,0x00000540, + 0x61726170,0x0000006d,0x00040005,0x00000542,0x61726170,0x0000006d,0x00040005,0x0000054c, + 0x61726170,0x0000006d,0x00040005,0x0000054d,0x61726170,0x0000006d,0x00040005,0x0000054e, + 0x61726170,0x0000006d,0x00030005,0x00000555,0x00000076,0x00040005,0x00000576,0x61726170, + 0x0000006d,0x00040005,0x00000577,0x61726170,0x0000006d,0x00040005,0x00000578,0x61726170, + 0x0000006d,0x00040005,0x00000579,0x61726170,0x0000006d,0x00040005,0x00000585,0x61726170, + 0x0000006d,0x00040005,0x00000586,0x61726170,0x0000006d,0x00040005,0x00000588,0x61726170, + 0x0000006d,0x00040005,0x0000058a,0x61726170,0x0000006d,0x00040005,0x00000593,0x61726170, + 0x0000006d,0x00040005,0x00000594,0x61726170,0x0000006d,0x00040005,0x00000595,0x61726170, + 0x0000006d,0x00030005,0x0000059c,0x00000076,0x00040005,0x000005c9,0x61726170,0x0000006d, + 0x00040005,0x000005ca,0x61726170,0x0000006d,0x00040005,0x000005cb,0x61726170,0x0000006d, + 0x00040005,0x000005cc,0x61726170,0x0000006d,0x00040005,0x000005d8,0x61726170,0x0000006d, + 0x00040005,0x000005d9,0x61726170,0x0000006d,0x00040005,0x000005db,0x61726170,0x0000006d, + 0x00040005,0x000005dd,0x61726170,0x0000006d,0x00040005,0x000005e4,0x61726170,0x0000006d, + 0x00040005,0x000005e5,0x61726170,0x0000006d,0x00040005,0x000005e6,0x61726170,0x0000006d, + 0x00030005,0x000005ed,0x00000076,0x00040005,0x000005f0,0x61726170,0x0000006d,0x00040005, + 0x000005f1,0x61726170,0x0000006d,0x00040005,0x000005f2,0x61726170,0x0000006d,0x00040005, + 0x000005f3,0x61726170,0x0000006d,0x00040005,0x000005f7,0x61726170,0x0000006d,0x00040005, + 0x000005f8,0x61726170,0x0000006d,0x00040005,0x000005fa,0x61726170,0x0000006d,0x00040005, + 0x000005fc,0x61726170,0x0000006d,0x00030005,0x000005ff,0x00786574,0x00030005,0x00000609, + 0x00786970,0x00030005,0x00000613,0x00003076,0x00040005,0x00000616,0x61726170,0x0000006d, + 0x00040005,0x00000617,0x61726170,0x0000006d,0x00040005,0x0000061b,0x61726170,0x0000006d, + 0x00040005,0x0000061d,0x61726170,0x0000006d,0x00040005,0x0000061f,0x61726170,0x0000006d, + 0x00040005,0x00000620,0x61726170,0x0000006d,0x00030005,0x00000635,0x00003176,0x00040005, + 0x00000638,0x61726170,0x0000006d,0x00040005,0x00000639,0x61726170,0x0000006d,0x00040005, + 0x0000063c,0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d,0x00040005, + 0x00000640,0x61726170,0x0000006d,0x00040005,0x00000641,0x61726170,0x0000006d,0x00030005, + 0x00000656,0x00003276,0x00040005,0x00000659,0x61726170,0x0000006d,0x00040005,0x0000065a, + 0x61726170,0x0000006d,0x00040005,0x0000065d,0x61726170,0x0000006d,0x00040005,0x0000065f, + 0x61726170,0x0000006d,0x00040005,0x00000661,0x61726170,0x0000006d,0x00040005,0x00000662, + 0x61726170,0x0000006d,0x00030005,0x00000677,0x00003376,0x00040005,0x0000067a,0x61726170, + 0x0000006d,0x00040005,0x0000067b,0x61726170,0x0000006d,0x00040005,0x0000067e,0x61726170, + 0x0000006d,0x00040005,0x00000680,0x61726170,0x0000006d,0x00040005,0x00000682,0x61726170, + 0x0000006d,0x00040005,0x00000683,0x61726170,0x0000006d,0x00030005,0x0000068c,0x00000076, + 0x00040005,0x0000068d,0x61726170,0x0000006d,0x00040005,0x0000068f,0x61726170,0x0000006d, + 0x00040005,0x00000691,0x61726170,0x0000006d,0x00040005,0x00000693,0x61726170,0x0000006d, + 0x00040005,0x0000069b,0x61726170,0x0000006d,0x00040005,0x0000069c,0x61726170,0x0000006d, + 0x00040005,0x0000069e,0x61726170,0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d, + 0x00040005,0x000006a2,0x61726170,0x0000006d,0x00040005,0x000006a4,0x61726170,0x0000006d, + 0x00040005,0x000006a6,0x61726170,0x0000006d,0x00040005,0x000006b0,0x61726170,0x0000006d, + 0x00040005,0x000006b2,0x61726170,0x0000006d,0x00040005,0x000006b4,0x61726170,0x0000006d, + 0x00040005,0x000006b6,0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d, + 0x00040005,0x000006ba,0x61726170,0x0000006d,0x00040005,0x000006c7,0x61726170,0x0000006d, + 0x00040005,0x000006c9,0x61726170,0x0000006d,0x00040005,0x000006cb,0x61726170,0x0000006d, + 0x00040005,0x000006cd,0x61726170,0x0000006d,0x00040005,0x000006cf,0x61726170,0x0000006d, + 0x00040005,0x000006d0,0x61726170,0x0000006d,0x00040005,0x000006dd,0x61726170,0x0000006d, + 0x00040005,0x000006df,0x61726170,0x0000006d,0x00040005,0x000006e1,0x61726170,0x0000006d, + 0x00040005,0x000006e3,0x61726170,0x0000006d,0x00040005,0x000006e5,0x61726170,0x0000006d, + 0x00040005,0x000006e6,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x000006f5,0x61726170,0x0000006d,0x00040005,0x000006f7,0x61726170,0x0000006d, + 0x00040005,0x000006f8,0x61726170,0x0000006d,0x00040005,0x000006fb,0x5f627573,0x00007978, + 0x00040005,0x000006fe,0x61726170,0x0000006d,0x00030005,0x00000700,0x00000078,0x00030005, + 0x00000709,0x00000079,0x00040005,0x00000711,0x61726170,0x0000006d,0x00040005,0x00000713, + 0x61726170,0x0000006d,0x00040005,0x00000715,0x61726170,0x0000006d,0x00040005,0x00000717, + 0x61726170,0x0000006d,0x00040005,0x00000719,0x61726170,0x0000006d,0x00040005,0x0000071b, + 0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d,0x00040005,0x00000720, + 0x61726170,0x0000006d,0x00040005,0x00000722,0x61726170,0x0000006d,0x00040005,0x00000724, + 0x61726170,0x0000006d,0x00040005,0x00000726,0x61726170,0x0000006d,0x00040005,0x00000727, + 0x61726170,0x0000006d,0x00040005,0x00000729,0x61726170,0x0000006d,0x00040005,0x00000731, + 0x61726170,0x0000006d,0x00040005,0x00000733,0x61726170,0x0000006d,0x00040005,0x00000735, + 0x61726170,0x0000006d,0x00040005,0x0000073b,0x61726170,0x0000006d,0x00040005,0x0000073e, + 0x61726170,0x0000006d,0x00040005,0x00000740,0x61726170,0x0000006d,0x00040005,0x00000742, + 0x61726170,0x0000006d,0x00040005,0x00000744,0x61726170,0x0000006d,0x00040005,0x00000747, + 0x61726170,0x0000006d,0x00040005,0x00000749,0x61726170,0x0000006d,0x00040005,0x0000074b, + 0x61726170,0x0000006d,0x00040005,0x0000074c,0x61726170,0x0000006d,0x00040005,0x0000074e, + 0x61726170,0x0000006d,0x00040005,0x0000074f,0x61726170,0x0000006d,0x00040005,0x00000751, + 0x61726170,0x0000006d,0x00040005,0x00000757,0x61726170,0x0000006d,0x00040005,0x00000758, + 0x61726170,0x0000006d,0x00040005,0x0000075a,0x61726170,0x0000006d,0x00040005,0x0000075c, + 0x61726170,0x0000006d,0x00040005,0x0000075e,0x61726170,0x0000006d,0x00040005,0x00000769, + 0x61726170,0x0000006d,0x00040005,0x0000076a,0x61726170,0x0000006d,0x00040005,0x0000076b, + 0x61726170,0x0000006d,0x00040005,0x0000076c,0x61726170,0x0000006d,0x00040005,0x0000076d, + 0x61726170,0x0000006d,0x00040005,0x0000076e,0x61726170,0x0000006d,0x00060005,0x00000771, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000773,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000774,0x61726170,0x0000006d, + 0x00040005,0x00000776,0x61726170,0x0000006d,0x00060005,0x0000077d,0x6f505f73,0x43746e69, + 0x706d616c,0x00000000,0x00060005,0x0000077e,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x0000015f,0x00000002,0x00050048,0x0000015f,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000015f,0x00000001,0x00000023,0x00000008,0x00050048,0x0000015f,0x00000002, + 0x00000023,0x00000010,0x00050048,0x0000015f,0x00000003,0x00000023,0x00000018,0x00050048, + 0x0000015f,0x00000004,0x00000023,0x00000020,0x00050048,0x0000015f,0x00000005,0x00000023, + 0x00000028,0x00050048,0x0000015f,0x00000006,0x00000023,0x00000030,0x00050048,0x0000015f, + 0x00000007,0x00000023,0x00000040,0x00050048,0x0000015f,0x00000008,0x00000023,0x00000048, + 0x00050048,0x0000015f,0x00000009,0x00000023,0x00000050,0x00050048,0x0000015f,0x0000000a, + 0x00000023,0x00000058,0x00050048,0x0000015f,0x0000000b,0x00000023,0x00000060,0x00050048, + 0x0000015f,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000015f,0x0000000d,0x00000023, + 0x0000006c,0x00050048,0x0000015f,0x0000000e,0x00000023,0x00000070,0x00050048,0x0000015f, + 0x0000000f,0x00000023,0x00000074,0x00050048,0x0000015f,0x00000010,0x00000023,0x00000078, + 0x00050048,0x0000015f,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000015f,0x00000012, + 0x00000023,0x00000080,0x00050048,0x0000015f,0x00000013,0x00000023,0x00000084,0x00050048, + 0x0000015f,0x00000014,0x00000023,0x00000088,0x00050048,0x0000015f,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x0000015f,0x00000016,0x00000023,0x00000090,0x00040047,0x00000161, + 0x00000021,0x0000000b,0x00040047,0x00000161,0x00000022,0x00000000,0x00030047,0x0000016d, + 0x00000002,0x00050048,0x0000016d,0x00000000,0x00000023,0x00000000,0x00050048,0x0000016d, + 0x00000001,0x00000023,0x00000004,0x00050048,0x0000016d,0x00000002,0x00000023,0x00000008, + 0x00050048,0x0000016d,0x00000003,0x00000023,0x00000010,0x00040047,0x0000016f,0x00000021, + 0x0000000c,0x00040047,0x0000016f,0x00000022,0x00000000,0x00040047,0x00000182,0x00000021, + 0x00000001,0x00040047,0x00000182,0x00000022,0x00000000,0x00040047,0x0000018c,0x00000021, + 0x0000000a,0x00040047,0x0000018c,0x00000022,0x00000000,0x00040047,0x00000192,0x00000021, + 0x00000000,0x00040047,0x00000192,0x00000022,0x00000000,0x00040047,0x0000019b,0x00000021, + 0x00000003,0x00040047,0x0000019b,0x00000022,0x00000000,0x00040047,0x000001a9,0x00000021, + 0x00000004,0x00040047,0x000001a9,0x00000022,0x00000000,0x00040047,0x000001b3,0x00000021, + 0x00000005,0x00040047,0x000001b3,0x00000022,0x00000000,0x00040047,0x000001bd,0x00000021, + 0x00000006,0x00040047,0x000001bd,0x00000022,0x00000000,0x00040047,0x000001c7,0x00000021, + 0x00000007,0x00040047,0x000001c7,0x00000022,0x00000000,0x00040047,0x000001d2,0x00000021, + 0x00000008,0x00040047,0x000001d2,0x00000022,0x00000000,0x00030047,0x000001dd,0x00000017, + 0x00040047,0x000001dd,0x00000021,0x00000009,0x00040047,0x000001dd,0x00000022,0x00000000, + 0x00030047,0x00000224,0x00000017,0x00040047,0x00000224,0x00000021,0x00000002,0x00040047, + 0x00000224,0x00000022,0x00000000,0x00040047,0x00000771,0x0000000b,0x0000001a,0x00040047, + 0x00000773,0x0000000b,0x0000001d,0x00040047,0x0000077d,0x00000021,0x000003e8,0x00040047, + 0x0000077d,0x00000022,0x00000000,0x00040047,0x0000077e,0x00000021,0x000003e9,0x00040047, + 0x0000077e,0x00000022,0x00000000,0x00040047,0x00000786,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006,0x00000007, + 0x00000007,0x00000007,0x00040015,0x00000013,0x00000020,0x00000001,0x00040020,0x00000014, + 0x00000007,0x00000013,0x00050021,0x00000015,0x00000013,0x00000014,0x00000014,0x00030016, + 0x0000001a,0x00000020,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00050021,0x0000001c, + 0x0000001a,0x0000001b,0x0000001b,0x00040017,0x00000029,0x00000006,0x00000002,0x00040021, + 0x0000002a,0x00000029,0x00000007,0x00040017,0x0000002e,0x00000013,0x00000002,0x00030021, + 0x0000002f,0x0000002e,0x00030021,0x00000032,0x0000001a,0x00030021,0x00000035,0x00000006, + 0x00030021,0x0000003a,0x00000029,0x00040020,0x0000003d,0x00000007,0x0000002e,0x00040021, + 0x0000003e,0x0000001a,0x0000003d,0x00050021,0x00000042,0x00000002,0x0000003d,0x0000001b, + 0x00040017,0x0000004a,0x0000001a,0x00000004,0x00030021,0x0000004b,0x0000004a,0x00040020, + 0x0000004e,0x00000007,0x0000004a,0x00040021,0x0000004f,0x00000002,0x0000004e,0x00040017, + 0x00000053,0x0000001a,0x00000002,0x00050021,0x00000054,0x00000053,0x0000003d,0x00000007, + 0x00040020,0x00000059,0x00000007,0x00000053,0x00060021,0x0000005a,0x00000002,0x0000003d, + 0x00000059,0x00000007,0x00040021,0x00000060,0x00000002,0x00000007,0x00060021,0x00000066, + 0x0000002e,0x0000003d,0x0000003d,0x0000003d,0x00040021,0x0000006c,0x0000001a,0x0000001b, + 0x00050021,0x00000078,0x0000004a,0x00000059,0x00000007,0x00050021,0x0000007d,0x0000004a, + 0x0000003d,0x00000007,0x00070021,0x00000082,0x0000004a,0x0000004e,0x0000004e,0x0000004e, + 0x0000004e,0x00070021,0x00000089,0x00000002,0x0000003d,0x0000004e,0x00000007,0x00000007, + 0x00050021,0x00000090,0x0000004a,0x00000007,0x00000007,0x00060021,0x00000095,0x00000002, + 0x00000007,0x00000007,0x0000004e,0x00020014,0x0000009d,0x00060021,0x0000009e,0x0000009d, + 0x00000007,0x00000007,0x00000007,0x00040020,0x000000a4,0x00000007,0x00000029,0x00070021, + 0x000000a5,0x0000004a,0x000000a4,0x000000a4,0x000000a4,0x000000a4,0x00080021,0x000000ac, + 0x0000004a,0x000000a4,0x000000a4,0x000000a4,0x000000a4,0x00000007,0x00050021,0x000000b4, + 0x0000004a,0x000000a4,0x00000007,0x00090021,0x000000c4,0x00000002,0x00000007,0x00000007, + 0x000000a4,0x00000007,0x00000007,0x00000007,0x00070021,0x000000ed,0x00000002,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00070021,0x000000f4,0x00000002,0x00000007,0x00000007, + 0x00000007,0x00000007,0x000a0021,0x000000fb,0x00000002,0x00000007,0x00000007,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00080021,0x00000105,0x00000002,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00090021,0x0000010d,0x00000002,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00000007,0x000000a4,0x00040017,0x00000116,0x00000006, + 0x00000003,0x00040020,0x00000117,0x00000007,0x00000116,0x00050021,0x00000118,0x00000002, + 0x00000117,0x00000007,0x0004002b,0x00000013,0x00000127,0x00000000,0x0004002b,0x00000006, + 0x00000141,0x00000002,0x0004002b,0x00000006,0x00000142,0x00000003,0x0004002b,0x00000006, + 0x00000148,0x00000001,0x0019001e,0x0000015f,0x0000002e,0x0000002e,0x0000002e,0x0000002e, + 0x0000002e,0x0000002e,0x0000004a,0x00000053,0x00000053,0x00000053,0x00000053,0x00000053, + 0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x0000001a,0x0000001a,0x00040020,0x00000160,0x00000002,0x0000015f,0x0004003b, + 0x00000160,0x00000161,0x00000002,0x00040020,0x00000162,0x00000002,0x0000002e,0x0004002b, + 0x00000013,0x00000167,0x0000000e,0x00040020,0x00000168,0x00000002,0x0000001a,0x0006001e, + 0x0000016d,0x00000006,0x00000006,0x00000029,0x00000029,0x00040020,0x0000016e,0x00000002, + 0x0000016d,0x0004003b,0x0000016e,0x0000016f,0x00000002,0x00040020,0x00000170,0x00000002, + 0x00000006,0x0004002b,0x00000013,0x00000175,0x00000001,0x0004002b,0x00000013,0x0000017a, + 0x00000002,0x00040020,0x0000017b,0x00000002,0x00000029,0x00090019,0x00000180,0x0000001a, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000181, + 0x00000000,0x00000180,0x0004003b,0x00000181,0x00000182,0x00000000,0x0004002b,0x00000006, + 0x00000186,0x00000000,0x00090019,0x0000018a,0x0000001a,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000009,0x00040020,0x0000018b,0x00000000,0x0000018a,0x0004003b, + 0x0000018b,0x0000018c,0x00000000,0x0004002b,0x0000001a,0x00000190,0x00000000,0x0004003b, + 0x00000181,0x00000192,0x00000000,0x00090019,0x00000199,0x0000001a,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000001,0x00040020,0x0000019a,0x00000000,0x00000199, + 0x0004003b,0x0000019a,0x0000019b,0x00000000,0x0005002c,0x0000002e,0x0000019d,0x00000127, + 0x00000127,0x00090019,0x000001a7,0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000007,0x00040020,0x000001a8,0x00000000,0x000001a7,0x0004003b,0x000001a8, + 0x000001a9,0x00000000,0x0004003b,0x000001a8,0x000001b3,0x00000000,0x0004003b,0x000001a8, + 0x000001bd,0x00000000,0x0004003b,0x000001a8,0x000001c7,0x00000000,0x0004002b,0x00000006, + 0x000001ce,0x00000004,0x0004003b,0x000001a8,0x000001d2,0x00000000,0x0004002b,0x00000006, + 0x000001d9,0x00000005,0x0004003b,0x000001a8,0x000001dd,0x00000000,0x0005002c,0x00000053, + 0x000001e3,0x00000190,0x00000190,0x00090019,0x00000222,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000223,0x00000000,0x00000222, + 0x0004003b,0x00000223,0x00000224,0x00000000,0x00040020,0x00000225,0x0000000b,0x00000006, + 0x00040017,0x00000229,0x00000006,0x00000004,0x0007002c,0x00000229,0x0000022a,0x00000186, + 0x00000186,0x00000186,0x00000186,0x0004002b,0x0000001a,0x0000024e,0x42c80000,0x0004002b, + 0x0000001a,0x00000250,0x41480000,0x0004002b,0x0000001a,0x00000254,0x3f99999a,0x0004002b, + 0x0000001a,0x00000255,0x40000000,0x0004002b,0x0000001a,0x0000025b,0x3f800000,0x00040020, + 0x00000260,0x00000004,0x00000006,0x0004003b,0x00000260,0x00000261,0x00000004,0x0004002b, + 0x0000001a,0x00000277,0x387fda40,0x0007002c,0x0000004a,0x00000282,0x00000190,0x00000190, + 0x00000190,0x00000190,0x0004002b,0x0000001a,0x0000029c,0x3e800000,0x00040017,0x000002be, + 0x0000009d,0x00000002,0x0004002b,0x0000001a,0x000002cf,0x461c4000,0x0004002b,0x00000006, + 0x000002ec,0x00000010,0x0004001c,0x000002ed,0x0000001a,0x000002ec,0x0004001c,0x000002ee, + 0x000002ed,0x000002ec,0x00040020,0x000002ef,0x00000004,0x000002ee,0x0004003b,0x000002ef, + 0x000002f0,0x00000004,0x00040020,0x000002f3,0x00000004,0x0000001a,0x0004003b,0x000002ef, + 0x000002f6,0x00000004,0x0004003b,0x000002ef,0x000002fb,0x00000004,0x0004003b,0x000002ef, + 0x00000300,0x00000004,0x0004002b,0x00000006,0x0000031c,0x00000d48,0x0004002b,0x00000006, + 0x0000031d,0x00000108,0x0005002c,0x00000029,0x0000037f,0x00000186,0x00000186,0x0005002c, + 0x00000029,0x00000382,0x00000186,0x00000148,0x0005002c,0x00000029,0x00000385,0x00000148, + 0x00000186,0x0005002c,0x00000029,0x00000388,0x00000148,0x00000148,0x0004002b,0x00000006, + 0x000003d1,0x00000040,0x0004002b,0x00000006,0x000003df,0x00000020,0x0004001c,0x000003e9, + 0x0000004a,0x000001ce,0x00040020,0x000003ea,0x00000007,0x000003e9,0x0004002b,0x00000013, + 0x00000466,0x00000003,0x0004002b,0x00000006,0x000004bc,0x00000008,0x0005002c,0x00000029, + 0x000005ee,0x00000141,0x00000186,0x0005002c,0x00000029,0x000005ef,0x00000142,0x00000186, + 0x0004002b,0x00000006,0x0000061a,0x00000006,0x0004002b,0x00000006,0x00000687,0x00000007, + 0x0004002b,0x00000013,0x00000704,0x00000006,0x0004002b,0x00000013,0x0000070d,0x00000007, + 0x00040020,0x00000770,0x00000001,0x00000116,0x0004003b,0x00000770,0x00000771,0x00000001, + 0x00040020,0x00000772,0x00000001,0x00000006,0x0004003b,0x00000772,0x00000773,0x00000001, + 0x0004002b,0x0000001a,0x00000779,0x477fe000,0x0004002b,0x0000001a,0x0000077a,0x37801002, + 0x0002001a,0x0000077b,0x00040020,0x0000077c,0x00000000,0x0000077b,0x0004003b,0x0000077c, + 0x0000077d,0x00000000,0x0004003b,0x0000077c,0x0000077e,0x00000000,0x0004002b,0x0000001a, + 0x0000077f,0x7f7fffff,0x0004002b,0x0000001a,0x00000780,0x00800000,0x0004002b,0x0000001a, + 0x00000781,0x3a1fe868,0x0004002b,0x0000001a,0x00000782,0x3d800000,0x0004002b,0x0000001a, + 0x00000783,0x3d3d70a4,0x0004002b,0x0000001a,0x00000784,0x3e400000,0x0004002b,0x00000006, + 0x00000785,0x00000100,0x0006002c,0x00000116,0x00000786,0x00000785,0x00000148,0x00000148, + 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b, + 0x00000117,0x00000774,0x00000007,0x0004003b,0x00000007,0x00000776,0x00000007,0x0004003d, + 0x00000116,0x00000775,0x00000771,0x0003003e,0x00000774,0x00000775,0x0004003d,0x00000006, + 0x00000777,0x00000773,0x0003003e,0x00000776,0x00000777,0x00060039,0x00000002,0x00000778, + 0x0000011b,0x00000774,0x00000776,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c, + 0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d,0x0004003d,0x00000006,0x0000011d, + 0x00000009,0x0004003d,0x00000006,0x0000011e,0x0000000a,0x0004007c,0x00000013,0x0000011f, + 0x0000011e,0x0004003d,0x00000006,0x00000120,0x0000000b,0x0004007c,0x00000013,0x00000121, + 0x00000120,0x000600cb,0x00000006,0x00000122,0x0000011d,0x0000011f,0x00000121,0x000200fe, + 0x00000122,0x00010038,0x00050036,0x00000006,0x00000011,0x00000000,0x00000008,0x00030037, + 0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010, + 0x000200f8,0x00000012,0x0004003d,0x00000006,0x00000125,0x0000000e,0x0004003d,0x00000006, + 0x00000126,0x0000000f,0x0004003d,0x00000006,0x00000128,0x00000010,0x0004007c,0x00000013, + 0x00000129,0x00000128,0x000700c9,0x00000006,0x0000012a,0x00000125,0x00000126,0x00000127, + 0x00000129,0x000200fe,0x0000012a,0x00010038,0x00050036,0x00000013,0x00000018,0x00000000, + 0x00000015,0x00030037,0x00000014,0x00000016,0x00030037,0x00000014,0x00000017,0x000200f8, + 0x00000019,0x0004003d,0x00000013,0x0000012d,0x00000016,0x0004003d,0x00000013,0x0000012e, + 0x00000017,0x0007000c,0x00000013,0x0000012f,0x00000001,0x00000027,0x0000012d,0x0000012e, + 0x000200fe,0x0000012f,0x00010038,0x00050036,0x0000001a,0x0000001f,0x00000000,0x0000001c, + 0x00030037,0x0000001b,0x0000001d,0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020, + 0x0004003d,0x0000001a,0x00000132,0x0000001d,0x0004003d,0x0000001a,0x00000133,0x0000001e, + 0x0007000c,0x0000001a,0x00000134,0x00000001,0x00000028,0x00000132,0x00000133,0x000200fe, + 0x00000134,0x00010038,0x00050036,0x00000013,0x00000023,0x00000000,0x00000015,0x00030037, + 0x00000014,0x00000021,0x00030037,0x00000014,0x00000022,0x000200f8,0x00000024,0x0004003d, + 0x00000013,0x00000137,0x00000021,0x0004003d,0x00000013,0x00000138,0x00000022,0x0007000c, + 0x00000013,0x00000139,0x00000001,0x0000002a,0x00000137,0x00000138,0x000200fe,0x00000139, + 0x00010038,0x00050036,0x0000001a,0x00000027,0x00000000,0x0000001c,0x00030037,0x0000001b, + 0x00000025,0x00030037,0x0000001b,0x00000026,0x000200f8,0x00000028,0x0004003d,0x0000001a, + 0x0000013c,0x00000025,0x0004003d,0x0000001a,0x0000013d,0x00000026,0x0007000c,0x0000001a, + 0x0000013e,0x00000001,0x0000001a,0x0000013c,0x0000013d,0x000200fe,0x0000013e,0x00010038, + 0x00050036,0x00000029,0x0000002c,0x00000000,0x0000002a,0x00030037,0x00000007,0x0000002b, + 0x000200f8,0x0000002d,0x0004003b,0x00000007,0x00000143,0x00000007,0x0004003b,0x00000007, + 0x00000145,0x00000007,0x0004003b,0x00000007,0x00000146,0x00000007,0x0004003b,0x00000007, + 0x00000149,0x00000007,0x0004003b,0x00000007,0x0000014a,0x00000007,0x0004003b,0x00000007, + 0x0000014c,0x00000007,0x0004003b,0x00000007,0x0000014e,0x00000007,0x0004003b,0x00000007, + 0x00000150,0x00000007,0x0004003b,0x00000007,0x00000151,0x00000007,0x0004003b,0x00000007, + 0x00000153,0x00000007,0x0004003b,0x00000007,0x00000155,0x00000007,0x0004003b,0x00000007, + 0x00000156,0x00000007,0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007, + 0x00000159,0x00000007,0x0004003b,0x00000007,0x0000015a,0x00000007,0x0004003d,0x00000006, + 0x00000144,0x0000002b,0x0003003e,0x00000143,0x00000144,0x0003003e,0x00000145,0x00000141, + 0x0003003e,0x00000146,0x00000142,0x00070039,0x00000006,0x00000147,0x0000000c,0x00000143, + 0x00000145,0x00000146,0x0003003e,0x00000149,0x00000147,0x0004003d,0x00000006,0x0000014b, + 0x0000002b,0x0003003e,0x0000014a,0x0000014b,0x0003003e,0x0000014c,0x00000148,0x00070039, + 0x00000006,0x0000014d,0x00000011,0x00000149,0x0000014a,0x0000014c,0x0004003d,0x00000006, + 0x0000014f,0x0000002b,0x0003003e,0x0000014e,0x0000014f,0x0003003e,0x00000150,0x00000142, + 0x0003003e,0x00000151,0x00000142,0x00070039,0x00000006,0x00000152,0x0000000c,0x0000014e, + 0x00000150,0x00000151,0x0004003d,0x00000006,0x00000154,0x0000002b,0x0003003e,0x00000153, + 0x00000154,0x0003003e,0x00000155,0x00000148,0x0003003e,0x00000156,0x00000141,0x00070039, + 0x00000006,0x00000157,0x0000000c,0x00000153,0x00000155,0x00000156,0x0003003e,0x00000158, + 0x00000152,0x0003003e,0x00000159,0x00000157,0x0003003e,0x0000015a,0x00000141,0x00070039, + 0x00000006,0x0000015b,0x00000011,0x00000158,0x00000159,0x0000015a,0x00050050,0x00000029, + 0x0000015c,0x0000014d,0x0000015b,0x000200fe,0x0000015c,0x00010038,0x00050036,0x0000002e, + 0x00000030,0x00000000,0x0000002f,0x000200f8,0x00000031,0x00050041,0x00000162,0x00000163, + 0x00000161,0x00000127,0x0004003d,0x0000002e,0x00000164,0x00000163,0x000200fe,0x00000164, + 0x00010038,0x00050036,0x0000001a,0x00000033,0x00000000,0x00000032,0x000200f8,0x00000034, + 0x00050041,0x00000168,0x00000169,0x00000161,0x00000167,0x0004003d,0x0000001a,0x0000016a, + 0x00000169,0x000200fe,0x0000016a,0x00010038,0x00050036,0x00000006,0x00000036,0x00000000, + 0x00000035,0x000200f8,0x00000037,0x00050041,0x00000170,0x00000171,0x0000016f,0x00000127, + 0x0004003d,0x00000006,0x00000172,0x00000171,0x000200fe,0x00000172,0x00010038,0x00050036, + 0x00000006,0x00000038,0x00000000,0x00000035,0x000200f8,0x00000039,0x00050041,0x00000170, + 0x00000176,0x0000016f,0x00000175,0x0004003d,0x00000006,0x00000177,0x00000176,0x000200fe, + 0x00000177,0x00010038,0x00050036,0x00000029,0x0000003b,0x00000000,0x0000003a,0x000200f8, + 0x0000003c,0x00050041,0x0000017b,0x0000017c,0x0000016f,0x0000017a,0x0004003d,0x00000029, + 0x0000017d,0x0000017c,0x000200fe,0x0000017d,0x00010038,0x00050036,0x0000001a,0x00000040, + 0x00000000,0x0000003e,0x00030037,0x0000003d,0x0000003f,0x000200f8,0x00000041,0x0004003d, + 0x00000180,0x00000183,0x00000182,0x0004003d,0x0000002e,0x00000184,0x0000003f,0x0007005f, + 0x0000004a,0x00000185,0x00000183,0x00000184,0x00000002,0x00000127,0x00050051,0x0000001a, + 0x00000187,0x00000185,0x00000000,0x000200fe,0x00000187,0x00010038,0x00050036,0x00000002, + 0x00000045,0x00000000,0x00000042,0x00030037,0x0000003d,0x00000043,0x00030037,0x0000001b, + 0x00000044,0x000200f8,0x00000046,0x0004003d,0x0000018a,0x0000018d,0x0000018c,0x0004003d, + 0x0000002e,0x0000018e,0x00000043,0x0004003d,0x0000001a,0x0000018f,0x00000044,0x00070050, + 0x0000004a,0x00000191,0x0000018f,0x00000190,0x00000190,0x00000190,0x00040063,0x0000018d, + 0x0000018e,0x00000191,0x000100fd,0x00010038,0x00050036,0x0000001a,0x00000048,0x00000000, + 0x0000003e,0x00030037,0x0000003d,0x00000047,0x000200f8,0x00000049,0x0004003d,0x00000180, + 0x00000193,0x00000192,0x0004003d,0x0000002e,0x00000194,0x00000047,0x0007005f,0x0000004a, + 0x00000195,0x00000193,0x00000194,0x00000002,0x00000127,0x00050051,0x0000001a,0x00000196, + 0x00000195,0x00000000,0x000200fe,0x00000196,0x00010038,0x00050036,0x0000004a,0x0000004c, + 0x00000000,0x0000004b,0x000200f8,0x0000004d,0x0004003d,0x00000199,0x0000019c,0x0000019b, + 0x00050062,0x0000004a,0x0000019e,0x0000019c,0x0000019d,0x000200fe,0x0000019e,0x00010038, + 0x00050036,0x00000002,0x00000051,0x00000000,0x0000004f,0x00030037,0x0000004e,0x00000050, + 0x000200f8,0x00000052,0x0004003d,0x00000199,0x000001a1,0x0000019b,0x0004003d,0x0000004a, + 0x000001a2,0x00000050,0x00040063,0x000001a1,0x0000019d,0x000001a2,0x000100fd,0x00010038, + 0x00050036,0x00000053,0x00000057,0x00000000,0x00000054,0x00030037,0x0000003d,0x00000055, + 0x00030037,0x00000007,0x00000056,0x000200f8,0x00000058,0x0004003d,0x00000006,0x000001a3, + 0x00000056,0x000500aa,0x0000009d,0x000001a4,0x000001a3,0x00000186,0x000300f7,0x000001a6, + 0x00000000,0x000400fa,0x000001a4,0x000001a5,0x000001a6,0x000200f8,0x000001a5,0x0004003d, + 0x000001a7,0x000001aa,0x000001a9,0x0004003d,0x0000002e,0x000001ab,0x00000055,0x00050062, + 0x0000004a,0x000001ac,0x000001aa,0x000001ab,0x0007004f,0x00000053,0x000001ad,0x000001ac, + 0x000001ac,0x00000000,0x00000001,0x000200fe,0x000001ad,0x000200f8,0x000001a6,0x0004003d, + 0x00000006,0x000001af,0x00000056,0x000500aa,0x0000009d,0x000001b0,0x000001af,0x00000148, + 0x000300f7,0x000001b2,0x00000000,0x000400fa,0x000001b0,0x000001b1,0x000001b2,0x000200f8, + 0x000001b1,0x0004003d,0x000001a7,0x000001b4,0x000001b3,0x0004003d,0x0000002e,0x000001b5, + 0x00000055,0x00050062,0x0000004a,0x000001b6,0x000001b4,0x000001b5,0x0007004f,0x00000053, + 0x000001b7,0x000001b6,0x000001b6,0x00000000,0x00000001,0x000200fe,0x000001b7,0x000200f8, + 0x000001b2,0x0004003d,0x00000006,0x000001b9,0x00000056,0x000500aa,0x0000009d,0x000001ba, + 0x000001b9,0x00000141,0x000300f7,0x000001bc,0x00000000,0x000400fa,0x000001ba,0x000001bb, + 0x000001bc,0x000200f8,0x000001bb,0x0004003d,0x000001a7,0x000001be,0x000001bd,0x0004003d, + 0x0000002e,0x000001bf,0x00000055,0x00050062,0x0000004a,0x000001c0,0x000001be,0x000001bf, + 0x0007004f,0x00000053,0x000001c1,0x000001c0,0x000001c0,0x00000000,0x00000001,0x000200fe, + 0x000001c1,0x000200f8,0x000001bc,0x0004003d,0x00000006,0x000001c3,0x00000056,0x000500aa, + 0x0000009d,0x000001c4,0x000001c3,0x00000142,0x000300f7,0x000001c6,0x00000000,0x000400fa, + 0x000001c4,0x000001c5,0x000001c6,0x000200f8,0x000001c5,0x0004003d,0x000001a7,0x000001c8, + 0x000001c7,0x0004003d,0x0000002e,0x000001c9,0x00000055,0x00050062,0x0000004a,0x000001ca, + 0x000001c8,0x000001c9,0x0007004f,0x00000053,0x000001cb,0x000001ca,0x000001ca,0x00000000, + 0x00000001,0x000200fe,0x000001cb,0x000200f8,0x000001c6,0x0004003d,0x00000006,0x000001cd, + 0x00000056,0x000500aa,0x0000009d,0x000001cf,0x000001cd,0x000001ce,0x000300f7,0x000001d1, + 0x00000000,0x000400fa,0x000001cf,0x000001d0,0x000001d1,0x000200f8,0x000001d0,0x0004003d, + 0x000001a7,0x000001d3,0x000001d2,0x0004003d,0x0000002e,0x000001d4,0x00000055,0x00050062, + 0x0000004a,0x000001d5,0x000001d3,0x000001d4,0x0007004f,0x00000053,0x000001d6,0x000001d5, + 0x000001d5,0x00000000,0x00000001,0x000200fe,0x000001d6,0x000200f8,0x000001d1,0x0004003d, + 0x00000006,0x000001d8,0x00000056,0x000500aa,0x0000009d,0x000001da,0x000001d8,0x000001d9, + 0x000300f7,0x000001dc,0x00000000,0x000400fa,0x000001da,0x000001db,0x000001dc,0x000200f8, + 0x000001db,0x0004003d,0x000001a7,0x000001de,0x000001dd,0x0004003d,0x0000002e,0x000001df, + 0x00000055,0x00050062,0x0000004a,0x000001e0,0x000001de,0x000001df,0x0007004f,0x00000053, + 0x000001e1,0x000001e0,0x000001e0,0x00000000,0x00000001,0x000200fe,0x000001e1,0x000200f8, + 0x000001dc,0x000200fe,0x000001e3,0x00010038,0x00050036,0x00000002,0x0000005e,0x00000000, + 0x0000005a,0x00030037,0x0000003d,0x0000005b,0x00030037,0x00000059,0x0000005c,0x00030037, + 0x00000007,0x0000005d,0x000200f8,0x0000005f,0x0004003d,0x00000006,0x000001e6,0x0000005d, + 0x000500aa,0x0000009d,0x000001e7,0x000001e6,0x00000186,0x000300f7,0x000001e9,0x00000000, + 0x000400fa,0x000001e7,0x000001e8,0x000001e9,0x000200f8,0x000001e8,0x0004003d,0x000001a7, + 0x000001ea,0x000001a9,0x0004003d,0x0000002e,0x000001eb,0x0000005b,0x0004003d,0x00000053, + 0x000001ec,0x0000005c,0x00050051,0x0000001a,0x000001ed,0x000001ec,0x00000000,0x00050051, + 0x0000001a,0x000001ee,0x000001ec,0x00000001,0x00070050,0x0000004a,0x000001ef,0x000001ed, + 0x000001ee,0x00000190,0x00000190,0x00040063,0x000001ea,0x000001eb,0x000001ef,0x000200f9, + 0x000001e9,0x000200f8,0x000001e9,0x0004003d,0x00000006,0x000001f0,0x0000005d,0x000500aa, + 0x0000009d,0x000001f1,0x000001f0,0x00000148,0x000300f7,0x000001f3,0x00000000,0x000400fa, + 0x000001f1,0x000001f2,0x000001f3,0x000200f8,0x000001f2,0x0004003d,0x000001a7,0x000001f4, + 0x000001b3,0x0004003d,0x0000002e,0x000001f5,0x0000005b,0x0004003d,0x00000053,0x000001f6, + 0x0000005c,0x00050051,0x0000001a,0x000001f7,0x000001f6,0x00000000,0x00050051,0x0000001a, + 0x000001f8,0x000001f6,0x00000001,0x00070050,0x0000004a,0x000001f9,0x000001f7,0x000001f8, + 0x00000190,0x00000190,0x00040063,0x000001f4,0x000001f5,0x000001f9,0x000200f9,0x000001f3, + 0x000200f8,0x000001f3,0x0004003d,0x00000006,0x000001fa,0x0000005d,0x000500aa,0x0000009d, + 0x000001fb,0x000001fa,0x00000141,0x000300f7,0x000001fd,0x00000000,0x000400fa,0x000001fb, + 0x000001fc,0x000001fd,0x000200f8,0x000001fc,0x0004003d,0x000001a7,0x000001fe,0x000001bd, + 0x0004003d,0x0000002e,0x000001ff,0x0000005b,0x0004003d,0x00000053,0x00000200,0x0000005c, + 0x00050051,0x0000001a,0x00000201,0x00000200,0x00000000,0x00050051,0x0000001a,0x00000202, + 0x00000200,0x00000001,0x00070050,0x0000004a,0x00000203,0x00000201,0x00000202,0x00000190, + 0x00000190,0x00040063,0x000001fe,0x000001ff,0x00000203,0x000200f9,0x000001fd,0x000200f8, + 0x000001fd,0x0004003d,0x00000006,0x00000204,0x0000005d,0x000500aa,0x0000009d,0x00000205, + 0x00000204,0x00000142,0x000300f7,0x00000207,0x00000000,0x000400fa,0x00000205,0x00000206, + 0x00000207,0x000200f8,0x00000206,0x0004003d,0x000001a7,0x00000208,0x000001c7,0x0004003d, + 0x0000002e,0x00000209,0x0000005b,0x0004003d,0x00000053,0x0000020a,0x0000005c,0x00050051, + 0x0000001a,0x0000020b,0x0000020a,0x00000000,0x00050051,0x0000001a,0x0000020c,0x0000020a, + 0x00000001,0x00070050,0x0000004a,0x0000020d,0x0000020b,0x0000020c,0x00000190,0x00000190, + 0x00040063,0x00000208,0x00000209,0x0000020d,0x000200f9,0x00000207,0x000200f8,0x00000207, + 0x0004003d,0x00000006,0x0000020e,0x0000005d,0x000500aa,0x0000009d,0x0000020f,0x0000020e, + 0x000001ce,0x000300f7,0x00000211,0x00000000,0x000400fa,0x0000020f,0x00000210,0x00000211, + 0x000200f8,0x00000210,0x0004003d,0x000001a7,0x00000212,0x000001d2,0x0004003d,0x0000002e, + 0x00000213,0x0000005b,0x0004003d,0x00000053,0x00000214,0x0000005c,0x00050051,0x0000001a, + 0x00000215,0x00000214,0x00000000,0x00050051,0x0000001a,0x00000216,0x00000214,0x00000001, + 0x00070050,0x0000004a,0x00000217,0x00000215,0x00000216,0x00000190,0x00000190,0x00040063, + 0x00000212,0x00000213,0x00000217,0x000200f9,0x00000211,0x000200f8,0x00000211,0x0004003d, + 0x00000006,0x00000218,0x0000005d,0x000500aa,0x0000009d,0x00000219,0x00000218,0x000001d9, + 0x000300f7,0x0000021b,0x00000000,0x000400fa,0x00000219,0x0000021a,0x0000021b,0x000200f8, + 0x0000021a,0x0004003d,0x000001a7,0x0000021c,0x000001dd,0x0004003d,0x0000002e,0x0000021d, + 0x0000005b,0x0004003d,0x00000053,0x0000021e,0x0000005c,0x00050051,0x0000001a,0x0000021f, + 0x0000021e,0x00000000,0x00050051,0x0000001a,0x00000220,0x0000021e,0x00000001,0x00070050, + 0x0000004a,0x00000221,0x0000021f,0x00000220,0x00000190,0x00000190,0x00040063,0x0000021c, + 0x0000021d,0x00000221,0x000200f9,0x0000021b,0x000200f8,0x0000021b,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000062,0x00000000,0x00000060,0x00030037,0x00000007,0x00000061, + 0x000200f8,0x00000063,0x0006003c,0x00000225,0x00000226,0x00000224,0x0000019d,0x00000186, + 0x000700ea,0x00000006,0x00000227,0x00000226,0x00000148,0x00000186,0x00000148,0x0003003e, + 0x00000061,0x00000227,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000064,0x00000000, + 0x00000003,0x000200f8,0x00000065,0x0004003d,0x00000222,0x00000228,0x00000224,0x00040063, + 0x00000228,0x0000019d,0x0000022a,0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000006a, + 0x00000000,0x00000066,0x00030037,0x0000003d,0x00000067,0x00030037,0x0000003d,0x00000068, + 0x00030037,0x0000003d,0x00000069,0x000200f8,0x0000006b,0x0004003b,0x0000003d,0x0000022b, + 0x00000007,0x0004003b,0x00000014,0x00000232,0x00000007,0x0004003b,0x00000014,0x00000235, + 0x00000007,0x0004003b,0x00000014,0x00000237,0x00000007,0x0004003b,0x00000014,0x00000238, + 0x00000007,0x0004003b,0x00000014,0x0000023e,0x00000007,0x0004003b,0x00000014,0x00000241, + 0x00000007,0x0004003b,0x00000014,0x00000243,0x00000007,0x0004003b,0x00000014,0x00000244, + 0x00000007,0x0004003d,0x0000002e,0x0000022c,0x00000067,0x0004003d,0x0000002e,0x0000022d, + 0x00000068,0x00050080,0x0000002e,0x0000022e,0x0000022c,0x0000022d,0x0003003e,0x0000022b, + 0x0000022e,0x00050041,0x00000014,0x0000022f,0x00000069,0x00000186,0x0004003d,0x00000013, + 0x00000230,0x0000022f,0x00050082,0x00000013,0x00000231,0x00000230,0x00000175,0x00050041, + 0x00000014,0x00000233,0x0000022b,0x00000186,0x0004003d,0x00000013,0x00000234,0x00000233, + 0x0003003e,0x00000232,0x00000234,0x0003003e,0x00000235,0x00000231,0x00060039,0x00000013, + 0x00000236,0x00000018,0x00000232,0x00000235,0x0003003e,0x00000237,0x00000127,0x0003003e, + 0x00000238,0x00000236,0x00060039,0x00000013,0x00000239,0x00000023,0x00000237,0x00000238, + 0x00050041,0x00000014,0x0000023a,0x0000022b,0x00000186,0x0003003e,0x0000023a,0x00000239, + 0x00050041,0x00000014,0x0000023b,0x00000069,0x00000148,0x0004003d,0x00000013,0x0000023c, + 0x0000023b,0x00050082,0x00000013,0x0000023d,0x0000023c,0x00000175,0x00050041,0x00000014, + 0x0000023f,0x0000022b,0x00000148,0x0004003d,0x00000013,0x00000240,0x0000023f,0x0003003e, + 0x0000023e,0x00000240,0x0003003e,0x00000241,0x0000023d,0x00060039,0x00000013,0x00000242, + 0x00000018,0x0000023e,0x00000241,0x0003003e,0x00000243,0x00000127,0x0003003e,0x00000244, + 0x00000242,0x00060039,0x00000013,0x00000245,0x00000023,0x00000243,0x00000244,0x00050041, + 0x00000014,0x00000246,0x0000022b,0x00000148,0x0003003e,0x00000246,0x00000245,0x0004003d, + 0x0000002e,0x00000247,0x0000022b,0x000200fe,0x00000247,0x00010038,0x00050036,0x0000001a, + 0x0000006e,0x00000000,0x0000006c,0x00030037,0x0000001b,0x0000006d,0x000200f8,0x0000006f, + 0x0004003b,0x0000001b,0x0000024c,0x00000007,0x0004003b,0x0000001b,0x00000253,0x00000007, + 0x0004003b,0x0000001b,0x00000256,0x00000007,0x0004003b,0x0000001b,0x00000257,0x00000007, + 0x0004003d,0x0000001a,0x0000024a,0x0000006d,0x0006000c,0x0000001a,0x0000024b,0x00000001, + 0x0000001b,0x0000024a,0x0003003e,0x0000006d,0x0000024b,0x0004003d,0x0000001a,0x0000024d, + 0x0000006d,0x00050085,0x0000001a,0x0000024f,0x0000024d,0x0000024e,0x00050088,0x0000001a, + 0x00000251,0x0000024f,0x00000250,0x0006000c,0x0000001a,0x00000252,0x00000001,0x0000001e, + 0x00000251,0x0003003e,0x0000024c,0x00000252,0x0003003e,0x00000256,0x00000255,0x0004003d, + 0x0000001a,0x00000258,0x0000024c,0x0003003e,0x00000257,0x00000258,0x00060039,0x0000001a, + 0x00000259,0x00000027,0x00000256,0x00000257,0x00050085,0x0000001a,0x0000025a,0x00000254, + 0x00000259,0x0003003e,0x00000253,0x0000025a,0x0004003d,0x0000001a,0x0000025c,0x00000253, + 0x00050088,0x0000001a,0x0000025d,0x0000025b,0x0000025c,0x000200fe,0x0000025d,0x00010038, + 0x00050036,0x00000002,0x00000071,0x00000000,0x00000060,0x00030037,0x00000007,0x00000070, + 0x000200f8,0x00000072,0x0004003b,0x00000007,0x00000262,0x00000007,0x0004003d,0x00000006, + 0x00000263,0x00000261,0x0003003e,0x00000262,0x00000263,0x00050039,0x00000002,0x00000264, + 0x00000062,0x00000262,0x0004003d,0x00000006,0x00000265,0x00000262,0x0003003e,0x00000261, + 0x00000265,0x000100fd,0x00010038,0x00050036,0x00000006,0x00000073,0x00000000,0x00000035, + 0x000200f8,0x00000074,0x0004003d,0x00000006,0x00000266,0x00000261,0x000200fe,0x00000266, + 0x00010038,0x00050036,0x00000002,0x00000076,0x00000000,0x00000060,0x00030037,0x00000007, + 0x00000075,0x000200f8,0x00000077,0x00040039,0x00000002,0x00000269,0x00000064,0x000100fd, + 0x00010038,0x00050036,0x0000004a,0x0000007b,0x00000000,0x00000078,0x00030037,0x00000059, + 0x00000079,0x00030037,0x00000007,0x0000007a,0x000200f8,0x0000007c,0x0004003b,0x0000003d, + 0x0000026a,0x00000007,0x0004003b,0x0000003d,0x0000026e,0x00000007,0x0004003b,0x0000003d, + 0x0000026f,0x00000007,0x0004003b,0x0000003d,0x00000270,0x00000007,0x0004003b,0x0000001b, + 0x00000272,0x00000007,0x0004003b,0x0000003d,0x00000273,0x00000007,0x0004003b,0x0000001b, + 0x00000276,0x00000007,0x0004003b,0x0000001b,0x0000027a,0x00000007,0x0004003b,0x0000001b, + 0x0000027b,0x00000007,0x0004003b,0x0000001b,0x0000027d,0x00000007,0x0004003b,0x0000003d, + 0x0000027e,0x00000007,0x0004003b,0x0000004e,0x00000281,0x00000007,0x0004003d,0x00000053, + 0x0000026b,0x00000079,0x0004006e,0x0000002e,0x0000026c,0x0000026b,0x00040039,0x0000002e, + 0x0000026d,0x00000030,0x0003003e,0x0000026e,0x0000026c,0x0003003e,0x0000026f,0x0000019d, + 0x0003003e,0x00000270,0x0000026d,0x00070039,0x0000002e,0x00000271,0x0000006a,0x0000026e, + 0x0000026f,0x00000270,0x0003003e,0x0000026a,0x00000271,0x0004003d,0x0000002e,0x00000274, + 0x0000026a,0x0003003e,0x00000273,0x00000274,0x00050039,0x0000001a,0x00000275,0x00000048, + 0x00000273,0x0003003e,0x00000272,0x00000275,0x0004003d,0x0000001a,0x00000278,0x00000272, + 0x0006000c,0x0000001a,0x00000279,0x00000001,0x0000001c,0x00000278,0x0003003e,0x0000027a, + 0x00000277,0x0003003e,0x0000027b,0x00000279,0x00060039,0x0000001a,0x0000027c,0x0000001f, + 0x0000027a,0x0000027b,0x0003003e,0x00000276,0x0000027c,0x0004003d,0x0000002e,0x0000027f, + 0x0000026a,0x0003003e,0x0000027e,0x0000027f,0x00050039,0x0000001a,0x00000280,0x00000040, + 0x0000027e,0x0003003e,0x0000027d,0x00000280,0x0003003e,0x00000281,0x00000282,0x0004003d, + 0x0000001a,0x00000283,0x00000276,0x00050041,0x0000001b,0x00000284,0x00000281,0x00000186, + 0x0003003e,0x00000284,0x00000283,0x0004003d,0x0000001a,0x00000285,0x00000272,0x00050041, + 0x0000001b,0x00000286,0x00000281,0x00000148,0x0003003e,0x00000286,0x00000285,0x0004003d, + 0x0000001a,0x00000287,0x0000027d,0x00050041,0x0000001b,0x00000288,0x00000281,0x00000141, + 0x0003003e,0x00000288,0x00000287,0x0004003d,0x0000004a,0x00000289,0x00000281,0x000200fe, + 0x00000289,0x00010038,0x00050036,0x0000004a,0x00000080,0x00000000,0x0000007d,0x00030037, + 0x0000003d,0x0000007e,0x00030037,0x00000007,0x0000007f,0x000200f8,0x00000081,0x0004003b, + 0x0000003d,0x0000028c,0x00000007,0x0004003b,0x00000007,0x0000028e,0x00000007,0x0004003d, + 0x0000002e,0x0000028d,0x0000007e,0x0003003e,0x0000028c,0x0000028d,0x0003003e,0x0000028e, + 0x000001d9,0x00060039,0x00000053,0x0000028f,0x00000057,0x0000028c,0x0000028e,0x00050051, + 0x0000001a,0x00000290,0x0000028f,0x00000000,0x00050051,0x0000001a,0x00000291,0x0000028f, + 0x00000001,0x00070050,0x0000004a,0x00000292,0x00000290,0x00000291,0x00000190,0x00000190, + 0x000200fe,0x00000292,0x00010038,0x00050036,0x0000004a,0x00000087,0x00000000,0x00000082, + 0x00030037,0x0000004e,0x00000083,0x00030037,0x0000004e,0x00000084,0x00030037,0x0000004e, + 0x00000085,0x00030037,0x0000004e,0x00000086,0x000200f8,0x00000088,0x0004003d,0x0000004a, + 0x00000295,0x00000083,0x0004003d,0x0000004a,0x00000296,0x00000084,0x00050081,0x0000004a, + 0x00000297,0x00000295,0x00000296,0x0004003d,0x0000004a,0x00000298,0x00000085,0x00050081, + 0x0000004a,0x00000299,0x00000297,0x00000298,0x0004003d,0x0000004a,0x0000029a,0x00000086, + 0x00050081,0x0000004a,0x0000029b,0x00000299,0x0000029a,0x0005008e,0x0000004a,0x0000029d, + 0x0000029b,0x0000029c,0x000200fe,0x0000029d,0x00010038,0x00050036,0x00000002,0x0000008e, + 0x00000000,0x00000089,0x00030037,0x0000003d,0x0000008a,0x00030037,0x0000004e,0x0000008b, + 0x00030037,0x00000007,0x0000008c,0x00030037,0x00000007,0x0000008d,0x000200f8,0x0000008f, + 0x0004003b,0x0000003d,0x000002a4,0x00000007,0x0004003b,0x00000059,0x000002a6,0x00000007, + 0x0004003b,0x00000007,0x000002a9,0x00000007,0x0004003b,0x0000003d,0x000002b1,0x00000007, + 0x0004003b,0x0000001b,0x000002b3,0x00000007,0x0004003b,0x0000004e,0x000002c3,0x00000007, + 0x0004003b,0x0000001b,0x000002c5,0x00000007,0x0004003b,0x0000001b,0x000002c8,0x00000007, + 0x0004003b,0x0000001b,0x000002cb,0x00000007,0x0004003b,0x0000001b,0x000002dd,0x00000007, + 0x0004003b,0x0000001b,0x000002de,0x00000007,0x0004003b,0x0000001b,0x000002e1,0x00000007, + 0x0004003b,0x0000004e,0x000002e9,0x00000007,0x0004003d,0x00000006,0x000002a0,0x0000008c, + 0x000500aa,0x0000009d,0x000002a1,0x000002a0,0x000001d9,0x000300f7,0x000002a3,0x00000000, + 0x000400fa,0x000002a1,0x000002a2,0x000002ac,0x000200f8,0x000002a2,0x0004003d,0x0000002e, + 0x000002a5,0x0000008a,0x0003003e,0x000002a4,0x000002a5,0x0004003d,0x0000004a,0x000002a7, + 0x0000008b,0x0007004f,0x00000053,0x000002a8,0x000002a7,0x000002a7,0x00000000,0x00000001, + 0x0003003e,0x000002a6,0x000002a8,0x0004003d,0x00000006,0x000002aa,0x0000008c,0x0003003e, + 0x000002a9,0x000002aa,0x00070039,0x00000002,0x000002ab,0x0000005e,0x000002a4,0x000002a6, + 0x000002a9,0x000200f9,0x000002a3,0x000200f8,0x000002ac,0x0004003d,0x00000006,0x000002ad, + 0x0000008c,0x000500aa,0x0000009d,0x000002ae,0x000002ad,0x00000186,0x000300f7,0x000002b0, + 0x00000000,0x000400fa,0x000002ae,0x000002af,0x000002b0,0x000200f8,0x000002af,0x0004003d, + 0x0000002e,0x000002b2,0x0000008a,0x0003003e,0x000002b1,0x000002b2,0x00050041,0x0000001b, + 0x000002b4,0x0000008b,0x00000141,0x0004003d,0x0000001a,0x000002b5,0x000002b4,0x0003003e, + 0x000002b3,0x000002b5,0x00060039,0x00000002,0x000002b6,0x00000045,0x000002b1,0x000002b3, + 0x000200f9,0x000002b0,0x000200f8,0x000002b0,0x000200f9,0x000002a3,0x000200f8,0x000002a3, + 0x0004003d,0x00000006,0x000002b7,0x0000008c,0x00040039,0x00000006,0x000002b8,0x00000036, + 0x00050082,0x00000006,0x000002b9,0x000002b8,0x00000148,0x000500aa,0x0000009d,0x000002ba, + 0x000002b7,0x000002b9,0x000300f7,0x000002bc,0x00000000,0x000400fa,0x000002ba,0x000002bb, + 0x000002bc,0x000200f8,0x000002bb,0x0004003d,0x0000002e,0x000002bd,0x0000008a,0x000500aa, + 0x000002be,0x000002bf,0x000002bd,0x0000019d,0x0004009b,0x0000009d,0x000002c0,0x000002bf, + 0x000300f7,0x000002c2,0x00000000,0x000400fa,0x000002c0,0x000002c1,0x000002c2,0x000200f8, + 0x000002c1,0x00040039,0x0000004a,0x000002c4,0x0000004c,0x0003003e,0x000002c3,0x000002c4, + 0x00050041,0x0000001b,0x000002c6,0x0000008b,0x00000148,0x0004003d,0x0000001a,0x000002c7, + 0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00050041,0x0000001b,0x000002c9,0x000002c3, + 0x00000148,0x0004003d,0x0000001a,0x000002ca,0x000002c9,0x0003003e,0x000002c8,0x000002ca, + 0x00050041,0x0000001b,0x000002cc,0x0000008b,0x00000186,0x0004003d,0x0000001a,0x000002cd, + 0x000002cc,0x0003003e,0x000002cb,0x000002cd,0x0004003d,0x0000001a,0x000002ce,0x000002c8, + 0x000500b8,0x0000009d,0x000002d0,0x000002ce,0x000002cf,0x000300f7,0x000002d2,0x00000000, + 0x000400fa,0x000002d0,0x000002d1,0x000002d2,0x000200f8,0x000002d1,0x0004003d,0x0000001a, + 0x000002d3,0x000002c8,0x0004003d,0x0000001a,0x000002d4,0x000002cb,0x0004003d,0x0000001a, + 0x000002d5,0x000002c8,0x00050083,0x0000001a,0x000002d6,0x000002d4,0x000002d5,0x00040039, + 0x0000001a,0x000002d7,0x00000033,0x0004007f,0x0000001a,0x000002d8,0x000002d7,0x0006000c, + 0x0000001a,0x000002d9,0x00000001,0x0000001b,0x000002d8,0x00050083,0x0000001a,0x000002da, + 0x0000025b,0x000002d9,0x00050085,0x0000001a,0x000002db,0x000002d6,0x000002da,0x00050081, + 0x0000001a,0x000002dc,0x000002d3,0x000002db,0x0003003e,0x000002cb,0x000002dc,0x0003003e, + 0x000002dd,0x00000190,0x0004003d,0x0000001a,0x000002df,0x000002cb,0x0003003e,0x000002de, + 0x000002df,0x00060039,0x0000001a,0x000002e0,0x0000001f,0x000002dd,0x000002de,0x0003003e, + 0x000002cb,0x000002e0,0x000200f9,0x000002d2,0x000200f8,0x000002d2,0x0004003d,0x0000001a, + 0x000002e2,0x000002cb,0x0003003e,0x000002e1,0x000002e2,0x00050039,0x0000001a,0x000002e3, + 0x0000006e,0x000002e1,0x00050041,0x0000001b,0x000002e4,0x000002c3,0x00000186,0x0003003e, + 0x000002e4,0x000002e3,0x0004003d,0x0000001a,0x000002e5,0x000002cb,0x00050041,0x0000001b, + 0x000002e6,0x000002c3,0x00000148,0x0003003e,0x000002e6,0x000002e5,0x0004003d,0x0000001a, + 0x000002e7,0x000002c5,0x00050041,0x0000001b,0x000002e8,0x000002c3,0x00000141,0x0003003e, + 0x000002e8,0x000002e7,0x0004003d,0x0000004a,0x000002ea,0x000002c3,0x0003003e,0x000002e9, + 0x000002ea,0x00050039,0x00000002,0x000002eb,0x00000051,0x000002e9,0x000200f9,0x000002c2, + 0x000200f8,0x000002c2,0x000200f9,0x000002bc,0x000200f8,0x000002bc,0x000100fd,0x00010038, + 0x00050036,0x0000004a,0x00000093,0x00000000,0x00000090,0x00030037,0x00000007,0x00000091, + 0x00030037,0x00000007,0x00000092,0x000200f8,0x00000094,0x0004003d,0x00000006,0x000002f1, + 0x00000091,0x0004003d,0x00000006,0x000002f2,0x00000092,0x00060041,0x000002f3,0x000002f4, + 0x000002f0,0x000002f1,0x000002f2,0x0004003d,0x0000001a,0x000002f5,0x000002f4,0x0004003d, + 0x00000006,0x000002f7,0x00000091,0x0004003d,0x00000006,0x000002f8,0x00000092,0x00060041, + 0x000002f3,0x000002f9,0x000002f6,0x000002f7,0x000002f8,0x0004003d,0x0000001a,0x000002fa, + 0x000002f9,0x0004003d,0x00000006,0x000002fc,0x00000091,0x0004003d,0x00000006,0x000002fd, + 0x00000092,0x00060041,0x000002f3,0x000002fe,0x000002fb,0x000002fc,0x000002fd,0x0004003d, + 0x0000001a,0x000002ff,0x000002fe,0x0004003d,0x00000006,0x00000301,0x00000091,0x0004003d, + 0x00000006,0x00000302,0x00000092,0x00060041,0x000002f3,0x00000303,0x00000300,0x00000301, + 0x00000302,0x0004003d,0x0000001a,0x00000304,0x00000303,0x00070050,0x0000004a,0x00000305, + 0x000002f5,0x000002fa,0x000002ff,0x00000304,0x000200fe,0x00000305,0x00010038,0x00050036, + 0x00000002,0x00000099,0x00000000,0x00000095,0x00030037,0x00000007,0x00000096,0x00030037, + 0x00000007,0x00000097,0x00030037,0x0000004e,0x00000098,0x000200f8,0x0000009a,0x0004003d, + 0x00000006,0x00000308,0x00000096,0x0004003d,0x00000006,0x00000309,0x00000097,0x00050041, + 0x0000001b,0x0000030a,0x00000098,0x00000186,0x0004003d,0x0000001a,0x0000030b,0x0000030a, + 0x00060041,0x000002f3,0x0000030c,0x000002f0,0x00000308,0x00000309,0x0003003e,0x0000030c, + 0x0000030b,0x0004003d,0x00000006,0x0000030d,0x00000096,0x0004003d,0x00000006,0x0000030e, + 0x00000097,0x00050041,0x0000001b,0x0000030f,0x00000098,0x00000148,0x0004003d,0x0000001a, + 0x00000310,0x0000030f,0x00060041,0x000002f3,0x00000311,0x000002f6,0x0000030d,0x0000030e, + 0x0003003e,0x00000311,0x00000310,0x0004003d,0x00000006,0x00000312,0x00000096,0x0004003d, + 0x00000006,0x00000313,0x00000097,0x00050041,0x0000001b,0x00000314,0x00000098,0x00000141, + 0x0004003d,0x0000001a,0x00000315,0x00000314,0x00060041,0x000002f3,0x00000316,0x000002fb, + 0x00000312,0x00000313,0x0003003e,0x00000316,0x00000315,0x0004003d,0x00000006,0x00000317, + 0x00000096,0x0004003d,0x00000006,0x00000318,0x00000097,0x00050041,0x0000001b,0x00000319, + 0x00000098,0x00000142,0x0004003d,0x0000001a,0x0000031a,0x00000319,0x00060041,0x000002f3, + 0x0000031b,0x00000300,0x00000317,0x00000318,0x0003003e,0x0000031b,0x0000031a,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000009b,0x00000000,0x00000003,0x000200f8,0x0000009c, + 0x000300e1,0x00000141,0x0000031c,0x000400e0,0x00000141,0x00000141,0x0000031d,0x000100fd, + 0x00010038,0x00050036,0x0000009d,0x000000a2,0x00000000,0x0000009e,0x00030037,0x00000007, + 0x0000009f,0x00030037,0x00000007,0x000000a0,0x00030037,0x00000007,0x000000a1,0x000200f8, + 0x000000a3,0x0004003b,0x00000007,0x00000322,0x00000007,0x0004003d,0x00000006,0x0000031e, + 0x000000a0,0x000500aa,0x0000009d,0x0000031f,0x0000031e,0x00000186,0x000300f7,0x00000321, + 0x00000000,0x000400fa,0x0000031f,0x00000320,0x00000321,0x000200f8,0x00000320,0x0004003d, + 0x00000006,0x00000323,0x000000a1,0x0003003e,0x00000322,0x00000323,0x00050039,0x00000002, + 0x00000324,0x00000071,0x00000322,0x000200f9,0x00000321,0x000200f8,0x00000321,0x00040039, + 0x00000002,0x00000325,0x0000009b,0x00040039,0x00000006,0x00000326,0x00000073,0x0004003d, + 0x00000006,0x00000327,0x0000009f,0x00050082,0x00000006,0x00000328,0x00000327,0x00000148, + 0x000500ab,0x0000009d,0x00000329,0x00000326,0x00000328,0x000200fe,0x00000329,0x00010038, + 0x00050036,0x0000004a,0x000000aa,0x00000000,0x000000a5,0x00030037,0x000000a4,0x000000a6, + 0x00030037,0x000000a4,0x000000a7,0x00030037,0x000000a4,0x000000a8,0x00030037,0x000000a4, + 0x000000a9,0x000200f8,0x000000ab,0x0004003b,0x0000004e,0x0000032c,0x00000007,0x0004003b, + 0x00000007,0x0000032d,0x00000007,0x0004003b,0x00000007,0x00000330,0x00000007,0x0004003b, + 0x0000004e,0x00000334,0x00000007,0x0004003b,0x00000007,0x00000335,0x00000007,0x0004003b, + 0x00000007,0x00000338,0x00000007,0x0004003b,0x0000004e,0x0000033c,0x00000007,0x0004003b, + 0x00000007,0x0000033d,0x00000007,0x0004003b,0x00000007,0x00000340,0x00000007,0x0004003b, + 0x0000004e,0x00000344,0x00000007,0x0004003b,0x00000007,0x00000345,0x00000007,0x0004003b, + 0x00000007,0x00000348,0x00000007,0x0004003b,0x0000004e,0x0000034c,0x00000007,0x0004003b, + 0x0000004e,0x0000034e,0x00000007,0x0004003b,0x0000004e,0x00000350,0x00000007,0x0004003b, + 0x0000004e,0x00000352,0x00000007,0x00050041,0x00000007,0x0000032e,0x000000a6,0x00000186, + 0x0004003d,0x00000006,0x0000032f,0x0000032e,0x0003003e,0x0000032d,0x0000032f,0x00050041, + 0x00000007,0x00000331,0x000000a6,0x00000148,0x0004003d,0x00000006,0x00000332,0x00000331, + 0x0003003e,0x00000330,0x00000332,0x00060039,0x0000004a,0x00000333,0x00000093,0x0000032d, + 0x00000330,0x0003003e,0x0000032c,0x00000333,0x00050041,0x00000007,0x00000336,0x000000a7, + 0x00000186,0x0004003d,0x00000006,0x00000337,0x00000336,0x0003003e,0x00000335,0x00000337, + 0x00050041,0x00000007,0x00000339,0x000000a7,0x00000148,0x0004003d,0x00000006,0x0000033a, + 0x00000339,0x0003003e,0x00000338,0x0000033a,0x00060039,0x0000004a,0x0000033b,0x00000093, + 0x00000335,0x00000338,0x0003003e,0x00000334,0x0000033b,0x00050041,0x00000007,0x0000033e, + 0x000000a8,0x00000186,0x0004003d,0x00000006,0x0000033f,0x0000033e,0x0003003e,0x0000033d, + 0x0000033f,0x00050041,0x00000007,0x00000341,0x000000a8,0x00000148,0x0004003d,0x00000006, + 0x00000342,0x00000341,0x0003003e,0x00000340,0x00000342,0x00060039,0x0000004a,0x00000343, + 0x00000093,0x0000033d,0x00000340,0x0003003e,0x0000033c,0x00000343,0x00050041,0x00000007, + 0x00000346,0x000000a9,0x00000186,0x0004003d,0x00000006,0x00000347,0x00000346,0x0003003e, + 0x00000345,0x00000347,0x00050041,0x00000007,0x00000349,0x000000a9,0x00000148,0x0004003d, + 0x00000006,0x0000034a,0x00000349,0x0003003e,0x00000348,0x0000034a,0x00060039,0x0000004a, + 0x0000034b,0x00000093,0x00000345,0x00000348,0x0003003e,0x00000344,0x0000034b,0x0004003d, + 0x0000004a,0x0000034d,0x0000032c,0x0003003e,0x0000034c,0x0000034d,0x0004003d,0x0000004a, + 0x0000034f,0x00000334,0x0003003e,0x0000034e,0x0000034f,0x0004003d,0x0000004a,0x00000351, + 0x0000033c,0x0003003e,0x00000350,0x00000351,0x0004003d,0x0000004a,0x00000353,0x00000344, + 0x0003003e,0x00000352,0x00000353,0x00080039,0x0000004a,0x00000354,0x00000087,0x0000034c, + 0x0000034e,0x00000350,0x00000352,0x000200fe,0x00000354,0x00010038,0x00050036,0x0000004a, + 0x000000b2,0x00000000,0x000000ac,0x00030037,0x000000a4,0x000000ad,0x00030037,0x000000a4, + 0x000000ae,0x00030037,0x000000a4,0x000000af,0x00030037,0x000000a4,0x000000b0,0x00030037, + 0x00000007,0x000000b1,0x000200f8,0x000000b3,0x0004003b,0x0000004e,0x00000357,0x00000007, + 0x0004003b,0x0000003d,0x0000035a,0x00000007,0x0004003b,0x00000007,0x0000035b,0x00000007, + 0x0004003b,0x0000004e,0x0000035e,0x00000007,0x0004003b,0x0000003d,0x00000361,0x00000007, + 0x0004003b,0x00000007,0x00000362,0x00000007,0x0004003b,0x0000004e,0x00000365,0x00000007, + 0x0004003b,0x0000003d,0x00000368,0x00000007,0x0004003b,0x00000007,0x00000369,0x00000007, + 0x0004003b,0x0000004e,0x0000036c,0x00000007,0x0004003b,0x0000003d,0x0000036f,0x00000007, + 0x0004003b,0x00000007,0x00000370,0x00000007,0x0004003b,0x0000004e,0x00000373,0x00000007, + 0x0004003b,0x0000004e,0x00000375,0x00000007,0x0004003b,0x0000004e,0x00000377,0x00000007, + 0x0004003b,0x0000004e,0x00000379,0x00000007,0x0004003d,0x00000029,0x00000358,0x000000ad, + 0x0004007c,0x0000002e,0x00000359,0x00000358,0x0003003e,0x0000035a,0x00000359,0x0004003d, + 0x00000006,0x0000035c,0x000000b1,0x0003003e,0x0000035b,0x0000035c,0x00060039,0x0000004a, + 0x0000035d,0x00000080,0x0000035a,0x0000035b,0x0003003e,0x00000357,0x0000035d,0x0004003d, + 0x00000029,0x0000035f,0x000000ae,0x0004007c,0x0000002e,0x00000360,0x0000035f,0x0003003e, + 0x00000361,0x00000360,0x0004003d,0x00000006,0x00000363,0x000000b1,0x0003003e,0x00000362, + 0x00000363,0x00060039,0x0000004a,0x00000364,0x00000080,0x00000361,0x00000362,0x0003003e, + 0x0000035e,0x00000364,0x0004003d,0x00000029,0x00000366,0x000000af,0x0004007c,0x0000002e, + 0x00000367,0x00000366,0x0003003e,0x00000368,0x00000367,0x0004003d,0x00000006,0x0000036a, + 0x000000b1,0x0003003e,0x00000369,0x0000036a,0x00060039,0x0000004a,0x0000036b,0x00000080, + 0x00000368,0x00000369,0x0003003e,0x00000365,0x0000036b,0x0004003d,0x00000029,0x0000036d, + 0x000000b0,0x0004007c,0x0000002e,0x0000036e,0x0000036d,0x0003003e,0x0000036f,0x0000036e, + 0x0004003d,0x00000006,0x00000371,0x000000b1,0x0003003e,0x00000370,0x00000371,0x00060039, + 0x0000004a,0x00000372,0x00000080,0x0000036f,0x00000370,0x0003003e,0x0000036c,0x00000372, + 0x0004003d,0x0000004a,0x00000374,0x00000357,0x0003003e,0x00000373,0x00000374,0x0004003d, + 0x0000004a,0x00000376,0x0000035e,0x0003003e,0x00000375,0x00000376,0x0004003d,0x0000004a, + 0x00000378,0x00000365,0x0003003e,0x00000377,0x00000378,0x0004003d,0x0000004a,0x0000037a, + 0x0000036c,0x0003003e,0x00000379,0x0000037a,0x00080039,0x0000004a,0x0000037b,0x00000087, + 0x00000373,0x00000375,0x00000377,0x00000379,0x000200fe,0x0000037b,0x00010038,0x00050036, + 0x0000004a,0x000000b7,0x00000000,0x000000b4,0x00030037,0x000000a4,0x000000b5,0x00030037, + 0x00000007,0x000000b6,0x000200f8,0x000000b8,0x0004003b,0x000000a4,0x0000038a,0x00000007, + 0x0004003b,0x000000a4,0x0000038b,0x00000007,0x0004003b,0x000000a4,0x0000038c,0x00000007, + 0x0004003b,0x000000a4,0x0000038d,0x00000007,0x0004003b,0x00000007,0x0000038e,0x00000007, + 0x0004003d,0x00000029,0x0000037e,0x000000b5,0x00050080,0x00000029,0x00000380,0x0000037e, + 0x0000037f,0x0004003d,0x00000029,0x00000381,0x000000b5,0x00050080,0x00000029,0x00000383, + 0x00000381,0x00000382,0x0004003d,0x00000029,0x00000384,0x000000b5,0x00050080,0x00000029, + 0x00000386,0x00000384,0x00000385,0x0004003d,0x00000029,0x00000387,0x000000b5,0x00050080, + 0x00000029,0x00000389,0x00000387,0x00000388,0x0003003e,0x0000038a,0x00000380,0x0003003e, + 0x0000038b,0x00000383,0x0003003e,0x0000038c,0x00000386,0x0003003e,0x0000038d,0x00000389, + 0x0004003d,0x00000006,0x0000038f,0x000000b6,0x0003003e,0x0000038e,0x0000038f,0x00090039, + 0x0000004a,0x00000390,0x000000b2,0x0000038a,0x0000038b,0x0000038c,0x0000038d,0x0000038e, + 0x000200fe,0x00000390,0x00010038,0x00050036,0x0000004a,0x000000be,0x00000000,0x000000ac, + 0x00030037,0x000000a4,0x000000b9,0x00030037,0x000000a4,0x000000ba,0x00030037,0x000000a4, + 0x000000bb,0x00030037,0x000000a4,0x000000bc,0x00030037,0x00000007,0x000000bd,0x000200f8, + 0x000000bf,0x0004003b,0x0000004e,0x00000393,0x00000007,0x0004003b,0x00000059,0x00000397, + 0x00000007,0x0004003b,0x00000007,0x00000398,0x00000007,0x0004003b,0x0000004e,0x0000039b, + 0x00000007,0x0004003b,0x00000059,0x0000039f,0x00000007,0x0004003b,0x00000007,0x000003a0, + 0x00000007,0x0004003b,0x0000004e,0x000003a3,0x00000007,0x0004003b,0x00000059,0x000003a7, + 0x00000007,0x0004003b,0x00000007,0x000003a8,0x00000007,0x0004003b,0x0000004e,0x000003ab, + 0x00000007,0x0004003b,0x00000059,0x000003af,0x00000007,0x0004003b,0x00000007,0x000003b0, + 0x00000007,0x0004003b,0x0000004e,0x000003b3,0x00000007,0x0004003b,0x0000004e,0x000003b5, + 0x00000007,0x0004003b,0x0000004e,0x000003b7,0x00000007,0x0004003b,0x0000004e,0x000003b9, + 0x00000007,0x0004003d,0x00000029,0x00000394,0x000000b9,0x0004007c,0x0000002e,0x00000395, + 0x00000394,0x0004006f,0x00000053,0x00000396,0x00000395,0x0003003e,0x00000397,0x00000396, + 0x0004003d,0x00000006,0x00000399,0x000000bd,0x0003003e,0x00000398,0x00000399,0x00060039, + 0x0000004a,0x0000039a,0x0000007b,0x00000397,0x00000398,0x0003003e,0x00000393,0x0000039a, + 0x0004003d,0x00000029,0x0000039c,0x000000ba,0x0004007c,0x0000002e,0x0000039d,0x0000039c, + 0x0004006f,0x00000053,0x0000039e,0x0000039d,0x0003003e,0x0000039f,0x0000039e,0x0004003d, + 0x00000006,0x000003a1,0x000000bd,0x0003003e,0x000003a0,0x000003a1,0x00060039,0x0000004a, + 0x000003a2,0x0000007b,0x0000039f,0x000003a0,0x0003003e,0x0000039b,0x000003a2,0x0004003d, + 0x00000029,0x000003a4,0x000000bb,0x0004007c,0x0000002e,0x000003a5,0x000003a4,0x0004006f, + 0x00000053,0x000003a6,0x000003a5,0x0003003e,0x000003a7,0x000003a6,0x0004003d,0x00000006, + 0x000003a9,0x000000bd,0x0003003e,0x000003a8,0x000003a9,0x00060039,0x0000004a,0x000003aa, + 0x0000007b,0x000003a7,0x000003a8,0x0003003e,0x000003a3,0x000003aa,0x0004003d,0x00000029, + 0x000003ac,0x000000bc,0x0004007c,0x0000002e,0x000003ad,0x000003ac,0x0004006f,0x00000053, + 0x000003ae,0x000003ad,0x0003003e,0x000003af,0x000003ae,0x0004003d,0x00000006,0x000003b1, + 0x000000bd,0x0003003e,0x000003b0,0x000003b1,0x00060039,0x0000004a,0x000003b2,0x0000007b, + 0x000003af,0x000003b0,0x0003003e,0x000003ab,0x000003b2,0x0004003d,0x0000004a,0x000003b4, + 0x00000393,0x0003003e,0x000003b3,0x000003b4,0x0004003d,0x0000004a,0x000003b6,0x0000039b, + 0x0003003e,0x000003b5,0x000003b6,0x0004003d,0x0000004a,0x000003b8,0x000003a3,0x0003003e, + 0x000003b7,0x000003b8,0x0004003d,0x0000004a,0x000003ba,0x000003ab,0x0003003e,0x000003b9, + 0x000003ba,0x00080039,0x0000004a,0x000003bb,0x00000087,0x000003b3,0x000003b5,0x000003b7, + 0x000003b9,0x000200fe,0x000003bb,0x00010038,0x00050036,0x0000004a,0x000000c2,0x00000000, + 0x000000b4,0x00030037,0x000000a4,0x000000c0,0x00030037,0x00000007,0x000000c1,0x000200f8, + 0x000000c3,0x0004003b,0x000000a4,0x000003c6,0x00000007,0x0004003b,0x000000a4,0x000003c7, + 0x00000007,0x0004003b,0x000000a4,0x000003c8,0x00000007,0x0004003b,0x000000a4,0x000003c9, + 0x00000007,0x0004003b,0x00000007,0x000003ca,0x00000007,0x0004003d,0x00000029,0x000003be, + 0x000000c0,0x00050080,0x00000029,0x000003bf,0x000003be,0x0000037f,0x0004003d,0x00000029, + 0x000003c0,0x000000c0,0x00050080,0x00000029,0x000003c1,0x000003c0,0x00000382,0x0004003d, + 0x00000029,0x000003c2,0x000000c0,0x00050080,0x00000029,0x000003c3,0x000003c2,0x00000385, + 0x0004003d,0x00000029,0x000003c4,0x000000c0,0x00050080,0x00000029,0x000003c5,0x000003c4, + 0x00000388,0x0003003e,0x000003c6,0x000003bf,0x0003003e,0x000003c7,0x000003c1,0x0003003e, + 0x000003c8,0x000003c3,0x0003003e,0x000003c9,0x000003c5,0x0004003d,0x00000006,0x000003cb, + 0x000000c1,0x0003003e,0x000003ca,0x000003cb,0x00090039,0x0000004a,0x000003cc,0x000000be, + 0x000003c6,0x000003c7,0x000003c8,0x000003c9,0x000003ca,0x000200fe,0x000003cc,0x00010038, + 0x00050036,0x00000002,0x000000cb,0x00000000,0x000000c4,0x00030037,0x00000007,0x000000c5, + 0x00030037,0x00000007,0x000000c6,0x00030037,0x000000a4,0x000000c7,0x00030037,0x00000007, + 0x000000c8,0x00030037,0x00000007,0x000000c9,0x00030037,0x00000007,0x000000ca,0x000200f8, + 0x000000cc,0x0004003b,0x0000003d,0x000003cf,0x00000007,0x0004003b,0x0000003d,0x000003dd, + 0x00000007,0x0004003b,0x000003ea,0x000003eb,0x00000007,0x0004003b,0x000000a4,0x000003ee, + 0x00000007,0x0004003b,0x00000007,0x000003ef,0x00000007,0x0004003b,0x0000003d,0x000003f3, + 0x00000007,0x0004003b,0x0000004e,0x000003f5,0x00000007,0x0004003b,0x00000007,0x000003f8, + 0x00000007,0x0004003b,0x00000007,0x000003f9,0x00000007,0x0004003b,0x000000a4,0x00000416, + 0x00000007,0x0004003b,0x00000007,0x00000417,0x00000007,0x0004003b,0x0000003d,0x0000041b, + 0x00000007,0x0004003b,0x0000004e,0x0000041d,0x00000007,0x0004003b,0x00000007,0x00000420, + 0x00000007,0x0004003b,0x00000007,0x00000421,0x00000007,0x0004003b,0x000000a4,0x0000043e, + 0x00000007,0x0004003b,0x00000007,0x0000043f,0x00000007,0x0004003b,0x0000003d,0x00000443, + 0x00000007,0x0004003b,0x0000004e,0x00000445,0x00000007,0x0004003b,0x00000007,0x00000448, + 0x00000007,0x0004003b,0x00000007,0x00000449,0x00000007,0x0004003b,0x000000a4,0x00000469, + 0x00000007,0x0004003b,0x00000007,0x0000046a,0x00000007,0x0004003b,0x0000003d,0x0000046e, + 0x00000007,0x0004003b,0x0000004e,0x00000470,0x00000007,0x0004003b,0x00000007,0x00000473, + 0x00000007,0x0004003b,0x00000007,0x00000474,0x00000007,0x0004003b,0x00000007,0x0000047c, + 0x00000007,0x0004003b,0x00000007,0x00000485,0x00000007,0x0004003b,0x00000007,0x00000487, + 0x00000007,0x0004003b,0x0000004e,0x00000489,0x00000007,0x0004003b,0x000000a4,0x000004af, + 0x00000007,0x0004003b,0x000000a4,0x000004b0,0x00000007,0x0004003b,0x000000a4,0x000004b1, + 0x00000007,0x0004003b,0x000000a4,0x000004b2,0x00000007,0x0004003b,0x0000003d,0x000004c9, + 0x00000007,0x0004003b,0x0000004e,0x000004ca,0x00000007,0x0004003b,0x00000007,0x000004cd, + 0x00000007,0x0004003b,0x00000007,0x000004ce,0x00000007,0x0004003b,0x00000007,0x000004dc, + 0x00000007,0x0004003b,0x00000007,0x000004dd,0x00000007,0x0004003b,0x0000004e,0x000004de, + 0x00000007,0x0004003b,0x00000007,0x000004e6,0x00000007,0x0004003b,0x00000007,0x000004e7, + 0x00000007,0x0004003b,0x0000004e,0x000004e8,0x00000007,0x0004003b,0x00000007,0x000004f0, + 0x00000007,0x0004003b,0x00000007,0x000004f1,0x00000007,0x0004003b,0x0000004e,0x000004f2, + 0x00000007,0x0004003b,0x00000007,0x000004fa,0x00000007,0x0004003b,0x00000007,0x000004fb, + 0x00000007,0x0004003b,0x0000004e,0x000004fc,0x00000007,0x0004003d,0x00000029,0x000003d0, + 0x000000c7,0x00050050,0x00000029,0x000003d2,0x000003d1,0x000003d1,0x00050084,0x00000029, + 0x000003d3,0x000003d0,0x000003d2,0x0004007c,0x0000002e,0x000003d4,0x000003d3,0x0004003d, + 0x00000006,0x000003d5,0x000000c5,0x00050084,0x00000006,0x000003d6,0x000003d5,0x00000141, + 0x0004007c,0x00000013,0x000003d7,0x000003d6,0x0004003d,0x00000006,0x000003d8,0x000000c6, + 0x00050084,0x00000006,0x000003d9,0x000003d8,0x00000141,0x0004007c,0x00000013,0x000003da, + 0x000003d9,0x00050050,0x0000002e,0x000003db,0x000003d7,0x000003da,0x00050080,0x0000002e, + 0x000003dc,0x000003d4,0x000003db,0x0003003e,0x000003cf,0x000003dc,0x0004003d,0x00000029, + 0x000003de,0x000000c7,0x00050050,0x00000029,0x000003e0,0x000003df,0x000003df,0x00050084, + 0x00000029,0x000003e1,0x000003de,0x000003e0,0x0004007c,0x0000002e,0x000003e2,0x000003e1, + 0x0004003d,0x00000006,0x000003e3,0x000000c5,0x0004007c,0x00000013,0x000003e4,0x000003e3, + 0x0004003d,0x00000006,0x000003e5,0x000000c6,0x0004007c,0x00000013,0x000003e6,0x000003e5, + 0x00050050,0x0000002e,0x000003e7,0x000003e4,0x000003e6,0x00050080,0x0000002e,0x000003e8, + 0x000003e2,0x000003e7,0x0003003e,0x000003dd,0x000003e8,0x0004003d,0x0000002e,0x000003ec, + 0x000003cf,0x0004007c,0x00000029,0x000003ed,0x000003ec,0x0003003e,0x000003ee,0x000003ed, + 0x0004003d,0x00000006,0x000003f0,0x000000ca,0x0003003e,0x000003ef,0x000003f0,0x00060039, + 0x0000004a,0x000003f1,0x000000c2,0x000003ee,0x000003ef,0x00050041,0x0000004e,0x000003f2, + 0x000003eb,0x00000127,0x0003003e,0x000003f2,0x000003f1,0x0004003d,0x0000002e,0x000003f4, + 0x000003dd,0x0003003e,0x000003f3,0x000003f4,0x00050041,0x0000004e,0x000003f6,0x000003eb, + 0x00000127,0x0004003d,0x0000004a,0x000003f7,0x000003f6,0x0003003e,0x000003f5,0x000003f7, + 0x0003003e,0x000003f8,0x00000186,0x0004003d,0x00000006,0x000003fa,0x000000ca,0x0003003e, + 0x000003f9,0x000003fa,0x00080039,0x00000002,0x000003fb,0x0000008e,0x000003f3,0x000003f5, + 0x000003f8,0x000003f9,0x0004003d,0x00000029,0x000003fc,0x000000c7,0x00050050,0x00000029, + 0x000003fd,0x000003d1,0x000003d1,0x00050084,0x00000029,0x000003fe,0x000003fc,0x000003fd, + 0x0004007c,0x0000002e,0x000003ff,0x000003fe,0x0004003d,0x00000006,0x00000400,0x000000c5, + 0x00050084,0x00000006,0x00000401,0x00000400,0x00000141,0x00050080,0x00000006,0x00000402, + 0x00000401,0x000003df,0x0004007c,0x00000013,0x00000403,0x00000402,0x0004003d,0x00000006, + 0x00000404,0x000000c6,0x00050084,0x00000006,0x00000405,0x00000404,0x00000141,0x0004007c, + 0x00000013,0x00000406,0x00000405,0x00050050,0x0000002e,0x00000407,0x00000403,0x00000406, + 0x00050080,0x0000002e,0x00000408,0x000003ff,0x00000407,0x0003003e,0x000003cf,0x00000408, + 0x0004003d,0x00000029,0x00000409,0x000000c7,0x00050050,0x00000029,0x0000040a,0x000003df, + 0x000003df,0x00050084,0x00000029,0x0000040b,0x00000409,0x0000040a,0x0004007c,0x0000002e, + 0x0000040c,0x0000040b,0x0004003d,0x00000006,0x0000040d,0x000000c5,0x00050080,0x00000006, + 0x0000040e,0x0000040d,0x000002ec,0x0004007c,0x00000013,0x0000040f,0x0000040e,0x0004003d, + 0x00000006,0x00000410,0x000000c6,0x0004007c,0x00000013,0x00000411,0x00000410,0x00050050, + 0x0000002e,0x00000412,0x0000040f,0x00000411,0x00050080,0x0000002e,0x00000413,0x0000040c, + 0x00000412,0x0003003e,0x000003dd,0x00000413,0x0004003d,0x0000002e,0x00000414,0x000003cf, + 0x0004007c,0x00000029,0x00000415,0x00000414,0x0003003e,0x00000416,0x00000415,0x0004003d, + 0x00000006,0x00000418,0x000000ca,0x0003003e,0x00000417,0x00000418,0x00060039,0x0000004a, + 0x00000419,0x000000c2,0x00000416,0x00000417,0x00050041,0x0000004e,0x0000041a,0x000003eb, + 0x00000175,0x0003003e,0x0000041a,0x00000419,0x0004003d,0x0000002e,0x0000041c,0x000003dd, + 0x0003003e,0x0000041b,0x0000041c,0x00050041,0x0000004e,0x0000041e,0x000003eb,0x00000175, + 0x0004003d,0x0000004a,0x0000041f,0x0000041e,0x0003003e,0x0000041d,0x0000041f,0x0003003e, + 0x00000420,0x00000186,0x0004003d,0x00000006,0x00000422,0x000000ca,0x0003003e,0x00000421, + 0x00000422,0x00080039,0x00000002,0x00000423,0x0000008e,0x0000041b,0x0000041d,0x00000420, + 0x00000421,0x0004003d,0x00000029,0x00000424,0x000000c7,0x00050050,0x00000029,0x00000425, + 0x000003d1,0x000003d1,0x00050084,0x00000029,0x00000426,0x00000424,0x00000425,0x0004007c, + 0x0000002e,0x00000427,0x00000426,0x0004003d,0x00000006,0x00000428,0x000000c5,0x00050084, + 0x00000006,0x00000429,0x00000428,0x00000141,0x0004007c,0x00000013,0x0000042a,0x00000429, + 0x0004003d,0x00000006,0x0000042b,0x000000c6,0x00050084,0x00000006,0x0000042c,0x0000042b, + 0x00000141,0x00050080,0x00000006,0x0000042d,0x0000042c,0x000003df,0x0004007c,0x00000013, + 0x0000042e,0x0000042d,0x00050050,0x0000002e,0x0000042f,0x0000042a,0x0000042e,0x00050080, + 0x0000002e,0x00000430,0x00000427,0x0000042f,0x0003003e,0x000003cf,0x00000430,0x0004003d, + 0x00000029,0x00000431,0x000000c7,0x00050050,0x00000029,0x00000432,0x000003df,0x000003df, + 0x00050084,0x00000029,0x00000433,0x00000431,0x00000432,0x0004007c,0x0000002e,0x00000434, + 0x00000433,0x0004003d,0x00000006,0x00000435,0x000000c5,0x0004007c,0x00000013,0x00000436, + 0x00000435,0x0004003d,0x00000006,0x00000437,0x000000c6,0x00050080,0x00000006,0x00000438, + 0x00000437,0x000002ec,0x0004007c,0x00000013,0x00000439,0x00000438,0x00050050,0x0000002e, + 0x0000043a,0x00000436,0x00000439,0x00050080,0x0000002e,0x0000043b,0x00000434,0x0000043a, + 0x0003003e,0x000003dd,0x0000043b,0x0004003d,0x0000002e,0x0000043c,0x000003cf,0x0004007c, + 0x00000029,0x0000043d,0x0000043c,0x0003003e,0x0000043e,0x0000043d,0x0004003d,0x00000006, + 0x00000440,0x000000ca,0x0003003e,0x0000043f,0x00000440,0x00060039,0x0000004a,0x00000441, + 0x000000c2,0x0000043e,0x0000043f,0x00050041,0x0000004e,0x00000442,0x000003eb,0x0000017a, + 0x0003003e,0x00000442,0x00000441,0x0004003d,0x0000002e,0x00000444,0x000003dd,0x0003003e, + 0x00000443,0x00000444,0x00050041,0x0000004e,0x00000446,0x000003eb,0x0000017a,0x0004003d, + 0x0000004a,0x00000447,0x00000446,0x0003003e,0x00000445,0x00000447,0x0003003e,0x00000448, + 0x00000186,0x0004003d,0x00000006,0x0000044a,0x000000ca,0x0003003e,0x00000449,0x0000044a, + 0x00080039,0x00000002,0x0000044b,0x0000008e,0x00000443,0x00000445,0x00000448,0x00000449, + 0x0004003d,0x00000029,0x0000044c,0x000000c7,0x00050050,0x00000029,0x0000044d,0x000003d1, + 0x000003d1,0x00050084,0x00000029,0x0000044e,0x0000044c,0x0000044d,0x0004007c,0x0000002e, + 0x0000044f,0x0000044e,0x0004003d,0x00000006,0x00000450,0x000000c5,0x00050084,0x00000006, + 0x00000451,0x00000450,0x00000141,0x00050080,0x00000006,0x00000452,0x00000451,0x000003df, + 0x0004007c,0x00000013,0x00000453,0x00000452,0x0004003d,0x00000006,0x00000454,0x000000c6, + 0x00050084,0x00000006,0x00000455,0x00000454,0x00000141,0x00050080,0x00000006,0x00000456, + 0x00000455,0x000003df,0x0004007c,0x00000013,0x00000457,0x00000456,0x00050050,0x0000002e, + 0x00000458,0x00000453,0x00000457,0x00050080,0x0000002e,0x00000459,0x0000044f,0x00000458, + 0x0003003e,0x000003cf,0x00000459,0x0004003d,0x00000029,0x0000045a,0x000000c7,0x00050050, + 0x00000029,0x0000045b,0x000003df,0x000003df,0x00050084,0x00000029,0x0000045c,0x0000045a, + 0x0000045b,0x0004007c,0x0000002e,0x0000045d,0x0000045c,0x0004003d,0x00000006,0x0000045e, + 0x000000c5,0x00050080,0x00000006,0x0000045f,0x0000045e,0x000002ec,0x0004007c,0x00000013, + 0x00000460,0x0000045f,0x0004003d,0x00000006,0x00000461,0x000000c6,0x00050080,0x00000006, + 0x00000462,0x00000461,0x000002ec,0x0004007c,0x00000013,0x00000463,0x00000462,0x00050050, + 0x0000002e,0x00000464,0x00000460,0x00000463,0x00050080,0x0000002e,0x00000465,0x0000045d, + 0x00000464,0x0003003e,0x000003dd,0x00000465,0x0004003d,0x0000002e,0x00000467,0x000003cf, + 0x0004007c,0x00000029,0x00000468,0x00000467,0x0003003e,0x00000469,0x00000468,0x0004003d, + 0x00000006,0x0000046b,0x000000ca,0x0003003e,0x0000046a,0x0000046b,0x00060039,0x0000004a, + 0x0000046c,0x000000c2,0x00000469,0x0000046a,0x00050041,0x0000004e,0x0000046d,0x000003eb, + 0x00000466,0x0003003e,0x0000046d,0x0000046c,0x0004003d,0x0000002e,0x0000046f,0x000003dd, + 0x0003003e,0x0000046e,0x0000046f,0x00050041,0x0000004e,0x00000471,0x000003eb,0x00000466, + 0x0004003d,0x0000004a,0x00000472,0x00000471,0x0003003e,0x00000470,0x00000472,0x0003003e, + 0x00000473,0x00000186,0x0004003d,0x00000006,0x00000475,0x000000ca,0x0003003e,0x00000474, + 0x00000475,0x00080039,0x00000002,0x00000476,0x0000008e,0x0000046e,0x00000470,0x00000473, + 0x00000474,0x0004003d,0x00000006,0x00000477,0x000000c9,0x000500b2,0x0000009d,0x00000478, + 0x00000477,0x00000148,0x000300f7,0x0000047a,0x00000000,0x000400fa,0x00000478,0x00000479, + 0x0000047a,0x000200f8,0x00000479,0x000100fd,0x000200f8,0x0000047a,0x0003003e,0x0000047c, + 0x00000186,0x000200f9,0x0000047d,0x000200f8,0x0000047d,0x000400f6,0x0000047f,0x00000480, + 0x00000000,0x000200f9,0x00000481,0x000200f8,0x00000481,0x0004003d,0x00000006,0x00000482, + 0x0000047c,0x000500b0,0x0000009d,0x00000483,0x00000482,0x000001ce,0x000400fa,0x00000483, + 0x0000047e,0x0000047f,0x000200f8,0x0000047e,0x0004003d,0x00000006,0x00000484,0x0000047c, + 0x0004003d,0x00000006,0x00000486,0x000000c5,0x0003003e,0x00000485,0x00000486,0x0004003d, + 0x00000006,0x00000488,0x000000c6,0x0003003e,0x00000487,0x00000488,0x00050041,0x0000004e, + 0x0000048a,0x000003eb,0x00000484,0x0004003d,0x0000004a,0x0000048b,0x0000048a,0x0003003e, + 0x00000489,0x0000048b,0x00070039,0x00000002,0x0000048c,0x00000099,0x00000485,0x00000487, + 0x00000489,0x00040039,0x00000002,0x0000048d,0x0000009b,0x0004003d,0x00000006,0x0000048e, + 0x000000c8,0x000500b0,0x0000009d,0x0000048f,0x0000048e,0x000003d1,0x000300f7,0x00000491, + 0x00000000,0x000400fa,0x0000048f,0x00000490,0x00000491,0x000200f8,0x00000490,0x0004003d, + 0x00000006,0x00000492,0x0000047c,0x0004003d,0x00000006,0x00000493,0x000000c5,0x00050084, + 0x00000006,0x00000494,0x00000493,0x00000141,0x00050080,0x00000006,0x00000495,0x00000494, + 0x00000186,0x0004003d,0x00000006,0x00000496,0x000000c6,0x00050084,0x00000006,0x00000497, + 0x00000496,0x00000141,0x00050080,0x00000006,0x00000498,0x00000497,0x00000186,0x00050050, + 0x00000029,0x00000499,0x00000495,0x00000498,0x0004003d,0x00000006,0x0000049a,0x000000c5, + 0x00050084,0x00000006,0x0000049b,0x0000049a,0x00000141,0x00050080,0x00000006,0x0000049c, + 0x0000049b,0x00000148,0x0004003d,0x00000006,0x0000049d,0x000000c6,0x00050084,0x00000006, + 0x0000049e,0x0000049d,0x00000141,0x00050080,0x00000006,0x0000049f,0x0000049e,0x00000186, + 0x00050050,0x00000029,0x000004a0,0x0000049c,0x0000049f,0x0004003d,0x00000006,0x000004a1, + 0x000000c5,0x00050084,0x00000006,0x000004a2,0x000004a1,0x00000141,0x00050080,0x00000006, + 0x000004a3,0x000004a2,0x00000186,0x0004003d,0x00000006,0x000004a4,0x000000c6,0x00050084, + 0x00000006,0x000004a5,0x000004a4,0x00000141,0x00050080,0x00000006,0x000004a6,0x000004a5, + 0x00000148,0x00050050,0x00000029,0x000004a7,0x000004a3,0x000004a6,0x0004003d,0x00000006, + 0x000004a8,0x000000c5,0x00050084,0x00000006,0x000004a9,0x000004a8,0x00000141,0x00050080, + 0x00000006,0x000004aa,0x000004a9,0x00000148,0x0004003d,0x00000006,0x000004ab,0x000000c6, + 0x00050084,0x00000006,0x000004ac,0x000004ab,0x00000141,0x00050080,0x00000006,0x000004ad, + 0x000004ac,0x00000148,0x00050050,0x00000029,0x000004ae,0x000004aa,0x000004ad,0x0003003e, + 0x000004af,0x00000499,0x0003003e,0x000004b0,0x000004a0,0x0003003e,0x000004b1,0x000004a7, + 0x0003003e,0x000004b2,0x000004ae,0x00080039,0x0000004a,0x000004b3,0x000000aa,0x000004af, + 0x000004b0,0x000004b1,0x000004b2,0x00050041,0x0000004e,0x000004b4,0x000003eb,0x00000492, + 0x0003003e,0x000004b4,0x000004b3,0x0004003d,0x00000029,0x000004b5,0x000000c7,0x00050050, + 0x00000029,0x000004b6,0x000002ec,0x000002ec,0x00050084,0x00000029,0x000004b7,0x000004b5, + 0x000004b6,0x0004007c,0x0000002e,0x000004b8,0x000004b7,0x0004003d,0x00000006,0x000004b9, + 0x000000c5,0x0004003d,0x00000006,0x000004ba,0x0000047c,0x00050089,0x00000006,0x000004bb, + 0x000004ba,0x00000141,0x00050084,0x00000006,0x000004bd,0x000004bb,0x000004bc,0x00050080, + 0x00000006,0x000004be,0x000004b9,0x000004bd,0x0004007c,0x00000013,0x000004bf,0x000004be, + 0x0004003d,0x00000006,0x000004c0,0x000000c6,0x0004003d,0x00000006,0x000004c1,0x0000047c, + 0x00050086,0x00000006,0x000004c2,0x000004c1,0x00000141,0x00050084,0x00000006,0x000004c3, + 0x000004c2,0x000004bc,0x00050080,0x00000006,0x000004c4,0x000004c0,0x000004c3,0x0004007c, + 0x00000013,0x000004c5,0x000004c4,0x00050050,0x0000002e,0x000004c6,0x000004bf,0x000004c5, + 0x00050080,0x0000002e,0x000004c7,0x000004b8,0x000004c6,0x0004003d,0x00000006,0x000004c8, + 0x0000047c,0x0003003e,0x000004c9,0x000004c7,0x00050041,0x0000004e,0x000004cb,0x000003eb, + 0x000004c8,0x0004003d,0x0000004a,0x000004cc,0x000004cb,0x0003003e,0x000004ca,0x000004cc, + 0x0003003e,0x000004cd,0x00000148,0x0004003d,0x00000006,0x000004cf,0x000000ca,0x0003003e, + 0x000004ce,0x000004cf,0x00080039,0x00000002,0x000004d0,0x0000008e,0x000004c9,0x000004ca, + 0x000004cd,0x000004ce,0x000200f9,0x00000491,0x000200f8,0x00000491,0x00040039,0x00000002, + 0x000004d1,0x0000009b,0x000200f9,0x00000480,0x000200f8,0x00000480,0x0004003d,0x00000006, + 0x000004d2,0x0000047c,0x00050080,0x00000006,0x000004d3,0x000004d2,0x00000175,0x0003003e, + 0x0000047c,0x000004d3,0x000200f9,0x0000047d,0x000200f8,0x0000047f,0x0004003d,0x00000006, + 0x000004d4,0x000000c8,0x000500b0,0x0000009d,0x000004d5,0x000004d4,0x000003d1,0x000300f7, + 0x000004d7,0x00000000,0x000400fa,0x000004d5,0x000004d6,0x000004d7,0x000200f8,0x000004d6, + 0x0004003d,0x00000006,0x000004d8,0x000000c5,0x00050080,0x00000006,0x000004d9,0x000004d8, + 0x00000186,0x0004003d,0x00000006,0x000004da,0x000000c6,0x00050080,0x00000006,0x000004db, + 0x000004da,0x00000186,0x0003003e,0x000004dc,0x000004d9,0x0003003e,0x000004dd,0x000004db, + 0x00050041,0x0000004e,0x000004df,0x000003eb,0x00000127,0x0004003d,0x0000004a,0x000004e0, + 0x000004df,0x0003003e,0x000004de,0x000004e0,0x00070039,0x00000002,0x000004e1,0x00000099, + 0x000004dc,0x000004dd,0x000004de,0x0004003d,0x00000006,0x000004e2,0x000000c5,0x00050080, + 0x00000006,0x000004e3,0x000004e2,0x000004bc,0x0004003d,0x00000006,0x000004e4,0x000000c6, + 0x00050080,0x00000006,0x000004e5,0x000004e4,0x00000186,0x0003003e,0x000004e6,0x000004e3, + 0x0003003e,0x000004e7,0x000004e5,0x00050041,0x0000004e,0x000004e9,0x000003eb,0x00000175, + 0x0004003d,0x0000004a,0x000004ea,0x000004e9,0x0003003e,0x000004e8,0x000004ea,0x00070039, + 0x00000002,0x000004eb,0x00000099,0x000004e6,0x000004e7,0x000004e8,0x0004003d,0x00000006, + 0x000004ec,0x000000c5,0x00050080,0x00000006,0x000004ed,0x000004ec,0x00000186,0x0004003d, + 0x00000006,0x000004ee,0x000000c6,0x00050080,0x00000006,0x000004ef,0x000004ee,0x000004bc, + 0x0003003e,0x000004f0,0x000004ed,0x0003003e,0x000004f1,0x000004ef,0x00050041,0x0000004e, + 0x000004f3,0x000003eb,0x0000017a,0x0004003d,0x0000004a,0x000004f4,0x000004f3,0x0003003e, + 0x000004f2,0x000004f4,0x00070039,0x00000002,0x000004f5,0x00000099,0x000004f0,0x000004f1, + 0x000004f2,0x0004003d,0x00000006,0x000004f6,0x000000c5,0x00050080,0x00000006,0x000004f7, + 0x000004f6,0x000004bc,0x0004003d,0x00000006,0x000004f8,0x000000c6,0x00050080,0x00000006, + 0x000004f9,0x000004f8,0x000004bc,0x0003003e,0x000004fa,0x000004f7,0x0003003e,0x000004fb, + 0x000004f9,0x00050041,0x0000004e,0x000004fd,0x000003eb,0x00000466,0x0004003d,0x0000004a, + 0x000004fe,0x000004fd,0x0003003e,0x000004fc,0x000004fe,0x00070039,0x00000002,0x000004ff, + 0x00000099,0x000004fa,0x000004fb,0x000004fc,0x000200f9,0x000004d7,0x000200f8,0x000004d7, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d3,0x00000000,0x000000c4,0x00030037, + 0x00000007,0x000000cd,0x00030037,0x00000007,0x000000ce,0x00030037,0x000000a4,0x000000cf, + 0x00030037,0x00000007,0x000000d0,0x00030037,0x00000007,0x000000d1,0x00030037,0x00000007, + 0x000000d2,0x000200f8,0x000000d4,0x0004003b,0x00000007,0x00000500,0x00000007,0x0004003b, + 0x00000007,0x00000502,0x00000007,0x0004003b,0x000000a4,0x00000504,0x00000007,0x0004003b, + 0x00000007,0x00000506,0x00000007,0x0004003b,0x00000007,0x00000508,0x00000007,0x0004003b, + 0x00000007,0x0000050a,0x00000007,0x0004003d,0x00000006,0x00000501,0x000000cd,0x0003003e, + 0x00000500,0x00000501,0x0004003d,0x00000006,0x00000503,0x000000ce,0x0003003e,0x00000502, + 0x00000503,0x0004003d,0x00000029,0x00000505,0x000000cf,0x0003003e,0x00000504,0x00000505, + 0x0004003d,0x00000006,0x00000507,0x000000d0,0x0003003e,0x00000506,0x00000507,0x0004003d, + 0x00000006,0x00000509,0x000000d1,0x0003003e,0x00000508,0x00000509,0x0004003d,0x00000006, + 0x0000050b,0x000000d2,0x0003003e,0x0000050a,0x0000050b,0x000a0039,0x00000002,0x0000050c, + 0x000000cb,0x00000500,0x00000502,0x00000504,0x00000506,0x00000508,0x0000050a,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000db,0x00000000,0x000000c4,0x00030037,0x00000007, + 0x000000d5,0x00030037,0x00000007,0x000000d6,0x00030037,0x000000a4,0x000000d7,0x00030037, + 0x00000007,0x000000d8,0x00030037,0x00000007,0x000000d9,0x00030037,0x00000007,0x000000da, + 0x000200f8,0x000000dc,0x0004003b,0x0000004e,0x00000511,0x00000007,0x0004003b,0x000000a4, + 0x0000052e,0x00000007,0x0004003b,0x000000a4,0x0000052f,0x00000007,0x0004003b,0x000000a4, + 0x00000530,0x00000007,0x0004003b,0x000000a4,0x00000531,0x00000007,0x0004003b,0x0000003d, + 0x0000053d,0x00000007,0x0004003b,0x0000004e,0x0000053e,0x00000007,0x0004003b,0x00000007, + 0x00000540,0x00000007,0x0004003b,0x00000007,0x00000542,0x00000007,0x0004003b,0x00000007, + 0x0000054c,0x00000007,0x0004003b,0x00000007,0x0000054d,0x00000007,0x0004003b,0x0000004e, + 0x0000054e,0x00000007,0x0004003d,0x00000006,0x0000050d,0x000000d8,0x000500b0,0x0000009d, + 0x0000050e,0x0000050d,0x000003d1,0x000300f7,0x00000510,0x00000000,0x000400fa,0x0000050e, + 0x0000050f,0x00000510,0x000200f8,0x0000050f,0x0004003d,0x00000006,0x00000512,0x000000d5, + 0x00050084,0x00000006,0x00000513,0x00000512,0x00000141,0x00050080,0x00000006,0x00000514, + 0x00000513,0x00000186,0x0004003d,0x00000006,0x00000515,0x000000d6,0x00050084,0x00000006, + 0x00000516,0x00000515,0x00000141,0x00050080,0x00000006,0x00000517,0x00000516,0x00000186, + 0x00050050,0x00000029,0x00000518,0x00000514,0x00000517,0x0004003d,0x00000006,0x00000519, + 0x000000d5,0x00050084,0x00000006,0x0000051a,0x00000519,0x00000141,0x00050080,0x00000006, + 0x0000051b,0x0000051a,0x00000148,0x0004003d,0x00000006,0x0000051c,0x000000d6,0x00050084, + 0x00000006,0x0000051d,0x0000051c,0x00000141,0x00050080,0x00000006,0x0000051e,0x0000051d, + 0x00000186,0x00050050,0x00000029,0x0000051f,0x0000051b,0x0000051e,0x0004003d,0x00000006, + 0x00000520,0x000000d5,0x00050084,0x00000006,0x00000521,0x00000520,0x00000141,0x00050080, + 0x00000006,0x00000522,0x00000521,0x00000186,0x0004003d,0x00000006,0x00000523,0x000000d6, + 0x00050084,0x00000006,0x00000524,0x00000523,0x00000141,0x00050080,0x00000006,0x00000525, + 0x00000524,0x00000148,0x00050050,0x00000029,0x00000526,0x00000522,0x00000525,0x0004003d, + 0x00000006,0x00000527,0x000000d5,0x00050084,0x00000006,0x00000528,0x00000527,0x00000141, + 0x00050080,0x00000006,0x00000529,0x00000528,0x00000148,0x0004003d,0x00000006,0x0000052a, + 0x000000d6,0x00050084,0x00000006,0x0000052b,0x0000052a,0x00000141,0x00050080,0x00000006, + 0x0000052c,0x0000052b,0x00000148,0x00050050,0x00000029,0x0000052d,0x00000529,0x0000052c, + 0x0003003e,0x0000052e,0x00000518,0x0003003e,0x0000052f,0x0000051f,0x0003003e,0x00000530, + 0x00000526,0x0003003e,0x00000531,0x0000052d,0x00080039,0x0000004a,0x00000532,0x000000aa, + 0x0000052e,0x0000052f,0x00000530,0x00000531,0x0003003e,0x00000511,0x00000532,0x0004003d, + 0x00000029,0x00000533,0x000000d7,0x00050050,0x00000029,0x00000534,0x000004bc,0x000004bc, + 0x00050084,0x00000029,0x00000535,0x00000533,0x00000534,0x0004007c,0x0000002e,0x00000536, + 0x00000535,0x0004003d,0x00000006,0x00000537,0x000000d5,0x0004007c,0x00000013,0x00000538, + 0x00000537,0x0004003d,0x00000006,0x00000539,0x000000d6,0x0004007c,0x00000013,0x0000053a, + 0x00000539,0x00050050,0x0000002e,0x0000053b,0x00000538,0x0000053a,0x00050080,0x0000002e, + 0x0000053c,0x00000536,0x0000053b,0x0003003e,0x0000053d,0x0000053c,0x0004003d,0x0000004a, + 0x0000053f,0x00000511,0x0003003e,0x0000053e,0x0000053f,0x0004003d,0x00000006,0x00000541, + 0x000000d9,0x0003003e,0x00000540,0x00000541,0x0004003d,0x00000006,0x00000543,0x000000da, + 0x0003003e,0x00000542,0x00000543,0x00080039,0x00000002,0x00000544,0x0000008e,0x0000053d, + 0x0000053e,0x00000540,0x00000542,0x0004003d,0x00000006,0x00000545,0x000000d5,0x00050084, + 0x00000006,0x00000546,0x00000545,0x00000141,0x0004003d,0x00000006,0x00000547,0x000000d6, + 0x00050089,0x00000006,0x00000548,0x00000547,0x00000141,0x00050080,0x00000006,0x00000549, + 0x00000546,0x00000548,0x0004003d,0x00000006,0x0000054a,0x000000d6,0x00050084,0x00000006, + 0x0000054b,0x0000054a,0x00000141,0x0003003e,0x0000054c,0x00000549,0x0003003e,0x0000054d, + 0x0000054b,0x0004003d,0x0000004a,0x0000054f,0x00000511,0x0003003e,0x0000054e,0x0000054f, + 0x00070039,0x00000002,0x00000550,0x00000099,0x0000054c,0x0000054d,0x0000054e,0x000200f9, + 0x00000510,0x000200f8,0x00000510,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000e3, + 0x00000000,0x000000c4,0x00030037,0x00000007,0x000000dd,0x00030037,0x00000007,0x000000de, + 0x00030037,0x000000a4,0x000000df,0x00030037,0x00000007,0x000000e0,0x00030037,0x00000007, + 0x000000e1,0x00030037,0x00000007,0x000000e2,0x000200f8,0x000000e4,0x0004003b,0x0000004e, + 0x00000555,0x00000007,0x0004003b,0x000000a4,0x00000576,0x00000007,0x0004003b,0x000000a4, + 0x00000577,0x00000007,0x0004003b,0x000000a4,0x00000578,0x00000007,0x0004003b,0x000000a4, + 0x00000579,0x00000007,0x0004003b,0x0000003d,0x00000585,0x00000007,0x0004003b,0x0000004e, + 0x00000586,0x00000007,0x0004003b,0x00000007,0x00000588,0x00000007,0x0004003b,0x00000007, + 0x0000058a,0x00000007,0x0004003b,0x00000007,0x00000593,0x00000007,0x0004003b,0x00000007, + 0x00000594,0x00000007,0x0004003b,0x0000004e,0x00000595,0x00000007,0x0004003d,0x00000006, + 0x00000551,0x000000e0,0x000500b0,0x0000009d,0x00000552,0x00000551,0x000002ec,0x000300f7, + 0x00000554,0x00000000,0x000400fa,0x00000552,0x00000553,0x00000554,0x000200f8,0x00000553, + 0x0004003d,0x00000006,0x00000556,0x000000dd,0x00050084,0x00000006,0x00000557,0x00000556, + 0x000001ce,0x00050080,0x00000006,0x00000558,0x00000557,0x00000186,0x00050080,0x00000006, + 0x00000559,0x00000558,0x00000186,0x0004003d,0x00000006,0x0000055a,0x000000de,0x00050084, + 0x00000006,0x0000055b,0x0000055a,0x000001ce,0x00050080,0x00000006,0x0000055c,0x0000055b, + 0x00000186,0x00050050,0x00000029,0x0000055d,0x00000559,0x0000055c,0x0004003d,0x00000006, + 0x0000055e,0x000000dd,0x00050084,0x00000006,0x0000055f,0x0000055e,0x000001ce,0x00050080, + 0x00000006,0x00000560,0x0000055f,0x00000141,0x00050080,0x00000006,0x00000561,0x00000560, + 0x00000186,0x0004003d,0x00000006,0x00000562,0x000000de,0x00050084,0x00000006,0x00000563, + 0x00000562,0x000001ce,0x00050080,0x00000006,0x00000564,0x00000563,0x00000186,0x00050050, + 0x00000029,0x00000565,0x00000561,0x00000564,0x0004003d,0x00000006,0x00000566,0x000000dd, + 0x00050084,0x00000006,0x00000567,0x00000566,0x000001ce,0x00050080,0x00000006,0x00000568, + 0x00000567,0x00000186,0x00050080,0x00000006,0x00000569,0x00000568,0x00000148,0x0004003d, + 0x00000006,0x0000056a,0x000000de,0x00050084,0x00000006,0x0000056b,0x0000056a,0x000001ce, + 0x00050080,0x00000006,0x0000056c,0x0000056b,0x00000141,0x00050050,0x00000029,0x0000056d, + 0x00000569,0x0000056c,0x0004003d,0x00000006,0x0000056e,0x000000dd,0x00050084,0x00000006, + 0x0000056f,0x0000056e,0x000001ce,0x00050080,0x00000006,0x00000570,0x0000056f,0x00000141, + 0x00050080,0x00000006,0x00000571,0x00000570,0x00000148,0x0004003d,0x00000006,0x00000572, + 0x000000de,0x00050084,0x00000006,0x00000573,0x00000572,0x000001ce,0x00050080,0x00000006, + 0x00000574,0x00000573,0x00000141,0x00050050,0x00000029,0x00000575,0x00000571,0x00000574, + 0x0003003e,0x00000576,0x0000055d,0x0003003e,0x00000577,0x00000565,0x0003003e,0x00000578, + 0x0000056d,0x0003003e,0x00000579,0x00000575,0x00080039,0x0000004a,0x0000057a,0x000000aa, + 0x00000576,0x00000577,0x00000578,0x00000579,0x0003003e,0x00000555,0x0000057a,0x0004003d, + 0x00000029,0x0000057b,0x000000df,0x00050050,0x00000029,0x0000057c,0x000001ce,0x000001ce, + 0x00050084,0x00000029,0x0000057d,0x0000057b,0x0000057c,0x0004007c,0x0000002e,0x0000057e, + 0x0000057d,0x0004003d,0x00000006,0x0000057f,0x000000dd,0x0004007c,0x00000013,0x00000580, + 0x0000057f,0x0004003d,0x00000006,0x00000581,0x000000de,0x0004007c,0x00000013,0x00000582, + 0x00000581,0x00050050,0x0000002e,0x00000583,0x00000580,0x00000582,0x00050080,0x0000002e, + 0x00000584,0x0000057e,0x00000583,0x0003003e,0x00000585,0x00000584,0x0004003d,0x0000004a, + 0x00000587,0x00000555,0x0003003e,0x00000586,0x00000587,0x0004003d,0x00000006,0x00000589, + 0x000000e1,0x0003003e,0x00000588,0x00000589,0x0004003d,0x00000006,0x0000058b,0x000000e2, + 0x0003003e,0x0000058a,0x0000058b,0x00080039,0x00000002,0x0000058c,0x0000008e,0x00000585, + 0x00000586,0x00000588,0x0000058a,0x0004003d,0x00000006,0x0000058d,0x000000dd,0x00050084, + 0x00000006,0x0000058e,0x0000058d,0x000001ce,0x0004003d,0x00000006,0x0000058f,0x000000de, + 0x00050080,0x00000006,0x00000590,0x0000058e,0x0000058f,0x0004003d,0x00000006,0x00000591, + 0x000000de,0x00050084,0x00000006,0x00000592,0x00000591,0x000001ce,0x0003003e,0x00000593, + 0x00000590,0x0003003e,0x00000594,0x00000592,0x0004003d,0x0000004a,0x00000596,0x00000555, + 0x0003003e,0x00000595,0x00000596,0x00070039,0x00000002,0x00000597,0x00000099,0x00000593, + 0x00000594,0x00000595,0x000200f9,0x00000554,0x000200f8,0x00000554,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000eb,0x00000000,0x000000c4,0x00030037,0x00000007,0x000000e5, + 0x00030037,0x00000007,0x000000e6,0x00030037,0x000000a4,0x000000e7,0x00030037,0x00000007, + 0x000000e8,0x00030037,0x00000007,0x000000e9,0x00030037,0x00000007,0x000000ea,0x000200f8, + 0x000000ec,0x0004003b,0x0000004e,0x0000059c,0x00000007,0x0004003b,0x000000a4,0x000005c9, + 0x00000007,0x0004003b,0x000000a4,0x000005ca,0x00000007,0x0004003b,0x000000a4,0x000005cb, + 0x00000007,0x0004003b,0x000000a4,0x000005cc,0x00000007,0x0004003b,0x0000003d,0x000005d8, + 0x00000007,0x0004003b,0x0000004e,0x000005d9,0x00000007,0x0004003b,0x00000007,0x000005db, + 0x00000007,0x0004003b,0x00000007,0x000005dd,0x00000007,0x0004003b,0x00000007,0x000005e4, + 0x00000007,0x0004003b,0x00000007,0x000005e5,0x00000007,0x0004003b,0x0000004e,0x000005e6, + 0x00000007,0x0004003d,0x00000006,0x00000598,0x000000e8,0x000500b0,0x0000009d,0x00000599, + 0x00000598,0x000001ce,0x000300f7,0x0000059b,0x00000000,0x000400fa,0x00000599,0x0000059a, + 0x0000059b,0x000200f8,0x0000059a,0x0004003d,0x00000006,0x0000059d,0x000000e5,0x00050084, + 0x00000006,0x0000059e,0x0000059d,0x000004bc,0x00050080,0x00000006,0x0000059f,0x0000059e, + 0x00000186,0x00050080,0x00000006,0x000005a0,0x0000059f,0x00000186,0x0004003d,0x00000006, + 0x000005a1,0x000000e6,0x00050084,0x00000006,0x000005a2,0x000005a1,0x00000141,0x00050080, + 0x00000006,0x000005a3,0x000005a0,0x000005a2,0x0004003d,0x00000006,0x000005a4,0x000000e6, + 0x00050084,0x00000006,0x000005a5,0x000005a4,0x000004bc,0x00050080,0x00000006,0x000005a6, + 0x000005a5,0x00000186,0x00050050,0x00000029,0x000005a7,0x000005a3,0x000005a6,0x0004003d, + 0x00000006,0x000005a8,0x000000e5,0x00050084,0x00000006,0x000005a9,0x000005a8,0x000004bc, + 0x00050080,0x00000006,0x000005aa,0x000005a9,0x000001ce,0x00050080,0x00000006,0x000005ab, + 0x000005aa,0x00000186,0x0004003d,0x00000006,0x000005ac,0x000000e6,0x00050084,0x00000006, + 0x000005ad,0x000005ac,0x00000141,0x00050080,0x00000006,0x000005ae,0x000005ab,0x000005ad, + 0x0004003d,0x00000006,0x000005af,0x000000e6,0x00050084,0x00000006,0x000005b0,0x000005af, + 0x000004bc,0x00050080,0x00000006,0x000005b1,0x000005b0,0x00000186,0x00050050,0x00000029, + 0x000005b2,0x000005ae,0x000005b1,0x0004003d,0x00000006,0x000005b3,0x000000e5,0x00050084, + 0x00000006,0x000005b4,0x000005b3,0x000004bc,0x00050080,0x00000006,0x000005b5,0x000005b4, + 0x00000186,0x00050080,0x00000006,0x000005b6,0x000005b5,0x00000148,0x0004003d,0x00000006, + 0x000005b7,0x000000e6,0x00050084,0x00000006,0x000005b8,0x000005b7,0x00000141,0x00050080, + 0x00000006,0x000005b9,0x000005b6,0x000005b8,0x0004003d,0x00000006,0x000005ba,0x000000e6, + 0x00050084,0x00000006,0x000005bb,0x000005ba,0x000004bc,0x00050080,0x00000006,0x000005bc, + 0x000005bb,0x000001ce,0x00050050,0x00000029,0x000005bd,0x000005b9,0x000005bc,0x0004003d, + 0x00000006,0x000005be,0x000000e5,0x00050084,0x00000006,0x000005bf,0x000005be,0x000004bc, + 0x00050080,0x00000006,0x000005c0,0x000005bf,0x000001ce,0x00050080,0x00000006,0x000005c1, + 0x000005c0,0x00000148,0x0004003d,0x00000006,0x000005c2,0x000000e6,0x00050084,0x00000006, + 0x000005c3,0x000005c2,0x00000141,0x00050080,0x00000006,0x000005c4,0x000005c1,0x000005c3, + 0x0004003d,0x00000006,0x000005c5,0x000000e6,0x00050084,0x00000006,0x000005c6,0x000005c5, + 0x000004bc,0x00050080,0x00000006,0x000005c7,0x000005c6,0x000001ce,0x00050050,0x00000029, + 0x000005c8,0x000005c4,0x000005c7,0x0003003e,0x000005c9,0x000005a7,0x0003003e,0x000005ca, + 0x000005b2,0x0003003e,0x000005cb,0x000005bd,0x0003003e,0x000005cc,0x000005c8,0x00080039, + 0x0000004a,0x000005cd,0x000000aa,0x000005c9,0x000005ca,0x000005cb,0x000005cc,0x0003003e, + 0x0000059c,0x000005cd,0x0004003d,0x00000029,0x000005ce,0x000000e7,0x00050050,0x00000029, + 0x000005cf,0x00000141,0x00000141,0x00050084,0x00000029,0x000005d0,0x000005ce,0x000005cf, + 0x0004007c,0x0000002e,0x000005d1,0x000005d0,0x0004003d,0x00000006,0x000005d2,0x000000e5, + 0x0004007c,0x00000013,0x000005d3,0x000005d2,0x0004003d,0x00000006,0x000005d4,0x000000e6, + 0x0004007c,0x00000013,0x000005d5,0x000005d4,0x00050050,0x0000002e,0x000005d6,0x000005d3, + 0x000005d5,0x00050080,0x0000002e,0x000005d7,0x000005d1,0x000005d6,0x0003003e,0x000005d8, + 0x000005d7,0x0004003d,0x0000004a,0x000005da,0x0000059c,0x0003003e,0x000005d9,0x000005da, + 0x0004003d,0x00000006,0x000005dc,0x000000e9,0x0003003e,0x000005db,0x000005dc,0x0004003d, + 0x00000006,0x000005de,0x000000ea,0x0003003e,0x000005dd,0x000005de,0x00080039,0x00000002, + 0x000005df,0x0000008e,0x000005d8,0x000005d9,0x000005db,0x000005dd,0x0004003d,0x00000006, + 0x000005e0,0x000000e5,0x0004003d,0x00000006,0x000005e1,0x000000e6,0x00050084,0x00000006, + 0x000005e2,0x000005e1,0x00000141,0x00050080,0x00000006,0x000005e3,0x000005e0,0x000005e2, + 0x0003003e,0x000005e4,0x000005e3,0x0003003e,0x000005e5,0x00000186,0x0004003d,0x0000004a, + 0x000005e7,0x0000059c,0x0003003e,0x000005e6,0x000005e7,0x00070039,0x00000002,0x000005e8, + 0x00000099,0x000005e4,0x000005e5,0x000005e6,0x000200f9,0x0000059b,0x000200f8,0x0000059b, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f2,0x00000000,0x000000ed,0x00030037, + 0x000000a4,0x000000ee,0x00030037,0x00000007,0x000000ef,0x00030037,0x00000007,0x000000f0, + 0x00030037,0x00000007,0x000000f1,0x000200f8,0x000000f3,0x0004003b,0x0000004e,0x000005ed, + 0x00000007,0x0004003b,0x000000a4,0x000005f0,0x00000007,0x0004003b,0x000000a4,0x000005f1, + 0x00000007,0x0004003b,0x000000a4,0x000005f2,0x00000007,0x0004003b,0x000000a4,0x000005f3, + 0x00000007,0x0004003b,0x0000003d,0x000005f7,0x00000007,0x0004003b,0x0000004e,0x000005f8, + 0x00000007,0x0004003b,0x00000007,0x000005fa,0x00000007,0x0004003b,0x00000007,0x000005fc, + 0x00000007,0x0004003d,0x00000006,0x000005e9,0x000000ef,0x000500b0,0x0000009d,0x000005ea, + 0x000005e9,0x00000148,0x000300f7,0x000005ec,0x00000000,0x000400fa,0x000005ea,0x000005eb, + 0x000005ec,0x000200f8,0x000005eb,0x0003003e,0x000005f0,0x0000037f,0x0003003e,0x000005f1, + 0x00000385,0x0003003e,0x000005f2,0x000005ee,0x0003003e,0x000005f3,0x000005ef,0x00080039, + 0x0000004a,0x000005f4,0x000000aa,0x000005f0,0x000005f1,0x000005f2,0x000005f3,0x0003003e, + 0x000005ed,0x000005f4,0x0004003d,0x00000029,0x000005f5,0x000000ee,0x0004007c,0x0000002e, + 0x000005f6,0x000005f5,0x0003003e,0x000005f7,0x000005f6,0x0004003d,0x0000004a,0x000005f9, + 0x000005ed,0x0003003e,0x000005f8,0x000005f9,0x0004003d,0x00000006,0x000005fb,0x000000f0, + 0x0003003e,0x000005fa,0x000005fb,0x0004003d,0x00000006,0x000005fd,0x000000f1,0x0003003e, + 0x000005fc,0x000005fd,0x00080039,0x00000002,0x000005fe,0x0000008e,0x000005f7,0x000005f8, + 0x000005fa,0x000005fc,0x000200f9,0x000005ec,0x000200f8,0x000005ec,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000f9,0x00000000,0x000000f4,0x00030037,0x00000007,0x000000f5, + 0x00030037,0x00000007,0x000000f6,0x00030037,0x00000007,0x000000f7,0x00030037,0x00000007, + 0x000000f8,0x000200f8,0x000000fa,0x0004003b,0x0000003d,0x000005ff,0x00000007,0x0004003b, + 0x0000003d,0x00000609,0x00000007,0x0004003b,0x0000004e,0x00000613,0x00000007,0x0004003b, + 0x000000a4,0x00000616,0x00000007,0x0004003b,0x00000007,0x00000617,0x00000007,0x0004003b, + 0x0000003d,0x0000061b,0x00000007,0x0004003b,0x0000004e,0x0000061d,0x00000007,0x0004003b, + 0x00000007,0x0000061f,0x00000007,0x0004003b,0x00000007,0x00000620,0x00000007,0x0004003b, + 0x0000004e,0x00000635,0x00000007,0x0004003b,0x000000a4,0x00000638,0x00000007,0x0004003b, + 0x00000007,0x00000639,0x00000007,0x0004003b,0x0000003d,0x0000063c,0x00000007,0x0004003b, + 0x0000004e,0x0000063e,0x00000007,0x0004003b,0x00000007,0x00000640,0x00000007,0x0004003b, + 0x00000007,0x00000641,0x00000007,0x0004003b,0x0000004e,0x00000656,0x00000007,0x0004003b, + 0x000000a4,0x00000659,0x00000007,0x0004003b,0x00000007,0x0000065a,0x00000007,0x0004003b, + 0x0000003d,0x0000065d,0x00000007,0x0004003b,0x0000004e,0x0000065f,0x00000007,0x0004003b, + 0x00000007,0x00000661,0x00000007,0x0004003b,0x00000007,0x00000662,0x00000007,0x0004003b, + 0x0000004e,0x00000677,0x00000007,0x0004003b,0x000000a4,0x0000067a,0x00000007,0x0004003b, + 0x00000007,0x0000067b,0x00000007,0x0004003b,0x0000003d,0x0000067e,0x00000007,0x0004003b, + 0x0000004e,0x00000680,0x00000007,0x0004003b,0x00000007,0x00000682,0x00000007,0x0004003b, + 0x00000007,0x00000683,0x00000007,0x0004003b,0x0000004e,0x0000068c,0x00000007,0x0004003b, + 0x0000004e,0x0000068d,0x00000007,0x0004003b,0x0000004e,0x0000068f,0x00000007,0x0004003b, + 0x0000004e,0x00000691,0x00000007,0x0004003b,0x0000004e,0x00000693,0x00000007,0x0004003b, + 0x0000003d,0x0000069b,0x00000007,0x0004003b,0x0000004e,0x0000069c,0x00000007,0x0004003b, + 0x00000007,0x0000069e,0x00000007,0x0004003b,0x00000007,0x0000069f,0x00000007,0x0004003b, + 0x00000007,0x000006a2,0x00000007,0x0004003b,0x00000007,0x000006a4,0x00000007,0x0004003b, + 0x0000004e,0x000006a6,0x00000007,0x0004003d,0x00000006,0x00000600,0x000000f5,0x00050084, + 0x00000006,0x00000601,0x00000600,0x000001ce,0x00050080,0x00000006,0x00000602,0x00000601, + 0x00000186,0x0004007c,0x00000013,0x00000603,0x00000602,0x0004003d,0x00000006,0x00000604, + 0x000000f6,0x00050084,0x00000006,0x00000605,0x00000604,0x000001ce,0x00050080,0x00000006, + 0x00000606,0x00000605,0x00000186,0x0004007c,0x00000013,0x00000607,0x00000606,0x00050050, + 0x0000002e,0x00000608,0x00000603,0x00000607,0x0003003e,0x000005ff,0x00000608,0x0004003d, + 0x00000006,0x0000060a,0x000000f5,0x00050084,0x00000006,0x0000060b,0x0000060a,0x00000141, + 0x00050080,0x00000006,0x0000060c,0x0000060b,0x00000186,0x0004007c,0x00000013,0x0000060d, + 0x0000060c,0x0004003d,0x00000006,0x0000060e,0x000000f6,0x00050084,0x00000006,0x0000060f, + 0x0000060e,0x00000141,0x00050080,0x00000006,0x00000610,0x0000060f,0x00000186,0x0004007c, + 0x00000013,0x00000611,0x00000610,0x00050050,0x0000002e,0x00000612,0x0000060d,0x00000611, + 0x0003003e,0x00000609,0x00000612,0x0004003d,0x0000002e,0x00000614,0x000005ff,0x0004007c, + 0x00000029,0x00000615,0x00000614,0x0003003e,0x00000616,0x00000615,0x0004003d,0x00000006, + 0x00000618,0x000000f8,0x0003003e,0x00000617,0x00000618,0x00060039,0x0000004a,0x00000619, + 0x000000b7,0x00000616,0x00000617,0x0003003e,0x00000613,0x00000619,0x0004003d,0x0000002e, + 0x0000061c,0x00000609,0x0003003e,0x0000061b,0x0000061c,0x0004003d,0x0000004a,0x0000061e, + 0x00000613,0x0003003e,0x0000061d,0x0000061e,0x0003003e,0x0000061f,0x0000061a,0x0004003d, + 0x00000006,0x00000621,0x000000f8,0x0003003e,0x00000620,0x00000621,0x00080039,0x00000002, + 0x00000622,0x0000008e,0x0000061b,0x0000061d,0x0000061f,0x00000620,0x0004003d,0x00000006, + 0x00000623,0x000000f5,0x00050084,0x00000006,0x00000624,0x00000623,0x000001ce,0x00050080, + 0x00000006,0x00000625,0x00000624,0x00000141,0x0004007c,0x00000013,0x00000626,0x00000625, + 0x0004003d,0x00000006,0x00000627,0x000000f6,0x00050084,0x00000006,0x00000628,0x00000627, + 0x000001ce,0x00050080,0x00000006,0x00000629,0x00000628,0x00000186,0x0004007c,0x00000013, + 0x0000062a,0x00000629,0x00050050,0x0000002e,0x0000062b,0x00000626,0x0000062a,0x0003003e, + 0x000005ff,0x0000062b,0x0004003d,0x00000006,0x0000062c,0x000000f5,0x00050084,0x00000006, + 0x0000062d,0x0000062c,0x00000141,0x00050080,0x00000006,0x0000062e,0x0000062d,0x00000148, + 0x0004007c,0x00000013,0x0000062f,0x0000062e,0x0004003d,0x00000006,0x00000630,0x000000f6, + 0x00050084,0x00000006,0x00000631,0x00000630,0x00000141,0x00050080,0x00000006,0x00000632, + 0x00000631,0x00000186,0x0004007c,0x00000013,0x00000633,0x00000632,0x00050050,0x0000002e, + 0x00000634,0x0000062f,0x00000633,0x0003003e,0x00000609,0x00000634,0x0004003d,0x0000002e, + 0x00000636,0x000005ff,0x0004007c,0x00000029,0x00000637,0x00000636,0x0003003e,0x00000638, + 0x00000637,0x0004003d,0x00000006,0x0000063a,0x000000f8,0x0003003e,0x00000639,0x0000063a, + 0x00060039,0x0000004a,0x0000063b,0x000000b7,0x00000638,0x00000639,0x0003003e,0x00000635, + 0x0000063b,0x0004003d,0x0000002e,0x0000063d,0x00000609,0x0003003e,0x0000063c,0x0000063d, + 0x0004003d,0x0000004a,0x0000063f,0x00000635,0x0003003e,0x0000063e,0x0000063f,0x0003003e, + 0x00000640,0x0000061a,0x0004003d,0x00000006,0x00000642,0x000000f8,0x0003003e,0x00000641, + 0x00000642,0x00080039,0x00000002,0x00000643,0x0000008e,0x0000063c,0x0000063e,0x00000640, + 0x00000641,0x0004003d,0x00000006,0x00000644,0x000000f5,0x00050084,0x00000006,0x00000645, + 0x00000644,0x000001ce,0x00050080,0x00000006,0x00000646,0x00000645,0x00000186,0x0004007c, + 0x00000013,0x00000647,0x00000646,0x0004003d,0x00000006,0x00000648,0x000000f6,0x00050084, + 0x00000006,0x00000649,0x00000648,0x000001ce,0x00050080,0x00000006,0x0000064a,0x00000649, + 0x00000141,0x0004007c,0x00000013,0x0000064b,0x0000064a,0x00050050,0x0000002e,0x0000064c, + 0x00000647,0x0000064b,0x0003003e,0x000005ff,0x0000064c,0x0004003d,0x00000006,0x0000064d, + 0x000000f5,0x00050084,0x00000006,0x0000064e,0x0000064d,0x00000141,0x00050080,0x00000006, + 0x0000064f,0x0000064e,0x00000186,0x0004007c,0x00000013,0x00000650,0x0000064f,0x0004003d, + 0x00000006,0x00000651,0x000000f6,0x00050084,0x00000006,0x00000652,0x00000651,0x00000141, + 0x00050080,0x00000006,0x00000653,0x00000652,0x00000148,0x0004007c,0x00000013,0x00000654, + 0x00000653,0x00050050,0x0000002e,0x00000655,0x00000650,0x00000654,0x0003003e,0x00000609, + 0x00000655,0x0004003d,0x0000002e,0x00000657,0x000005ff,0x0004007c,0x00000029,0x00000658, + 0x00000657,0x0003003e,0x00000659,0x00000658,0x0004003d,0x00000006,0x0000065b,0x000000f8, + 0x0003003e,0x0000065a,0x0000065b,0x00060039,0x0000004a,0x0000065c,0x000000b7,0x00000659, + 0x0000065a,0x0003003e,0x00000656,0x0000065c,0x0004003d,0x0000002e,0x0000065e,0x00000609, + 0x0003003e,0x0000065d,0x0000065e,0x0004003d,0x0000004a,0x00000660,0x00000656,0x0003003e, + 0x0000065f,0x00000660,0x0003003e,0x00000661,0x0000061a,0x0004003d,0x00000006,0x00000663, + 0x000000f8,0x0003003e,0x00000662,0x00000663,0x00080039,0x00000002,0x00000664,0x0000008e, + 0x0000065d,0x0000065f,0x00000661,0x00000662,0x0004003d,0x00000006,0x00000665,0x000000f5, + 0x00050084,0x00000006,0x00000666,0x00000665,0x000001ce,0x00050080,0x00000006,0x00000667, + 0x00000666,0x00000141,0x0004007c,0x00000013,0x00000668,0x00000667,0x0004003d,0x00000006, + 0x00000669,0x000000f6,0x00050084,0x00000006,0x0000066a,0x00000669,0x000001ce,0x00050080, + 0x00000006,0x0000066b,0x0000066a,0x00000141,0x0004007c,0x00000013,0x0000066c,0x0000066b, + 0x00050050,0x0000002e,0x0000066d,0x00000668,0x0000066c,0x0003003e,0x000005ff,0x0000066d, + 0x0004003d,0x00000006,0x0000066e,0x000000f5,0x00050084,0x00000006,0x0000066f,0x0000066e, + 0x00000141,0x00050080,0x00000006,0x00000670,0x0000066f,0x00000148,0x0004007c,0x00000013, + 0x00000671,0x00000670,0x0004003d,0x00000006,0x00000672,0x000000f6,0x00050084,0x00000006, + 0x00000673,0x00000672,0x00000141,0x00050080,0x00000006,0x00000674,0x00000673,0x00000148, + 0x0004007c,0x00000013,0x00000675,0x00000674,0x00050050,0x0000002e,0x00000676,0x00000671, + 0x00000675,0x0003003e,0x00000609,0x00000676,0x0004003d,0x0000002e,0x00000678,0x000005ff, + 0x0004007c,0x00000029,0x00000679,0x00000678,0x0003003e,0x0000067a,0x00000679,0x0004003d, + 0x00000006,0x0000067c,0x000000f8,0x0003003e,0x0000067b,0x0000067c,0x00060039,0x0000004a, + 0x0000067d,0x000000b7,0x0000067a,0x0000067b,0x0003003e,0x00000677,0x0000067d,0x0004003d, + 0x0000002e,0x0000067f,0x00000609,0x0003003e,0x0000067e,0x0000067f,0x0004003d,0x0000004a, + 0x00000681,0x00000677,0x0003003e,0x00000680,0x00000681,0x0003003e,0x00000682,0x0000061a, + 0x0004003d,0x00000006,0x00000684,0x000000f8,0x0003003e,0x00000683,0x00000684,0x00080039, + 0x00000002,0x00000685,0x0000008e,0x0000067e,0x00000680,0x00000682,0x00000683,0x0004003d, + 0x00000006,0x00000686,0x000000f7,0x000500b2,0x0000009d,0x00000688,0x00000686,0x00000687, + 0x000300f7,0x0000068a,0x00000000,0x000400fa,0x00000688,0x00000689,0x0000068a,0x000200f8, + 0x00000689,0x000100fd,0x000200f8,0x0000068a,0x0004003d,0x0000004a,0x0000068e,0x00000613, + 0x0003003e,0x0000068d,0x0000068e,0x0004003d,0x0000004a,0x00000690,0x00000635,0x0003003e, + 0x0000068f,0x00000690,0x0004003d,0x0000004a,0x00000692,0x00000656,0x0003003e,0x00000691, + 0x00000692,0x0004003d,0x0000004a,0x00000694,0x00000677,0x0003003e,0x00000693,0x00000694, + 0x00080039,0x0000004a,0x00000695,0x00000087,0x0000068d,0x0000068f,0x00000691,0x00000693, + 0x0003003e,0x0000068c,0x00000695,0x0004003d,0x00000006,0x00000696,0x000000f5,0x0004007c, + 0x00000013,0x00000697,0x00000696,0x0004003d,0x00000006,0x00000698,0x000000f6,0x0004007c, + 0x00000013,0x00000699,0x00000698,0x00050050,0x0000002e,0x0000069a,0x00000697,0x00000699, + 0x0003003e,0x0000069b,0x0000069a,0x0004003d,0x0000004a,0x0000069d,0x0000068c,0x0003003e, + 0x0000069c,0x0000069d,0x0003003e,0x0000069e,0x00000687,0x0004003d,0x00000006,0x000006a0, + 0x000000f8,0x0003003e,0x0000069f,0x000006a0,0x00080039,0x00000002,0x000006a1,0x0000008e, + 0x0000069b,0x0000069c,0x0000069e,0x0000069f,0x0004003d,0x00000006,0x000006a3,0x000000f5, + 0x0003003e,0x000006a2,0x000006a3,0x0004003d,0x00000006,0x000006a5,0x000000f6,0x0003003e, + 0x000006a4,0x000006a5,0x0004003d,0x0000004a,0x000006a7,0x0000068c,0x0003003e,0x000006a6, + 0x000006a7,0x00070039,0x00000002,0x000006a8,0x00000099,0x000006a2,0x000006a4,0x000006a6, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000103,0x00000000,0x000000fb,0x00030037, + 0x00000007,0x000000fc,0x00030037,0x00000007,0x000000fd,0x00030037,0x000000a4,0x000000fe, + 0x00030037,0x00000007,0x000000ff,0x00030037,0x00000007,0x00000100,0x00030037,0x00000007, + 0x00000101,0x00030037,0x00000007,0x00000102,0x000200f8,0x00000104,0x0004003b,0x00000007, + 0x000006b0,0x00000007,0x0004003b,0x00000007,0x000006b2,0x00000007,0x0004003b,0x000000a4, + 0x000006b4,0x00000007,0x0004003b,0x00000007,0x000006b6,0x00000007,0x0004003b,0x00000007, + 0x000006b8,0x00000007,0x0004003b,0x00000007,0x000006ba,0x00000007,0x0004003b,0x00000007, + 0x000006c7,0x00000007,0x0004003b,0x00000007,0x000006c9,0x00000007,0x0004003b,0x000000a4, + 0x000006cb,0x00000007,0x0004003b,0x00000007,0x000006cd,0x00000007,0x0004003b,0x00000007, + 0x000006cf,0x00000007,0x0004003b,0x00000007,0x000006d0,0x00000007,0x0004003b,0x00000007, + 0x000006dd,0x00000007,0x0004003b,0x00000007,0x000006df,0x00000007,0x0004003b,0x000000a4, + 0x000006e1,0x00000007,0x0004003b,0x00000007,0x000006e3,0x00000007,0x0004003b,0x00000007, + 0x000006e5,0x00000007,0x0004003b,0x00000007,0x000006e6,0x00000007,0x0004003b,0x000000a4, + 0x000006f3,0x00000007,0x0004003b,0x00000007,0x000006f5,0x00000007,0x0004003b,0x00000007, + 0x000006f7,0x00000007,0x0004003b,0x00000007,0x000006f8,0x00000007,0x0004003d,0x00000006, + 0x000006a9,0x00000101,0x0004003d,0x00000006,0x000006aa,0x00000100,0x000500b2,0x0000009d, + 0x000006ab,0x000006a9,0x000006aa,0x000300f7,0x000006ad,0x00000000,0x000400fa,0x000006ab, + 0x000006ac,0x000006ad,0x000200f8,0x000006ac,0x000100fd,0x000200f8,0x000006ad,0x00040039, + 0x00000002,0x000006af,0x0000009b,0x0004003d,0x00000006,0x000006b1,0x000000fc,0x0003003e, + 0x000006b0,0x000006b1,0x0004003d,0x00000006,0x000006b3,0x000000fd,0x0003003e,0x000006b2, + 0x000006b3,0x0004003d,0x00000029,0x000006b5,0x000000fe,0x0003003e,0x000006b4,0x000006b5, + 0x0004003d,0x00000006,0x000006b7,0x000000ff,0x0003003e,0x000006b6,0x000006b7,0x0004003d, + 0x00000006,0x000006b9,0x00000100,0x0003003e,0x000006b8,0x000006b9,0x0004003d,0x00000006, + 0x000006bb,0x00000102,0x0003003e,0x000006ba,0x000006bb,0x000a0039,0x00000002,0x000006bc, + 0x000000db,0x000006b0,0x000006b2,0x000006b4,0x000006b6,0x000006b8,0x000006ba,0x0004003d, + 0x00000006,0x000006bd,0x00000101,0x0004003d,0x00000006,0x000006be,0x00000100,0x00050080, + 0x00000006,0x000006bf,0x000006be,0x00000148,0x000500b2,0x0000009d,0x000006c0,0x000006bd, + 0x000006bf,0x000300f7,0x000006c2,0x00000000,0x000400fa,0x000006c0,0x000006c1,0x000006c2, + 0x000200f8,0x000006c1,0x000100fd,0x000200f8,0x000006c2,0x00040039,0x00000002,0x000006c4, + 0x0000009b,0x0004003d,0x00000006,0x000006c5,0x00000100,0x00050080,0x00000006,0x000006c6, + 0x000006c5,0x00000148,0x0004003d,0x00000006,0x000006c8,0x000000fc,0x0003003e,0x000006c7, + 0x000006c8,0x0004003d,0x00000006,0x000006ca,0x000000fd,0x0003003e,0x000006c9,0x000006ca, + 0x0004003d,0x00000029,0x000006cc,0x000000fe,0x0003003e,0x000006cb,0x000006cc,0x0004003d, + 0x00000006,0x000006ce,0x000000ff,0x0003003e,0x000006cd,0x000006ce,0x0003003e,0x000006cf, + 0x000006c6,0x0004003d,0x00000006,0x000006d1,0x00000102,0x0003003e,0x000006d0,0x000006d1, + 0x000a0039,0x00000002,0x000006d2,0x000000e3,0x000006c7,0x000006c9,0x000006cb,0x000006cd, + 0x000006cf,0x000006d0,0x0004003d,0x00000006,0x000006d3,0x00000101,0x0004003d,0x00000006, + 0x000006d4,0x00000100,0x00050080,0x00000006,0x000006d5,0x000006d4,0x00000141,0x000500b2, + 0x0000009d,0x000006d6,0x000006d3,0x000006d5,0x000300f7,0x000006d8,0x00000000,0x000400fa, + 0x000006d6,0x000006d7,0x000006d8,0x000200f8,0x000006d7,0x000100fd,0x000200f8,0x000006d8, + 0x00040039,0x00000002,0x000006da,0x0000009b,0x0004003d,0x00000006,0x000006db,0x00000100, + 0x00050080,0x00000006,0x000006dc,0x000006db,0x00000141,0x0004003d,0x00000006,0x000006de, + 0x000000fc,0x0003003e,0x000006dd,0x000006de,0x0004003d,0x00000006,0x000006e0,0x000000fd, + 0x0003003e,0x000006df,0x000006e0,0x0004003d,0x00000029,0x000006e2,0x000000fe,0x0003003e, + 0x000006e1,0x000006e2,0x0004003d,0x00000006,0x000006e4,0x000000ff,0x0003003e,0x000006e3, + 0x000006e4,0x0003003e,0x000006e5,0x000006dc,0x0004003d,0x00000006,0x000006e7,0x00000102, + 0x0003003e,0x000006e6,0x000006e7,0x000a0039,0x00000002,0x000006e8,0x000000eb,0x000006dd, + 0x000006df,0x000006e1,0x000006e3,0x000006e5,0x000006e6,0x0004003d,0x00000006,0x000006e9, + 0x00000101,0x0004003d,0x00000006,0x000006ea,0x00000100,0x00050080,0x00000006,0x000006eb, + 0x000006ea,0x00000142,0x000500b2,0x0000009d,0x000006ec,0x000006e9,0x000006eb,0x000300f7, + 0x000006ee,0x00000000,0x000400fa,0x000006ec,0x000006ed,0x000006ee,0x000200f8,0x000006ed, + 0x000100fd,0x000200f8,0x000006ee,0x00040039,0x00000002,0x000006f0,0x0000009b,0x0004003d, + 0x00000006,0x000006f1,0x00000100,0x00050080,0x00000006,0x000006f2,0x000006f1,0x00000142, + 0x0004003d,0x00000029,0x000006f4,0x000000fe,0x0003003e,0x000006f3,0x000006f4,0x0004003d, + 0x00000006,0x000006f6,0x000000ff,0x0003003e,0x000006f5,0x000006f6,0x0003003e,0x000006f7, + 0x000006f2,0x0004003d,0x00000006,0x000006f9,0x00000102,0x0003003e,0x000006f8,0x000006f9, + 0x00080039,0x00000002,0x000006fa,0x000000f2,0x000006f3,0x000006f5,0x000006f7,0x000006f8, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000010b,0x00000000,0x00000105,0x00030037, + 0x000000a4,0x00000106,0x00030037,0x00000007,0x00000107,0x00030037,0x00000007,0x00000108, + 0x00030037,0x00000007,0x00000109,0x00030037,0x00000007,0x0000010a,0x000200f8,0x0000010c, + 0x0004003b,0x000000a4,0x000006fb,0x00000007,0x0004003b,0x00000007,0x000006fe,0x00000007, + 0x0004003b,0x00000007,0x00000700,0x00000007,0x0004003b,0x00000007,0x00000709,0x00000007, + 0x0004003b,0x00000007,0x00000711,0x00000007,0x0004003b,0x00000007,0x00000713,0x00000007, + 0x0004003b,0x000000a4,0x00000715,0x00000007,0x0004003b,0x00000007,0x00000717,0x00000007, + 0x0004003b,0x00000007,0x00000719,0x00000007,0x0004003b,0x00000007,0x0000071b,0x00000007, + 0x0004003b,0x00000007,0x0000071e,0x00000007,0x0004003b,0x00000007,0x00000720,0x00000007, + 0x0004003b,0x000000a4,0x00000722,0x00000007,0x0004003b,0x00000007,0x00000724,0x00000007, + 0x0004003b,0x00000007,0x00000726,0x00000007,0x0004003b,0x00000007,0x00000727,0x00000007, + 0x0004003b,0x00000007,0x00000729,0x00000007,0x0004003b,0x00000007,0x00000731,0x00000007, + 0x0004003b,0x00000007,0x00000733,0x00000007,0x0004003b,0x00000007,0x00000735,0x00000007, + 0x0004003b,0x00000007,0x0000073b,0x00000007,0x0004003b,0x00000007,0x0000073e,0x00000007, + 0x0004003b,0x00000007,0x00000740,0x00000007,0x0004003b,0x00000007,0x00000742,0x00000007, + 0x0004003b,0x00000007,0x00000744,0x00000007,0x0004003b,0x00000007,0x00000747,0x00000007, + 0x0004003b,0x00000007,0x00000749,0x00000007,0x0004003b,0x000000a4,0x0000074b,0x00000007, + 0x0004003b,0x00000007,0x0000074c,0x00000007,0x0004003b,0x00000007,0x0000074e,0x00000007, + 0x0004003b,0x00000007,0x0000074f,0x00000007,0x0004003b,0x00000007,0x00000751,0x00000007, + 0x0004003d,0x00000006,0x000006fc,0x00000107,0x00050089,0x00000006,0x000006fd,0x000006fc, + 0x000003d1,0x0003003e,0x000006fe,0x000006fd,0x00050039,0x00000029,0x000006ff,0x0000002c, + 0x000006fe,0x0003003e,0x000006fb,0x000006ff,0x00050041,0x00000007,0x00000701,0x000006fb, + 0x00000186,0x0004003d,0x00000006,0x00000702,0x00000701,0x0004003d,0x00000006,0x00000703, + 0x00000107,0x000500c2,0x00000006,0x00000705,0x00000703,0x00000704,0x00050089,0x00000006, + 0x00000706,0x00000705,0x00000141,0x00050084,0x00000006,0x00000707,0x000004bc,0x00000706, + 0x00050080,0x00000006,0x00000708,0x00000702,0x00000707,0x0003003e,0x00000700,0x00000708, + 0x00050041,0x00000007,0x0000070a,0x000006fb,0x00000148,0x0004003d,0x00000006,0x0000070b, + 0x0000070a,0x0004003d,0x00000006,0x0000070c,0x00000107,0x000500c2,0x00000006,0x0000070e, + 0x0000070c,0x0000070d,0x00050084,0x00000006,0x0000070f,0x000004bc,0x0000070e,0x00050080, + 0x00000006,0x00000710,0x0000070b,0x0000070f,0x0003003e,0x00000709,0x00000710,0x0004003d, + 0x00000006,0x00000712,0x00000700,0x0003003e,0x00000711,0x00000712,0x0004003d,0x00000006, + 0x00000714,0x00000709,0x0003003e,0x00000713,0x00000714,0x0004003d,0x00000029,0x00000716, + 0x00000106,0x0003003e,0x00000715,0x00000716,0x0004003d,0x00000006,0x00000718,0x00000107, + 0x0003003e,0x00000717,0x00000718,0x0004003d,0x00000006,0x0000071a,0x00000108,0x0003003e, + 0x00000719,0x0000071a,0x0004003d,0x00000006,0x0000071c,0x0000010a,0x0003003e,0x0000071b, + 0x0000071c,0x000a0039,0x00000002,0x0000071d,0x000000d3,0x00000711,0x00000713,0x00000715, + 0x00000717,0x00000719,0x0000071b,0x0004003d,0x00000006,0x0000071f,0x00000700,0x0003003e, + 0x0000071e,0x0000071f,0x0004003d,0x00000006,0x00000721,0x00000709,0x0003003e,0x00000720, + 0x00000721,0x0004003d,0x00000029,0x00000723,0x00000106,0x0003003e,0x00000722,0x00000723, + 0x0004003d,0x00000006,0x00000725,0x00000107,0x0003003e,0x00000724,0x00000725,0x0003003e, + 0x00000726,0x00000141,0x0004003d,0x00000006,0x00000728,0x00000108,0x0003003e,0x00000727, + 0x00000728,0x0004003d,0x00000006,0x0000072a,0x0000010a,0x0003003e,0x00000729,0x0000072a, + 0x000b0039,0x00000002,0x0000072b,0x00000103,0x0000071e,0x00000720,0x00000722,0x00000724, + 0x00000726,0x00000727,0x00000729,0x0004003d,0x00000006,0x0000072c,0x00000108,0x000500b2, + 0x0000009d,0x0000072d,0x0000072c,0x0000061a,0x000300f7,0x0000072f,0x00000000,0x000400fa, + 0x0000072d,0x0000072e,0x0000072f,0x000200f8,0x0000072e,0x000100fd,0x000200f8,0x0000072f, + 0x0004003d,0x00000006,0x00000732,0x00000109,0x0003003e,0x00000731,0x00000732,0x0004003d, + 0x00000006,0x00000734,0x00000107,0x0003003e,0x00000733,0x00000734,0x0004003d,0x00000006, + 0x00000736,0x0000010a,0x0003003e,0x00000735,0x00000736,0x00070039,0x0000009d,0x00000737, + 0x000000a2,0x00000731,0x00000733,0x00000735,0x000300f7,0x00000739,0x00000000,0x000400fa, + 0x00000737,0x00000738,0x00000739,0x000200f8,0x00000738,0x000100fd,0x000200f8,0x00000739, + 0x0004003d,0x00000006,0x0000073c,0x0000010a,0x0003003e,0x0000073b,0x0000073c,0x00050039, + 0x00000002,0x0000073d,0x00000076,0x0000073b,0x0004003d,0x00000006,0x0000073f,0x00000700, + 0x0003003e,0x0000073e,0x0000073f,0x0004003d,0x00000006,0x00000741,0x00000709,0x0003003e, + 0x00000740,0x00000741,0x0004003d,0x00000006,0x00000743,0x00000108,0x0003003e,0x00000742, + 0x00000743,0x0004003d,0x00000006,0x00000745,0x0000010a,0x0003003e,0x00000744,0x00000745, + 0x00080039,0x00000002,0x00000746,0x000000f9,0x0000073e,0x00000740,0x00000742,0x00000744, + 0x0004003d,0x00000006,0x00000748,0x00000700,0x0003003e,0x00000747,0x00000748,0x0004003d, + 0x00000006,0x0000074a,0x00000709,0x0003003e,0x00000749,0x0000074a,0x0003003e,0x0000074b, + 0x0000037f,0x0004003d,0x00000006,0x0000074d,0x00000107,0x0003003e,0x0000074c,0x0000074d, + 0x0003003e,0x0000074e,0x000004bc,0x0004003d,0x00000006,0x00000750,0x00000108,0x0003003e, + 0x0000074f,0x00000750,0x0004003d,0x00000006,0x00000752,0x0000010a,0x0003003e,0x00000751, + 0x00000752,0x000b0039,0x00000002,0x00000753,0x00000103,0x00000747,0x00000749,0x0000074b, + 0x0000074c,0x0000074e,0x0000074f,0x00000751,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000114,0x00000000,0x0000010d,0x00030037,0x000000a4,0x0000010e,0x00030037,0x00000007, + 0x0000010f,0x00030037,0x00000007,0x00000110,0x00030037,0x00000007,0x00000111,0x00030037, + 0x00000007,0x00000112,0x00030037,0x000000a4,0x00000113,0x000200f8,0x00000115,0x0004003b, + 0x000000a4,0x00000757,0x00000007,0x0004003b,0x00000007,0x00000758,0x00000007,0x0004003b, + 0x00000007,0x0000075a,0x00000007,0x0004003b,0x00000007,0x0000075c,0x00000007,0x0004003b, + 0x00000007,0x0000075e,0x00000007,0x0004003d,0x00000029,0x00000754,0x0000010e,0x0004003d, + 0x00000029,0x00000755,0x00000113,0x00050080,0x00000029,0x00000756,0x00000754,0x00000755, + 0x0003003e,0x00000757,0x00000756,0x0004003d,0x00000006,0x00000759,0x0000010f,0x0003003e, + 0x00000758,0x00000759,0x0004003d,0x00000006,0x0000075b,0x00000110,0x0003003e,0x0000075a, + 0x0000075b,0x0004003d,0x00000006,0x0000075d,0x00000111,0x0003003e,0x0000075c,0x0000075d, + 0x0004003d,0x00000006,0x0000075f,0x00000112,0x0003003e,0x0000075e,0x0000075f,0x00090039, + 0x00000002,0x00000760,0x0000010b,0x00000757,0x00000758,0x0000075a,0x0000075c,0x0000075e, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000011b,0x00000000,0x00000118,0x00030037, + 0x00000117,0x00000119,0x00030037,0x00000007,0x0000011a,0x000200f8,0x0000011c,0x0004003b, + 0x000000a4,0x00000769,0x00000007,0x0004003b,0x00000007,0x0000076a,0x00000007,0x0004003b, + 0x00000007,0x0000076b,0x00000007,0x0004003b,0x00000007,0x0000076c,0x00000007,0x0004003b, + 0x00000007,0x0000076d,0x00000007,0x0004003b,0x000000a4,0x0000076e,0x00000007,0x0004003d, + 0x00000116,0x00000761,0x00000119,0x0007004f,0x00000029,0x00000762,0x00000761,0x00000761, + 0x00000000,0x00000001,0x0004003d,0x00000006,0x00000763,0x0000011a,0x00040039,0x00000006, + 0x00000764,0x00000036,0x00040039,0x00000006,0x00000765,0x00000038,0x00050041,0x00000007, + 0x00000766,0x00000119,0x00000141,0x0004003d,0x00000006,0x00000767,0x00000766,0x00040039, + 0x00000029,0x00000768,0x0000003b,0x0003003e,0x00000769,0x00000762,0x0003003e,0x0000076a, + 0x00000763,0x0003003e,0x0000076b,0x00000764,0x0003003e,0x0000076c,0x00000765,0x0003003e, + 0x0000076d,0x00000767,0x0003003e,0x0000076e,0x00000768,0x000a0039,0x00000002,0x0000076f, + 0x00000114,0x00000769,0x0000076a,0x0000076b,0x0000076c,0x0000076d,0x0000076e,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h b/gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h new file mode 100644 index 000000000..f2c41a35a --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h @@ -0,0 +1,957 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_COMPUTE_OPTICAL_FLOW_V5_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000004d8,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x0000003f,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x000a000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x000000b2,0x000004bf,0x000004c3,0x000004c7,0x000004cb, + 0x00060010,0x00000004,0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x000a0004,0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x615f7075, + 0x68746972,0x6974656d,0x00000063,0x00090004,0x4b5f4c47,0x735f5248,0x65646168,0x75735f72, + 0x6f726762,0x625f7075,0x6f6c6c61,0x00000074,0x00090004,0x4b5f4c47,0x735f5248,0x65646168, + 0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00090004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x735f7075,0x66667568,0x0000656c,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00070005,0x0000000b,0x42786666,0x64616f72,0x74736163,0x31752834, + 0x0000003b,0x00040005,0x0000000a,0x756c6176,0x00000065,0x00070005,0x0000000f,0x57786666, + 0x49657661,0x72694673,0x614c7473,0x0028656e,0x00060005,0x00000013,0x57786666,0x4d657661, + 0x75286e69,0x00003b31,0x00030005,0x00000012,0x00000061,0x00060005,0x00000016,0x57786666, + 0x53657661,0x75286d75,0x00003b31,0x00030005,0x00000015,0x00000061,0x00070005,0x00000019, + 0x57786666,0x4c657661,0x43656e61,0x746e756f,0x00000028,0x00060005,0x00000020,0x4d786666, + 0x69286e69,0x31693b31,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00030005,0x0000001f, + 0x00000079,0x00060005,0x00000025,0x4d786666,0x75286e69,0x31753b31,0x0000003b,0x00030005, + 0x00000023,0x00000078,0x00030005,0x00000024,0x00000079,0x00060005,0x00000029,0x4d786666, + 0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000027,0x00000078,0x00030005,0x00000028, + 0x00000079,0x000b0005,0x00000032,0x50746547,0x656b6361,0x6d754c64,0x31692861,0x3b31693b, + 0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00040005,0x0000002c,0x74646977,0x00000068, + 0x00030005,0x0000002d,0x00000078,0x00040005,0x0000002e,0x616d756c,0x00000030,0x00040005, + 0x0000002f,0x616d756c,0x00000031,0x00040005,0x00000030,0x616d756c,0x00000032,0x00040005, + 0x00000031,0x616d756c,0x00000033,0x00050005,0x00000036,0x28646153,0x753b3175,0x00003b31, + 0x00030005,0x00000034,0x00000061,0x00030005,0x00000035,0x00000062,0x00060005,0x0000003c, + 0x64615351,0x3b317528,0x753b3175,0x00003b31,0x00030005,0x00000039,0x00003061,0x00030005, + 0x0000003a,0x00003161,0x00030005,0x0000003b,0x00000062,0x00060005,0x00000040,0x70736944, + 0x5379616c,0x28657a69,0x00000000,0x00050005,0x00000042,0x6d617246,0x646e4965,0x00287865, + 0x00090005,0x00000044,0x6974704f,0x466c6163,0x50776f6c,0x6d617279,0x654c6469,0x286c6576, + 0x00000000,0x000a0005,0x00000046,0x6974704f,0x466c6163,0x50776f6c,0x6d617279,0x654c6469, + 0x436c6576,0x746e756f,0x00000028,0x00090005,0x0000004b,0x64616f4c,0x6974704f,0x466c6163, + 0x49776f6c,0x7475706e,0x32697628,0x0000003b,0x00040005,0x0000004a,0x50785069,0x0000736f, + 0x000b0005,0x0000004e,0x64616f4c,0x6974704f,0x466c6163,0x50776f6c,0x69766572,0x4973756f, + 0x7475706e,0x32697628,0x0000003b,0x00040005,0x0000004d,0x50785069,0x0000736f,0x00080005, + 0x00000052,0x64616f4c,0x704f7752,0x61636974,0x6f6c466c,0x69762877,0x00003b32,0x00040005, + 0x00000051,0x50785069,0x0000736f,0x00090005,0x00000057,0x726f7453,0x74704f65,0x6c616369, + 0x776f6c46,0x32697628,0x3269763b,0x0000003b,0x00040005,0x00000055,0x50785069,0x0000736f, + 0x00060005,0x00000056,0x69746f6d,0x65566e6f,0x726f7463,0x00000000,0x00070005,0x0000005b, + 0x64616f4c,0x43537752,0x74754f44,0x28747570,0x003b3169,0x00040005,0x0000005a,0x646e4969, + 0x00007865,0x00060005,0x0000005d,0x63537349,0x43656e65,0x676e6168,0x00286465,0x000a0005, + 0x00000060,0x64616f4c,0x73726946,0x616d4974,0x61506567,0x64656b63,0x616d754c,0x32697628, + 0x0000003b,0x00040005,0x0000005f,0x50785069,0x0000736f,0x000a0005,0x00000063,0x64616f4c, + 0x6f636553,0x6d49646e,0x50656761,0x656b6361,0x6d754c64,0x69762861,0x00003b32,0x00040005, + 0x00000062,0x50785069,0x0000736f,0x00080005,0x0000006a,0x636f6c42,0x6461536b,0x75283436, + 0x31693b31,0x3b31693b,0x003b3169,0x00050005,0x00000066,0x636f6c62,0x6461536b,0x006d7553, + 0x00050005,0x00000067,0x636f4c69,0x6e496c61,0x00786564,0x00060005,0x00000068,0x6e614c69, + 0x426f5465,0x6b636f6c,0x00006449,0x00040005,0x00000069,0x636f6c62,0x0000006b,0x000a0005, + 0x0000006f,0x4d646153,0x694d7061,0x6465526e,0x69746375,0x35326e6f,0x69762836,0x31693b32, + 0x0000003b,0x00050005,0x0000006d,0x61655369,0x49686372,0x00000064,0x00050005,0x0000006e, + 0x636f4c69,0x6e496c61,0x00786564,0x00090005,0x00000074,0x64616f4c,0x72616553,0x75426863, + 0x72656666,0x3b316928,0x3b326976,0x00000000,0x00050005,0x00000072,0x636f4c69,0x6e496c61, + 0x00786564,0x00060005,0x00000073,0x50785069,0x6853736f,0x65746669,0x00000064,0x00080005, + 0x00000078,0x636c6143,0x74616c75,0x61535165,0x28327364,0x3b326976,0x00000000,0x00050005, + 0x00000077,0x61655369,0x49686372,0x00000064,0x00050005,0x0000007d,0x5f736261,0x69762832, + 0x00003b32,0x00030005,0x0000007c,0x006c6176,0x00080005,0x00000080,0x6f636e45,0x65536564, + 0x68637261,0x726f6f43,0x69762864,0x00003b32,0x00040005,0x0000007f,0x726f6f63,0x00000064, + 0x00080005,0x00000084,0x6f636544,0x65536564,0x68637261,0x726f6f43,0x31752864,0x0000003b, + 0x00040005,0x00000083,0x73746962,0x00000000,0x00080005,0x0000008a,0x70657250,0x53657261, + 0x614d6461,0x69762870,0x75763b32,0x00003b34,0x00050005,0x00000088,0x61655369,0x49686372, + 0x00000064,0x00040005,0x00000089,0x64617371,0x00000000,0x00060005,0x00000090,0x65664241, + 0x3b317528,0x753b3175,0x00003b31,0x00030005,0x0000008d,0x00637273,0x00030005,0x0000008e, + 0x0066666f,0x00040005,0x0000008f,0x73746962,0x00000000,0x000a0005,0x00000098,0x5470614d, + 0x61657268,0x76287364,0x693b3269,0x69763b31,0x69763b32,0x31693b32,0x0000003b,0x00050005, + 0x00000093,0x6f724769,0x64497075,0x00000000,0x00050005,0x00000094,0x636f4c69,0x6e496c61, + 0x00786564,0x00050005,0x00000095,0x61655369,0x49686372,0x00000064,0x00040005,0x00000096, + 0x50785069,0x0000736f,0x00060005,0x00000097,0x6e614c69,0x426f5465,0x6b636f6c,0x00006449, + 0x000d0005,0x0000009f,0x706d6f43,0x4f657475,0x63697470,0x6c466c61,0x6441776f,0x636e6176, + 0x76286465,0x763b3269,0x763b3269,0x693b3269,0x00003b31,0x00050005,0x0000009b,0x6f6c4769, + 0x496c6162,0x00000064,0x00050005,0x0000009c,0x636f4c69,0x64496c61,0x00000000,0x00050005, + 0x0000009d,0x6f724769,0x64497075,0x00000000,0x00050005,0x0000009e,0x636f4c69,0x6e496c61, + 0x00786564,0x00060005,0x000000b2,0x535f6c67,0x72676275,0x5370756f,0x00657a69,0x00050005, + 0x000000c7,0x6b636170,0x754c6465,0x0000616d,0x00070005,0x000000da,0x4f74756f,0x72635366, + 0x466e6565,0x656c6c69,0x00000072,0x00070005,0x00000101,0x4f74756f,0x72635366,0x466e6565, + 0x656c6c69,0x00000072,0x00030005,0x00000157,0x00646173,0x00040005,0x00000158,0x61726170, + 0x0000006d,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00040005,0x00000167,0x61726170, + 0x0000006d,0x00040005,0x00000169,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170, + 0x0000006d,0x00040005,0x00000178,0x61726170,0x0000006d,0x00040005,0x00000183,0x61726170, + 0x0000006d,0x00040005,0x00000185,0x61726170,0x0000006d,0x00040005,0x0000018e,0x464f6263, + 0x0000745f,0x00090006,0x0000018e,0x00000000,0x706e4969,0x754c7475,0x6552616d,0x756c6f73, + 0x6e6f6974,0x00000000,0x000a0006,0x0000018e,0x00000001,0x74704f75,0x6c616369,0x776f6c46, + 0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x0000018e,0x00000002,0x74704f75, + 0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43,0x00000074,0x00060006, + 0x0000018e,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006,0x0000018e,0x00000004, + 0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006, + 0x0000018e,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00040005,0x00000190, + 0x464f6263,0x00000000,0x00080005,0x000001a5,0x706f5f72,0x61636974,0x6c665f6c,0x695f776f, + 0x7475706e,0x00000000,0x000a0005,0x000001ac,0x706f5f72,0x61636974,0x6c665f6c,0x705f776f, + 0x69766572,0x5f73756f,0x75706e69,0x00000074,0x00060005,0x000001b5,0x6f5f7772,0x63697470, + 0x665f6c61,0x00776f6c,0x00090005,0x000001c5,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x5f646373,0x7074756f,0x00007475,0x00040005,0x000001d5,0x61726170,0x0000006d,0x00070005, + 0x000001dc,0x616d756c,0x74786554,0x57657275,0x68746469,0x00000000,0x00070005,0x000001e1, + 0x616d756c,0x74786554,0x48657275,0x68676965,0x00000074,0x00050005,0x000001e6,0x756a6461, + 0x64657473,0x00736f50,0x00040005,0x000001e9,0x61726170,0x0000006d,0x00040005,0x000001ea, + 0x61726170,0x0000006d,0x00040005,0x000001ee,0x61726170,0x0000006d,0x00040005,0x000001ef, + 0x61726170,0x0000006d,0x00040005,0x000001f3,0x61726170,0x0000006d,0x00040005,0x000001f4, + 0x61726170,0x0000006d,0x00040005,0x000001f8,0x61726170,0x0000006d,0x00040005,0x000001f9, + 0x61726170,0x0000006d,0x00040005,0x000001fc,0x616d756c,0x00000030,0x00040005,0x00000200, + 0x61726170,0x0000006d,0x00040005,0x00000202,0x616d756c,0x00000031,0x00040005,0x00000206, + 0x61726170,0x0000006d,0x00040005,0x00000208,0x616d756c,0x00000032,0x00040005,0x0000020c, + 0x61726170,0x0000006d,0x00040005,0x0000020e,0x616d756c,0x00000033,0x00040005,0x00000212, + 0x61726170,0x0000006d,0x00040005,0x00000214,0x61726170,0x0000006d,0x00040005,0x00000216, + 0x61726170,0x0000006d,0x00040005,0x00000219,0x61726170,0x0000006d,0x00040005,0x0000021b, + 0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d,0x00040005,0x0000021f, + 0x61726170,0x0000006d,0x00070005,0x00000224,0x616d756c,0x74786554,0x57657275,0x68746469, + 0x00000000,0x00070005,0x00000229,0x616d756c,0x74786554,0x48657275,0x68676965,0x00000074, + 0x00050005,0x0000022e,0x756a6461,0x64657473,0x00736f50,0x00040005,0x00000231,0x61726170, + 0x0000006d,0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005,0x00000236,0x61726170, + 0x0000006d,0x00040005,0x00000237,0x61726170,0x0000006d,0x00040005,0x0000023b,0x61726170, + 0x0000006d,0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005,0x00000240,0x61726170, + 0x0000006d,0x00040005,0x00000241,0x61726170,0x0000006d,0x00040005,0x00000244,0x616d756c, + 0x00000030,0x00040005,0x00000247,0x61726170,0x0000006d,0x00040005,0x00000249,0x616d756c, + 0x00000031,0x00040005,0x0000024c,0x61726170,0x0000006d,0x00040005,0x0000024e,0x616d756c, + 0x00000032,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005,0x00000253,0x616d756c, + 0x00000033,0x00040005,0x00000256,0x61726170,0x0000006d,0x00040005,0x00000258,0x61726170, + 0x0000006d,0x00040005,0x0000025a,0x61726170,0x0000006d,0x00040005,0x0000025d,0x61726170, + 0x0000006d,0x00040005,0x0000025f,0x61726170,0x0000006d,0x00040005,0x00000261,0x61726170, + 0x0000006d,0x00040005,0x00000263,0x61726170,0x0000006d,0x00040005,0x0000026d,0x61726170, + 0x0000006d,0x00040005,0x00000275,0x65766177,0x00006449,0x00050005,0x0000027d,0x76615773, + 0x64615365,0x00000000,0x00040005,0x0000028d,0x306e696d,0x00000031,0x00060005,0x00000294, + 0x4d646173,0x75427061,0x72656666,0x00000000,0x00040005,0x0000029d,0x61726170,0x0000006d, + 0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005,0x000002a4,0x326e696d,0x00000033, + 0x00040005,0x000002ad,0x61726170,0x0000006d,0x00040005,0x000002b0,0x61726170,0x0000006d, + 0x00040005,0x000002b4,0x306e696d,0x00333231,0x00040005,0x000002b5,0x61726170,0x0000006d, + 0x00040005,0x000002b7,0x61726170,0x0000006d,0x00040005,0x000002ba,0x61726170,0x0000006d, + 0x00040005,0x000002c1,0x65766177,0x00006449,0x00050005,0x000002c7,0x76615773,0x6e694d65, + 0x00000000,0x00040005,0x000002cd,0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170, + 0x0000006d,0x00040005,0x000002d6,0x65736162,0x00000058,0x00040005,0x000002da,0x65736162, + 0x00000059,0x00030005,0x000002de,0x00006469,0x00030005,0x000002e8,0x00786469,0x00030005, + 0x000002ec,0x00796469,0x00030005,0x000002ef,0x00000078,0x00030005,0x000002f4,0x00000079, + 0x00060005,0x000002fc,0x72616573,0x75426863,0x72656666,0x00000000,0x00040005,0x00000301, + 0x61726170,0x0000006d,0x00030005,0x00000307,0x00646173,0x00040005,0x00000308,0x61726170, + 0x0000006d,0x00030005,0x0000030a,0x00007964,0x00050005,0x00000312,0x4f776f72,0x65736666, + 0x00000074,0x00030005,0x00000318,0x00003061,0x00030005,0x0000031f,0x00003161,0x00030005, + 0x00000327,0x00003261,0x00040005,0x00000332,0x65786970,0x0000736c,0x00040005,0x00000334, + 0x61726170,0x0000006d,0x00040005,0x00000336,0x61726170,0x0000006d,0x00040005,0x00000338, + 0x61726170,0x0000006d,0x00040005,0x0000033f,0x61726170,0x0000006d,0x00040005,0x00000341, + 0x61726170,0x0000006d,0x00040005,0x00000343,0x61726170,0x0000006d,0x00030005,0x0000034e, + 0x00706d74,0x00040005,0x00000350,0x6b73616d,0x00000000,0x00030005,0x00000356,0x00736572, + 0x00050005,0x00000360,0x43736261,0x64726f6f,0x00000000,0x00040005,0x00000364,0x61726170, + 0x0000006d,0x00030005,0x00000379,0x00007864,0x00030005,0x0000037e,0x00007964,0x00040005, + 0x00000397,0x61726170,0x0000006d,0x00040005,0x000003a9,0x61726170,0x0000006d,0x00040005, + 0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003cd,0x61726170,0x0000006d,0x00040005, + 0x000003d1,0x6b73616d,0x00000000,0x00040005,0x000003de,0x61726170,0x0000006d,0x00040005, + 0x000003df,0x61726170,0x0000006d,0x00040005,0x000003e0,0x61726170,0x0000006d,0x00040005, + 0x000003e5,0x61726170,0x0000006d,0x00040005,0x000003e6,0x61726170,0x0000006d,0x00040005, + 0x000003e7,0x61726170,0x0000006d,0x00040005,0x000003ed,0x61726170,0x0000006d,0x00040005, + 0x000003ee,0x61726170,0x0000006d,0x00040005,0x000003ef,0x61726170,0x0000006d,0x00040005, + 0x000003f3,0x61726170,0x0000006d,0x00040005,0x000003f4,0x61726170,0x0000006d,0x00040005, + 0x000003f5,0x61726170,0x0000006d,0x00050005,0x00000401,0x61655369,0x49686372,0x00000064, + 0x00040005,0x00000402,0x50785069,0x0000736f,0x00060005,0x00000403,0x6e614c69,0x426f5465, + 0x6b636f6c,0x00006449,0x00040005,0x00000404,0x61726170,0x0000006d,0x00040005,0x00000406, + 0x61726170,0x0000006d,0x00040005,0x00000408,0x61726170,0x0000006d,0x00040005,0x00000409, + 0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170,0x0000006d,0x00060005,0x0000040f, + 0x72727563,0x4f746e65,0x736f5046,0x00000000,0x00040005,0x00000424,0x61726170,0x0000006d, + 0x00040005,0x00000426,0x61726170,0x0000006d,0x000a0005,0x0000042a,0x65735562,0x64657250, + 0x69746369,0x72466e6f,0x72506d6f,0x6f697665,0x654c7375,0x006c6576,0x00070005,0x0000042f, + 0x6b636170,0x754c6465,0x345f616d,0x636f6c62,0x0000736b,0x00040005,0x00000430,0x61726170, + 0x0000006d,0x00080005,0x00000433,0x76657270,0x6b636150,0x754c6465,0x345f616d,0x636f6c62, + 0x0000736b,0x00040005,0x00000434,0x61726170,0x0000006d,0x00050005,0x00000437,0x5f646173, + 0x6f6c6234,0x00736b63,0x00040005,0x00000438,0x61726170,0x0000006d,0x00040005,0x0000043a, + 0x61726170,0x0000006d,0x00060005,0x0000043d,0x7247666f,0x4f70756f,0x65736666,0x00000074, + 0x00070005,0x00000441,0x65786970,0x6f72476c,0x664f7075,0x74657366,0x00000000,0x00040005, + 0x00000445,0x636f6c62,0x0064496b,0x00060005,0x00000458,0x72727563,0x56746e65,0x6f746365, + 0x00000072,0x00040005,0x0000045c,0x61726170,0x0000006d,0x00040005,0x0000047b,0x61726170, + 0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00040005,0x0000047f,0x64617371, + 0x00000000,0x00040005,0x00000480,0x61726170,0x0000006d,0x00040005,0x00000483,0x61726170, + 0x0000006d,0x00040005,0x00000485,0x61726170,0x0000006d,0x00040005,0x00000488,0x536e696d, + 0x00006461,0x00040005,0x00000489,0x61726170,0x0000006d,0x00040005,0x0000048b,0x61726170, + 0x0000006d,0x00050005,0x0000048e,0x536e696d,0x6f436461,0x0064726f,0x00040005,0x0000048f, + 0x61726170,0x0000006d,0x00050005,0x00000492,0x5677656e,0x6f746365,0x00000072,0x00050005, + 0x00000496,0x636f6c62,0x6461536b,0x006d7553,0x00040005,0x0000049d,0x61726170,0x0000006d, + 0x00040005,0x0000049f,0x61726170,0x0000006d,0x00040005,0x000004a1,0x61726170,0x0000006d, + 0x00040005,0x000004a3,0x61726170,0x0000006d,0x00040005,0x000004b3,0x61726170,0x0000006d, + 0x00040005,0x000004b4,0x61726170,0x0000006d,0x00080005,0x000004bf,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00080005,0x000004c3,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00060005,0x000004c7,0x575f6c67,0x476b726f, + 0x70756f72,0x00004449,0x00080005,0x000004cb,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163, + 0x6e496e6f,0x00786564,0x00040005,0x000004ce,0x61726170,0x0000006d,0x00040005,0x000004cf, + 0x61726170,0x0000006d,0x00040005,0x000004d0,0x61726170,0x0000006d,0x00040005,0x000004d1, + 0x61726170,0x0000006d,0x00030047,0x000000b2,0x00000000,0x00040047,0x000000b2,0x0000000b, + 0x00000024,0x00030047,0x000000b3,0x00000000,0x00030047,0x0000018e,0x00000002,0x00050048, + 0x0000018e,0x00000000,0x00000023,0x00000000,0x00050048,0x0000018e,0x00000001,0x00000023, + 0x00000008,0x00050048,0x0000018e,0x00000002,0x00000023,0x0000000c,0x00050048,0x0000018e, + 0x00000003,0x00000023,0x00000010,0x00050048,0x0000018e,0x00000004,0x00000023,0x00000014, + 0x00050048,0x0000018e,0x00000005,0x00000023,0x00000018,0x00040047,0x00000190,0x00000021, + 0x00000004,0x00040047,0x00000190,0x00000022,0x00000000,0x00040047,0x000001a5,0x00000021, + 0x00000000,0x00040047,0x000001a5,0x00000022,0x00000000,0x00040047,0x000001ac,0x00000021, + 0x00000001,0x00040047,0x000001ac,0x00000022,0x00000000,0x00040047,0x000001b5,0x00000021, + 0x00000002,0x00040047,0x000001b5,0x00000022,0x00000000,0x00040047,0x000001c5,0x00000021, + 0x00000003,0x00040047,0x000001c5,0x00000022,0x00000000,0x00040047,0x000004bf,0x0000000b, + 0x0000001c,0x00040047,0x000004c3,0x0000000b,0x0000001b,0x00040047,0x000004c7,0x0000000b, + 0x0000001a,0x00040047,0x000004cb,0x0000000b,0x0000001d,0x00040047,0x000004d7,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00040017,0x00000008, + 0x00000006,0x00000004,0x00040021,0x00000009,0x00000008,0x00000007,0x00020014,0x0000000d, + 0x00030021,0x0000000e,0x0000000d,0x00040021,0x00000011,0x00000006,0x00000007,0x00030021, + 0x00000018,0x00000006,0x00040015,0x0000001b,0x00000020,0x00000001,0x00040020,0x0000001c, + 0x00000007,0x0000001b,0x00050021,0x0000001d,0x0000001b,0x0000001c,0x0000001c,0x00050021, + 0x00000022,0x00000006,0x00000007,0x00000007,0x00090021,0x0000002b,0x00000006,0x0000001c, + 0x0000001c,0x00000007,0x00000007,0x00000007,0x00000007,0x00060021,0x00000038,0x00000008, + 0x00000007,0x00000007,0x00000007,0x00040017,0x0000003e,0x0000001b,0x00000002,0x00030021, + 0x0000003f,0x0000003e,0x00040020,0x00000048,0x00000007,0x0000003e,0x00040021,0x00000049, + 0x00000006,0x00000048,0x00040021,0x00000050,0x0000003e,0x00000048,0x00050021,0x00000054, + 0x00000002,0x00000048,0x00000048,0x00040021,0x00000059,0x00000006,0x0000001c,0x00070021, + 0x00000065,0x00000006,0x00000007,0x0000001c,0x0000001c,0x0000001c,0x00050021,0x0000006c, + 0x00000006,0x00000048,0x0000001c,0x00050021,0x00000071,0x00000002,0x0000001c,0x00000048, + 0x00040021,0x00000076,0x00000008,0x00000048,0x00040017,0x0000007a,0x00000006,0x00000002, + 0x00040021,0x0000007b,0x0000007a,0x00000048,0x00040021,0x00000082,0x0000003e,0x00000007, + 0x00040020,0x00000086,0x00000007,0x00000008,0x00050021,0x00000087,0x00000002,0x00000048, + 0x00000086,0x00060021,0x0000008c,0x00000006,0x00000007,0x00000007,0x00000007,0x00080021, + 0x00000092,0x00000002,0x00000048,0x0000001c,0x00000048,0x00000048,0x0000001c,0x00070021, + 0x0000009a,0x00000002,0x00000048,0x00000048,0x00000048,0x0000001c,0x0004002b,0x00000006, + 0x000000a5,0x00000003,0x00040020,0x000000b1,0x00000001,0x00000006,0x0004003b,0x000000b1, + 0x000000b2,0x00000001,0x0004002b,0x0000001b,0x000000ca,0x00000008,0x0004002b,0x0000001b, + 0x000000ce,0x00000010,0x0004002b,0x0000001b,0x000000d2,0x00000018,0x0004002b,0x0000001b, + 0x000000d6,0x00000000,0x0004002b,0x00000006,0x000000dc,0x000000ff,0x0004002b,0x0000001b, + 0x000000df,0xffffffff,0x0004002b,0x0000001b,0x000000e8,0xfffffffe,0x0004002b,0x0000001b, + 0x000000f1,0xfffffffd,0x0004002b,0x0000001b,0x000000fc,0x00000004,0x0004002b,0x00000006, + 0x00000103,0xff000000,0x0004002b,0x0000001b,0x00000107,0x00000003,0x0004002b,0x0000001b, + 0x00000112,0x00000002,0x0004002b,0x0000001b,0x0000011d,0x00000001,0x0004002b,0x00000006, + 0x0000015d,0x00000000,0x0004002b,0x00000006,0x0000016c,0x00000001,0x0004002b,0x00000006, + 0x0000017b,0x00000002,0x00030016,0x0000018c,0x00000020,0x00040017,0x0000018d,0x0000018c, + 0x00000002,0x0008001e,0x0000018e,0x0000003e,0x00000006,0x00000006,0x00000006,0x00000006, + 0x0000018d,0x00040020,0x0000018f,0x00000002,0x0000018e,0x0004003b,0x0000018f,0x00000190, + 0x00000002,0x00040020,0x00000191,0x00000002,0x0000003e,0x00040020,0x00000196,0x00000002, + 0x00000006,0x00090019,0x000001a3,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x000001a4,0x00000000,0x000001a3,0x0004003b,0x000001a4, + 0x000001a5,0x00000000,0x0004003b,0x000001a4,0x000001ac,0x00000000,0x00090019,0x000001b3, + 0x0000001b,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x0000001a,0x00040020, + 0x000001b4,0x00000000,0x000001b3,0x0004003b,0x000001b4,0x000001b5,0x00000000,0x00040017, + 0x000001b8,0x0000001b,0x00000004,0x00090019,0x000001c3,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x000001c4,0x00000000,0x000001c3, + 0x0004003b,0x000001c4,0x000001c5,0x00000000,0x0004002b,0x00000006,0x000001ce,0x00000005, + 0x00030029,0x0000000d,0x000001d2,0x0004002b,0x00000006,0x000001d7,0x0000000f,0x0005002c, + 0x0000003e,0x000001fe,0x000000d6,0x000000d6,0x0005002c,0x0000003e,0x00000204,0x0000011d, + 0x000000d6,0x0005002c,0x0000003e,0x0000020a,0x00000112,0x000000d6,0x0005002c,0x0000003e, + 0x00000210,0x00000107,0x000000d6,0x0004002b,0x00000006,0x00000271,0x00000020,0x0004001c, + 0x0000027b,0x00000006,0x0000017b,0x00040020,0x0000027c,0x00000004,0x0000027b,0x0004003b, + 0x0000027c,0x0000027d,0x00000004,0x00040020,0x00000280,0x00000004,0x00000006,0x0004002b, + 0x00000006,0x00000282,0x00000d48,0x0004002b,0x00000006,0x00000283,0x00000108,0x0004001c, + 0x0000028e,0x00000006,0x000001ce,0x0004002b,0x00000006,0x0000028f,0x00000010,0x0004001c, + 0x00000290,0x0000028e,0x0000028f,0x0004002b,0x00000006,0x00000291,0x00000004,0x0004001c, + 0x00000292,0x00000290,0x00000291,0x00040020,0x00000293,0x00000004,0x00000292,0x0004003b, + 0x00000293,0x00000294,0x00000004,0x0004003b,0x0000027c,0x000002c7,0x00000004,0x0004002b, + 0x0000001b,0x000002e6,0x00000090,0x0004002b,0x0000001b,0x000002ea,0x00000006,0x0004002b, + 0x00000006,0x000002f8,0x00000090,0x0004001c,0x000002f9,0x00000006,0x000002f8,0x0004001c, + 0x000002fa,0x000002f9,0x0000016c,0x00040020,0x000002fb,0x00000004,0x000002fa,0x0004003b, + 0x000002fb,0x000002fc,0x00000004,0x0004002b,0x0000001b,0x00000304,0x00000040,0x0004002b, + 0x00000006,0x0000032f,0x00000008,0x0004001c,0x00000330,0x0000027b,0x0000032f,0x00040020, + 0x00000331,0x00000004,0x00000330,0x0004003b,0x00000331,0x00000332,0x00000004,0x0004002b, + 0x0000001b,0x00000352,0x0000001f,0x00040020,0x00000355,0x00000007,0x0000007a,0x0004002b, + 0x0000001b,0x00000368,0x0000000c,0x0005002c,0x0000003e,0x000003fe,0x000000fc,0x0000011d, + 0x0004002b,0x0000001b,0x00000418,0x00000007,0x00040020,0x00000429,0x00000007,0x0000000d, + 0x00040017,0x000004bd,0x00000006,0x00000003,0x00040020,0x000004be,0x00000001,0x000004bd, + 0x0004003b,0x000004be,0x000004bf,0x00000001,0x0004003b,0x000004be,0x000004c3,0x00000001, + 0x0004003b,0x000004be,0x000004c7,0x00000001,0x0004003b,0x000000b1,0x000004cb,0x00000001, + 0x0004002b,0x0000018c,0x000004d3,0x387fda40,0x0004002b,0x0000018c,0x000004d4,0x477fe000, + 0x0004002b,0x0000018c,0x000004d5,0x37801002,0x0004002b,0x00000006,0x000004d6,0x00000040, + 0x0006002c,0x000004bd,0x000004d7,0x000004d6,0x0000016c,0x0000016c,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000048,0x000004ce, + 0x00000007,0x0004003b,0x00000048,0x000004cf,0x00000007,0x0004003b,0x00000048,0x000004d0, + 0x00000007,0x0004003b,0x0000001c,0x000004d1,0x00000007,0x0004003d,0x000004bd,0x000004c0, + 0x000004bf,0x0007004f,0x0000007a,0x000004c1,0x000004c0,0x000004c0,0x00000000,0x00000001, + 0x0004007c,0x0000003e,0x000004c2,0x000004c1,0x0004003d,0x000004bd,0x000004c4,0x000004c3, + 0x0007004f,0x0000007a,0x000004c5,0x000004c4,0x000004c4,0x00000000,0x00000001,0x0004007c, + 0x0000003e,0x000004c6,0x000004c5,0x0004003d,0x000004bd,0x000004c8,0x000004c7,0x0007004f, + 0x0000007a,0x000004c9,0x000004c8,0x000004c8,0x00000000,0x00000001,0x0004007c,0x0000003e, + 0x000004ca,0x000004c9,0x0004003d,0x00000006,0x000004cc,0x000004cb,0x0004007c,0x0000001b, + 0x000004cd,0x000004cc,0x0003003e,0x000004ce,0x000004c2,0x0003003e,0x000004cf,0x000004c6, + 0x0003003e,0x000004d0,0x000004ca,0x0003003e,0x000004d1,0x000004cd,0x00080039,0x00000002, + 0x000004d2,0x0000009f,0x000004ce,0x000004cf,0x000004d0,0x000004d1,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x000000a1,0x0000000a,0x00070050,0x00000008, + 0x000000a2,0x000000a1,0x000000a1,0x000000a1,0x000000a1,0x000200fe,0x000000a2,0x00010038, + 0x00050036,0x0000000d,0x0000000f,0x00000000,0x0000000e,0x000200f8,0x00000010,0x0004014d, + 0x0000000d,0x000000a6,0x000000a5,0x000200fe,0x000000a6,0x00010038,0x00050036,0x00000006, + 0x00000013,0x00000000,0x00000011,0x00030037,0x00000007,0x00000012,0x000200f8,0x00000014, + 0x0004003d,0x00000006,0x000000a9,0x00000012,0x00060162,0x00000006,0x000000aa,0x000000a5, + 0x00000000,0x000000a9,0x000200fe,0x000000aa,0x00010038,0x00050036,0x00000006,0x00000016, + 0x00000000,0x00000011,0x00030037,0x00000007,0x00000015,0x000200f8,0x00000017,0x0004003d, + 0x00000006,0x000000ad,0x00000015,0x0006015d,0x00000006,0x000000ae,0x000000a5,0x00000000, + 0x000000ad,0x000200fe,0x000000ae,0x00010038,0x00050036,0x00000006,0x00000019,0x00000000, + 0x00000018,0x000200f8,0x0000001a,0x0004003b,0x00000007,0x000000b4,0x00000007,0x0004003d, + 0x00000006,0x000000b3,0x000000b2,0x0003003e,0x000000b4,0x000000b3,0x0004003d,0x00000006, + 0x000000b5,0x000000b4,0x000200fe,0x000000b5,0x00010038,0x00050036,0x0000001b,0x00000020, + 0x00000000,0x0000001d,0x00030037,0x0000001c,0x0000001e,0x00030037,0x0000001c,0x0000001f, + 0x000200f8,0x00000021,0x0004003d,0x0000001b,0x000000b8,0x0000001e,0x0004003d,0x0000001b, + 0x000000b9,0x0000001f,0x0007000c,0x0000001b,0x000000ba,0x00000001,0x00000027,0x000000b8, + 0x000000b9,0x000200fe,0x000000ba,0x00010038,0x00050036,0x00000006,0x00000025,0x00000000, + 0x00000022,0x00030037,0x00000007,0x00000023,0x00030037,0x00000007,0x00000024,0x000200f8, + 0x00000026,0x0004003d,0x00000006,0x000000bd,0x00000023,0x0004003d,0x00000006,0x000000be, + 0x00000024,0x0007000c,0x00000006,0x000000bf,0x00000001,0x00000026,0x000000bd,0x000000be, + 0x000200fe,0x000000bf,0x00010038,0x00050036,0x0000001b,0x00000029,0x00000000,0x0000001d, + 0x00030037,0x0000001c,0x00000027,0x00030037,0x0000001c,0x00000028,0x000200f8,0x0000002a, + 0x0004003d,0x0000001b,0x000000c2,0x00000027,0x0004003d,0x0000001b,0x000000c3,0x00000028, + 0x0007000c,0x0000001b,0x000000c4,0x00000001,0x0000002a,0x000000c2,0x000000c3,0x000200fe, + 0x000000c4,0x00010038,0x00050036,0x00000006,0x00000032,0x00000000,0x0000002b,0x00030037, + 0x0000001c,0x0000002c,0x00030037,0x0000001c,0x0000002d,0x00030037,0x00000007,0x0000002e, + 0x00030037,0x00000007,0x0000002f,0x00030037,0x00000007,0x00000030,0x00030037,0x00000007, + 0x00000031,0x000200f8,0x00000033,0x0004003b,0x00000007,0x000000c7,0x00000007,0x0004003b, + 0x00000007,0x000000da,0x00000007,0x0004003b,0x00000007,0x00000101,0x00000007,0x0004003d, + 0x00000006,0x000000c8,0x0000002e,0x0004003d,0x00000006,0x000000c9,0x0000002f,0x000500c4, + 0x00000006,0x000000cb,0x000000c9,0x000000ca,0x000500c5,0x00000006,0x000000cc,0x000000c8, + 0x000000cb,0x0004003d,0x00000006,0x000000cd,0x00000030,0x000500c4,0x00000006,0x000000cf, + 0x000000cd,0x000000ce,0x000500c5,0x00000006,0x000000d0,0x000000cc,0x000000cf,0x0004003d, + 0x00000006,0x000000d1,0x00000031,0x000500c4,0x00000006,0x000000d3,0x000000d1,0x000000d2, + 0x000500c5,0x00000006,0x000000d4,0x000000d0,0x000000d3,0x0003003e,0x000000c7,0x000000d4, + 0x0004003d,0x0000001b,0x000000d5,0x0000002d,0x000500b1,0x0000000d,0x000000d7,0x000000d5, + 0x000000d6,0x000300f7,0x000000d9,0x00000000,0x000400fa,0x000000d7,0x000000d8,0x000000f9, + 0x000200f8,0x000000d8,0x0004003d,0x00000006,0x000000db,0x000000c7,0x000500c7,0x00000006, + 0x000000dd,0x000000db,0x000000dc,0x0003003e,0x000000da,0x000000dd,0x0004003d,0x0000001b, + 0x000000de,0x0000002d,0x000500b3,0x0000000d,0x000000e0,0x000000de,0x000000df,0x000300f7, + 0x000000e2,0x00000000,0x000400fa,0x000000e0,0x000000e1,0x000000e2,0x000200f8,0x000000e1, + 0x0004003d,0x00000006,0x000000e3,0x000000c7,0x000500c4,0x00000006,0x000000e4,0x000000e3, + 0x000000ca,0x0004003d,0x00000006,0x000000e5,0x000000da,0x000500c5,0x00000006,0x000000e6, + 0x000000e4,0x000000e5,0x0003003e,0x000000c7,0x000000e6,0x000200f9,0x000000e2,0x000200f8, + 0x000000e2,0x0004003d,0x0000001b,0x000000e7,0x0000002d,0x000500b3,0x0000000d,0x000000e9, + 0x000000e7,0x000000e8,0x000300f7,0x000000eb,0x00000000,0x000400fa,0x000000e9,0x000000ea, + 0x000000eb,0x000200f8,0x000000ea,0x0004003d,0x00000006,0x000000ec,0x000000c7,0x000500c4, + 0x00000006,0x000000ed,0x000000ec,0x000000ca,0x0004003d,0x00000006,0x000000ee,0x000000da, + 0x000500c5,0x00000006,0x000000ef,0x000000ed,0x000000ee,0x0003003e,0x000000c7,0x000000ef, + 0x000200f9,0x000000eb,0x000200f8,0x000000eb,0x0004003d,0x0000001b,0x000000f0,0x0000002d, + 0x000500b3,0x0000000d,0x000000f2,0x000000f0,0x000000f1,0x000300f7,0x000000f4,0x00000000, + 0x000400fa,0x000000f2,0x000000f3,0x000000f4,0x000200f8,0x000000f3,0x0004003d,0x00000006, + 0x000000f5,0x000000c7,0x000500c4,0x00000006,0x000000f6,0x000000f5,0x000000ca,0x0004003d, + 0x00000006,0x000000f7,0x000000da,0x000500c5,0x00000006,0x000000f8,0x000000f6,0x000000f7, + 0x0003003e,0x000000c7,0x000000f8,0x000200f9,0x000000f4,0x000200f8,0x000000f4,0x000200f9, + 0x000000d9,0x000200f8,0x000000f9,0x0004003d,0x0000001b,0x000000fa,0x0000002d,0x0004003d, + 0x0000001b,0x000000fb,0x0000002c,0x00050082,0x0000001b,0x000000fd,0x000000fb,0x000000fc, + 0x000500ad,0x0000000d,0x000000fe,0x000000fa,0x000000fd,0x000300f7,0x00000100,0x00000000, + 0x000400fa,0x000000fe,0x000000ff,0x00000100,0x000200f8,0x000000ff,0x0004003d,0x00000006, + 0x00000102,0x000000c7,0x000500c7,0x00000006,0x00000104,0x00000102,0x00000103,0x0003003e, + 0x00000101,0x00000104,0x0004003d,0x0000001b,0x00000105,0x0000002d,0x0004003d,0x0000001b, + 0x00000106,0x0000002c,0x00050082,0x0000001b,0x00000108,0x00000106,0x00000107,0x000500af, + 0x0000000d,0x00000109,0x00000105,0x00000108,0x000300f7,0x0000010b,0x00000000,0x000400fa, + 0x00000109,0x0000010a,0x0000010b,0x000200f8,0x0000010a,0x0004003d,0x00000006,0x0000010c, + 0x000000c7,0x000500c2,0x00000006,0x0000010d,0x0000010c,0x000000ca,0x0004003d,0x00000006, + 0x0000010e,0x00000101,0x000500c5,0x00000006,0x0000010f,0x0000010d,0x0000010e,0x0003003e, + 0x000000c7,0x0000010f,0x000200f9,0x0000010b,0x000200f8,0x0000010b,0x0004003d,0x0000001b, + 0x00000110,0x0000002d,0x0004003d,0x0000001b,0x00000111,0x0000002c,0x00050082,0x0000001b, + 0x00000113,0x00000111,0x00000112,0x000500af,0x0000000d,0x00000114,0x00000110,0x00000113, + 0x000300f7,0x00000116,0x00000000,0x000400fa,0x00000114,0x00000115,0x00000116,0x000200f8, + 0x00000115,0x0004003d,0x00000006,0x00000117,0x000000c7,0x000500c2,0x00000006,0x00000118, + 0x00000117,0x000000ca,0x0004003d,0x00000006,0x00000119,0x00000101,0x000500c5,0x00000006, + 0x0000011a,0x00000118,0x00000119,0x0003003e,0x000000c7,0x0000011a,0x000200f9,0x00000116, + 0x000200f8,0x00000116,0x0004003d,0x0000001b,0x0000011b,0x0000002d,0x0004003d,0x0000001b, + 0x0000011c,0x0000002c,0x00050082,0x0000001b,0x0000011e,0x0000011c,0x0000011d,0x000500af, + 0x0000000d,0x0000011f,0x0000011b,0x0000011e,0x000300f7,0x00000121,0x00000000,0x000400fa, + 0x0000011f,0x00000120,0x00000121,0x000200f8,0x00000120,0x0004003d,0x00000006,0x00000122, + 0x000000c7,0x000500c2,0x00000006,0x00000123,0x00000122,0x000000ca,0x0004003d,0x00000006, + 0x00000124,0x00000101,0x000500c5,0x00000006,0x00000125,0x00000123,0x00000124,0x0003003e, + 0x000000c7,0x00000125,0x000200f9,0x00000121,0x000200f8,0x00000121,0x000200f9,0x00000100, + 0x000200f8,0x00000100,0x000200f9,0x000000d9,0x000200f8,0x000000d9,0x0004003d,0x00000006, + 0x00000126,0x000000c7,0x000200fe,0x00000126,0x00010038,0x00050036,0x00000006,0x00000036, + 0x00000000,0x00000022,0x00030037,0x00000007,0x00000034,0x00030037,0x00000007,0x00000035, + 0x000200f8,0x00000037,0x0004003d,0x00000006,0x00000129,0x00000034,0x000500c2,0x00000006, + 0x0000012a,0x00000129,0x000000d6,0x000500c7,0x00000006,0x0000012b,0x0000012a,0x000000dc, + 0x0004007c,0x0000001b,0x0000012c,0x0000012b,0x0004003d,0x00000006,0x0000012d,0x00000035, + 0x000500c2,0x00000006,0x0000012e,0x0000012d,0x000000d6,0x000500c7,0x00000006,0x0000012f, + 0x0000012e,0x000000dc,0x0004007c,0x0000001b,0x00000130,0x0000012f,0x00050082,0x0000001b, + 0x00000131,0x0000012c,0x00000130,0x0006000c,0x0000001b,0x00000132,0x00000001,0x00000005, + 0x00000131,0x0004003d,0x00000006,0x00000133,0x00000034,0x000500c2,0x00000006,0x00000134, + 0x00000133,0x000000ca,0x000500c7,0x00000006,0x00000135,0x00000134,0x000000dc,0x0004007c, + 0x0000001b,0x00000136,0x00000135,0x0004003d,0x00000006,0x00000137,0x00000035,0x000500c2, + 0x00000006,0x00000138,0x00000137,0x000000ca,0x000500c7,0x00000006,0x00000139,0x00000138, + 0x000000dc,0x0004007c,0x0000001b,0x0000013a,0x00000139,0x00050082,0x0000001b,0x0000013b, + 0x00000136,0x0000013a,0x0006000c,0x0000001b,0x0000013c,0x00000001,0x00000005,0x0000013b, + 0x00050080,0x0000001b,0x0000013d,0x00000132,0x0000013c,0x0004003d,0x00000006,0x0000013e, + 0x00000034,0x000500c2,0x00000006,0x0000013f,0x0000013e,0x000000ce,0x000500c7,0x00000006, + 0x00000140,0x0000013f,0x000000dc,0x0004007c,0x0000001b,0x00000141,0x00000140,0x0004003d, + 0x00000006,0x00000142,0x00000035,0x000500c2,0x00000006,0x00000143,0x00000142,0x000000ce, + 0x000500c7,0x00000006,0x00000144,0x00000143,0x000000dc,0x0004007c,0x0000001b,0x00000145, + 0x00000144,0x00050082,0x0000001b,0x00000146,0x00000141,0x00000145,0x0006000c,0x0000001b, + 0x00000147,0x00000001,0x00000005,0x00000146,0x00050080,0x0000001b,0x00000148,0x0000013d, + 0x00000147,0x0004003d,0x00000006,0x00000149,0x00000034,0x000500c2,0x00000006,0x0000014a, + 0x00000149,0x000000d2,0x000500c7,0x00000006,0x0000014b,0x0000014a,0x000000dc,0x0004007c, + 0x0000001b,0x0000014c,0x0000014b,0x0004003d,0x00000006,0x0000014d,0x00000035,0x000500c2, + 0x00000006,0x0000014e,0x0000014d,0x000000d2,0x000500c7,0x00000006,0x0000014f,0x0000014e, + 0x000000dc,0x0004007c,0x0000001b,0x00000150,0x0000014f,0x00050082,0x0000001b,0x00000151, + 0x0000014c,0x00000150,0x0006000c,0x0000001b,0x00000152,0x00000001,0x00000005,0x00000151, + 0x00050080,0x0000001b,0x00000153,0x00000148,0x00000152,0x0004007c,0x00000006,0x00000154, + 0x00000153,0x000200fe,0x00000154,0x00010038,0x00050036,0x00000008,0x0000003c,0x00000000, + 0x00000038,0x00030037,0x00000007,0x00000039,0x00030037,0x00000007,0x0000003a,0x00030037, + 0x00000007,0x0000003b,0x000200f8,0x0000003d,0x0004003b,0x00000086,0x00000157,0x00000007, + 0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007,0x0000015a,0x00000007, + 0x0004003b,0x00000007,0x00000167,0x00000007,0x0004003b,0x00000007,0x00000169,0x00000007, + 0x0004003b,0x00000007,0x00000176,0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007, + 0x0004003b,0x00000007,0x00000183,0x00000007,0x0004003b,0x00000007,0x00000185,0x00000007, + 0x0004003d,0x00000006,0x00000159,0x00000039,0x0003003e,0x00000158,0x00000159,0x0004003d, + 0x00000006,0x0000015b,0x0000003b,0x0003003e,0x0000015a,0x0000015b,0x00060039,0x00000006, + 0x0000015c,0x00000036,0x00000158,0x0000015a,0x00050041,0x00000007,0x0000015e,0x00000157, + 0x0000015d,0x0003003e,0x0000015e,0x0000015c,0x0004003d,0x00000006,0x0000015f,0x00000039, + 0x000500c2,0x00000006,0x00000160,0x0000015f,0x000000ca,0x0004003d,0x00000006,0x00000161, + 0x0000003a,0x000500c7,0x00000006,0x00000162,0x00000161,0x000000dc,0x000500c4,0x00000006, + 0x00000163,0x00000162,0x000000d2,0x000500c5,0x00000006,0x00000164,0x00000160,0x00000163, + 0x0003003e,0x00000039,0x00000164,0x0004003d,0x00000006,0x00000165,0x0000003a,0x000500c2, + 0x00000006,0x00000166,0x00000165,0x000000ca,0x0003003e,0x0000003a,0x00000166,0x0004003d, + 0x00000006,0x00000168,0x00000039,0x0003003e,0x00000167,0x00000168,0x0004003d,0x00000006, + 0x0000016a,0x0000003b,0x0003003e,0x00000169,0x0000016a,0x00060039,0x00000006,0x0000016b, + 0x00000036,0x00000167,0x00000169,0x00050041,0x00000007,0x0000016d,0x00000157,0x0000016c, + 0x0003003e,0x0000016d,0x0000016b,0x0004003d,0x00000006,0x0000016e,0x00000039,0x000500c2, + 0x00000006,0x0000016f,0x0000016e,0x000000ca,0x0004003d,0x00000006,0x00000170,0x0000003a, + 0x000500c7,0x00000006,0x00000171,0x00000170,0x000000dc,0x000500c4,0x00000006,0x00000172, + 0x00000171,0x000000d2,0x000500c5,0x00000006,0x00000173,0x0000016f,0x00000172,0x0003003e, + 0x00000039,0x00000173,0x0004003d,0x00000006,0x00000174,0x0000003a,0x000500c2,0x00000006, + 0x00000175,0x00000174,0x000000ca,0x0003003e,0x0000003a,0x00000175,0x0004003d,0x00000006, + 0x00000177,0x00000039,0x0003003e,0x00000176,0x00000177,0x0004003d,0x00000006,0x00000179, + 0x0000003b,0x0003003e,0x00000178,0x00000179,0x00060039,0x00000006,0x0000017a,0x00000036, + 0x00000176,0x00000178,0x00050041,0x00000007,0x0000017c,0x00000157,0x0000017b,0x0003003e, + 0x0000017c,0x0000017a,0x0004003d,0x00000006,0x0000017d,0x00000039,0x000500c2,0x00000006, + 0x0000017e,0x0000017d,0x000000ca,0x0004003d,0x00000006,0x0000017f,0x0000003a,0x000500c7, + 0x00000006,0x00000180,0x0000017f,0x000000dc,0x000500c4,0x00000006,0x00000181,0x00000180, + 0x000000d2,0x000500c5,0x00000006,0x00000182,0x0000017e,0x00000181,0x0003003e,0x00000039, + 0x00000182,0x0004003d,0x00000006,0x00000184,0x00000039,0x0003003e,0x00000183,0x00000184, + 0x0004003d,0x00000006,0x00000186,0x0000003b,0x0003003e,0x00000185,0x00000186,0x00060039, + 0x00000006,0x00000187,0x00000036,0x00000183,0x00000185,0x00050041,0x00000007,0x00000188, + 0x00000157,0x000000a5,0x0003003e,0x00000188,0x00000187,0x0004003d,0x00000008,0x00000189, + 0x00000157,0x000200fe,0x00000189,0x00010038,0x00050036,0x0000003e,0x00000040,0x00000000, + 0x0000003f,0x000200f8,0x00000041,0x00050041,0x00000191,0x00000192,0x00000190,0x000000d6, + 0x0004003d,0x0000003e,0x00000193,0x00000192,0x000200fe,0x00000193,0x00010038,0x00050036, + 0x00000006,0x00000042,0x00000000,0x00000018,0x000200f8,0x00000043,0x00050041,0x00000196, + 0x00000197,0x00000190,0x00000107,0x0004003d,0x00000006,0x00000198,0x00000197,0x000200fe, + 0x00000198,0x00010038,0x00050036,0x00000006,0x00000044,0x00000000,0x00000018,0x000200f8, + 0x00000045,0x00050041,0x00000196,0x0000019b,0x00000190,0x0000011d,0x0004003d,0x00000006, + 0x0000019c,0x0000019b,0x000200fe,0x0000019c,0x00010038,0x00050036,0x00000006,0x00000046, + 0x00000000,0x00000018,0x000200f8,0x00000047,0x00050041,0x00000196,0x0000019f,0x00000190, + 0x00000112,0x0004003d,0x00000006,0x000001a0,0x0000019f,0x000200fe,0x000001a0,0x00010038, + 0x00050036,0x00000006,0x0000004b,0x00000000,0x00000049,0x00030037,0x00000048,0x0000004a, + 0x000200f8,0x0000004c,0x0004003d,0x000001a3,0x000001a6,0x000001a5,0x0004003d,0x0000003e, + 0x000001a7,0x0000004a,0x0007005f,0x00000008,0x000001a8,0x000001a6,0x000001a7,0x00000002, + 0x000000d6,0x00050051,0x00000006,0x000001a9,0x000001a8,0x00000000,0x000200fe,0x000001a9, + 0x00010038,0x00050036,0x00000006,0x0000004e,0x00000000,0x00000049,0x00030037,0x00000048, + 0x0000004d,0x000200f8,0x0000004f,0x0004003d,0x000001a3,0x000001ad,0x000001ac,0x0004003d, + 0x0000003e,0x000001ae,0x0000004d,0x0007005f,0x00000008,0x000001af,0x000001ad,0x000001ae, + 0x00000002,0x000000d6,0x00050051,0x00000006,0x000001b0,0x000001af,0x00000000,0x000200fe, + 0x000001b0,0x00010038,0x00050036,0x0000003e,0x00000052,0x00000000,0x00000050,0x00030037, + 0x00000048,0x00000051,0x000200f8,0x00000053,0x0004003d,0x000001b3,0x000001b6,0x000001b5, + 0x0004003d,0x0000003e,0x000001b7,0x00000051,0x00050062,0x000001b8,0x000001b9,0x000001b6, + 0x000001b7,0x0007004f,0x0000003e,0x000001ba,0x000001b9,0x000001b9,0x00000000,0x00000001, + 0x000200fe,0x000001ba,0x00010038,0x00050036,0x00000002,0x00000057,0x00000000,0x00000054, + 0x00030037,0x00000048,0x00000055,0x00030037,0x00000048,0x00000056,0x000200f8,0x00000058, + 0x0004003d,0x000001b3,0x000001bd,0x000001b5,0x0004003d,0x0000003e,0x000001be,0x00000055, + 0x0004003d,0x0000003e,0x000001bf,0x00000056,0x00050051,0x0000001b,0x000001c0,0x000001bf, + 0x00000000,0x00050051,0x0000001b,0x000001c1,0x000001bf,0x00000001,0x00070050,0x000001b8, + 0x000001c2,0x000001c0,0x000001c1,0x000000d6,0x000000d6,0x00040063,0x000001bd,0x000001be, + 0x000001c2,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000005b,0x00000000,0x00000059, + 0x00030037,0x0000001c,0x0000005a,0x000200f8,0x0000005c,0x0004003d,0x000001c3,0x000001c6, + 0x000001c5,0x0004003d,0x0000001b,0x000001c7,0x0000005a,0x00050050,0x0000003e,0x000001c8, + 0x000001c7,0x000000d6,0x00050062,0x00000008,0x000001c9,0x000001c6,0x000001c8,0x00050051, + 0x00000006,0x000001ca,0x000001c9,0x00000000,0x000200fe,0x000001ca,0x00010038,0x00050036, + 0x0000000d,0x0000005d,0x00000000,0x0000000e,0x000200f8,0x0000005e,0x0004003b,0x0000001c, + 0x000001d5,0x00000007,0x00040039,0x00000006,0x000001cd,0x00000042,0x000500b2,0x0000000d, + 0x000001cf,0x000001cd,0x000001ce,0x000300f7,0x000001d1,0x00000000,0x000400fa,0x000001cf, + 0x000001d0,0x000001d4,0x000200f8,0x000001d0,0x000200fe,0x000001d2,0x000200f8,0x000001d4, + 0x0003003e,0x000001d5,0x0000011d,0x00050039,0x00000006,0x000001d6,0x0000005b,0x000001d5, + 0x000500c7,0x00000006,0x000001d8,0x000001d6,0x000001d7,0x000500ab,0x0000000d,0x000001d9, + 0x000001d8,0x0000015d,0x000200fe,0x000001d9,0x000200f8,0x000001d1,0x000100ff,0x00010038, + 0x00050036,0x00000006,0x00000060,0x00000000,0x00000049,0x00030037,0x00000048,0x0000005f, + 0x000200f8,0x00000061,0x0004003b,0x0000001c,0x000001dc,0x00000007,0x0004003b,0x0000001c, + 0x000001e1,0x00000007,0x0004003b,0x00000048,0x000001e6,0x00000007,0x0004003b,0x0000001c, + 0x000001e9,0x00000007,0x0004003b,0x0000001c,0x000001ea,0x00000007,0x0004003b,0x0000001c, + 0x000001ee,0x00000007,0x0004003b,0x0000001c,0x000001ef,0x00000007,0x0004003b,0x0000001c, + 0x000001f3,0x00000007,0x0004003b,0x0000001c,0x000001f4,0x00000007,0x0004003b,0x0000001c, + 0x000001f8,0x00000007,0x0004003b,0x0000001c,0x000001f9,0x00000007,0x0004003b,0x00000007, + 0x000001fc,0x00000007,0x0004003b,0x00000048,0x00000200,0x00000007,0x0004003b,0x00000007, + 0x00000202,0x00000007,0x0004003b,0x00000048,0x00000206,0x00000007,0x0004003b,0x00000007, + 0x00000208,0x00000007,0x0004003b,0x00000048,0x0000020c,0x00000007,0x0004003b,0x00000007, + 0x0000020e,0x00000007,0x0004003b,0x00000048,0x00000212,0x00000007,0x0004003b,0x0000001c, + 0x00000214,0x00000007,0x0004003b,0x0000001c,0x00000216,0x00000007,0x0004003b,0x00000007, + 0x00000219,0x00000007,0x0004003b,0x00000007,0x0000021b,0x00000007,0x0004003b,0x00000007, + 0x0000021d,0x00000007,0x0004003b,0x00000007,0x0000021f,0x00000007,0x00040039,0x0000003e, + 0x000001dd,0x00000040,0x00050051,0x0000001b,0x000001de,0x000001dd,0x00000000,0x00040039, + 0x00000006,0x000001df,0x00000044,0x000500c3,0x0000001b,0x000001e0,0x000001de,0x000001df, + 0x0003003e,0x000001dc,0x000001e0,0x00040039,0x0000003e,0x000001e2,0x00000040,0x00050051, + 0x0000001b,0x000001e3,0x000001e2,0x00000001,0x00040039,0x00000006,0x000001e4,0x00000044, + 0x000500c3,0x0000001b,0x000001e5,0x000001e3,0x000001e4,0x0003003e,0x000001e1,0x000001e5, + 0x0004003d,0x0000001b,0x000001e7,0x000001dc,0x00050082,0x0000001b,0x000001e8,0x000001e7, + 0x000000fc,0x0003003e,0x000001e9,0x000001e8,0x00050041,0x0000001c,0x000001eb,0x0000005f, + 0x0000015d,0x0004003d,0x0000001b,0x000001ec,0x000001eb,0x0003003e,0x000001ea,0x000001ec, + 0x00060039,0x0000001b,0x000001ed,0x00000020,0x000001e9,0x000001ea,0x0003003e,0x000001ee, + 0x000000d6,0x0003003e,0x000001ef,0x000001ed,0x00060039,0x0000001b,0x000001f0,0x00000029, + 0x000001ee,0x000001ef,0x0004003d,0x0000001b,0x000001f1,0x000001e1,0x00050082,0x0000001b, + 0x000001f2,0x000001f1,0x0000011d,0x0003003e,0x000001f3,0x000001f2,0x00050041,0x0000001c, + 0x000001f5,0x0000005f,0x0000016c,0x0004003d,0x0000001b,0x000001f6,0x000001f5,0x0003003e, + 0x000001f4,0x000001f6,0x00060039,0x0000001b,0x000001f7,0x00000020,0x000001f3,0x000001f4, + 0x0003003e,0x000001f8,0x000000d6,0x0003003e,0x000001f9,0x000001f7,0x00060039,0x0000001b, + 0x000001fa,0x00000029,0x000001f8,0x000001f9,0x00050050,0x0000003e,0x000001fb,0x000001f0, + 0x000001fa,0x0003003e,0x000001e6,0x000001fb,0x0004003d,0x0000003e,0x000001fd,0x000001e6, + 0x00050080,0x0000003e,0x000001ff,0x000001fd,0x000001fe,0x0003003e,0x00000200,0x000001ff, + 0x00050039,0x00000006,0x00000201,0x0000004b,0x00000200,0x0003003e,0x000001fc,0x00000201, + 0x0004003d,0x0000003e,0x00000203,0x000001e6,0x00050080,0x0000003e,0x00000205,0x00000203, + 0x00000204,0x0003003e,0x00000206,0x00000205,0x00050039,0x00000006,0x00000207,0x0000004b, + 0x00000206,0x0003003e,0x00000202,0x00000207,0x0004003d,0x0000003e,0x00000209,0x000001e6, + 0x00050080,0x0000003e,0x0000020b,0x00000209,0x0000020a,0x0003003e,0x0000020c,0x0000020b, + 0x00050039,0x00000006,0x0000020d,0x0000004b,0x0000020c,0x0003003e,0x00000208,0x0000020d, + 0x0004003d,0x0000003e,0x0000020f,0x000001e6,0x00050080,0x0000003e,0x00000211,0x0000020f, + 0x00000210,0x0003003e,0x00000212,0x00000211,0x00050039,0x00000006,0x00000213,0x0000004b, + 0x00000212,0x0003003e,0x0000020e,0x00000213,0x0004003d,0x0000001b,0x00000215,0x000001dc, + 0x0003003e,0x00000214,0x00000215,0x00050041,0x0000001c,0x00000217,0x0000005f,0x0000015d, + 0x0004003d,0x0000001b,0x00000218,0x00000217,0x0003003e,0x00000216,0x00000218,0x0004003d, + 0x00000006,0x0000021a,0x000001fc,0x0003003e,0x00000219,0x0000021a,0x0004003d,0x00000006, + 0x0000021c,0x00000202,0x0003003e,0x0000021b,0x0000021c,0x0004003d,0x00000006,0x0000021e, + 0x00000208,0x0003003e,0x0000021d,0x0000021e,0x0004003d,0x00000006,0x00000220,0x0000020e, + 0x0003003e,0x0000021f,0x00000220,0x000a0039,0x00000006,0x00000221,0x00000032,0x00000214, + 0x00000216,0x00000219,0x0000021b,0x0000021d,0x0000021f,0x000200fe,0x00000221,0x00010038, + 0x00050036,0x00000006,0x00000063,0x00000000,0x00000049,0x00030037,0x00000048,0x00000062, + 0x000200f8,0x00000064,0x0004003b,0x0000001c,0x00000224,0x00000007,0x0004003b,0x0000001c, + 0x00000229,0x00000007,0x0004003b,0x00000048,0x0000022e,0x00000007,0x0004003b,0x0000001c, + 0x00000231,0x00000007,0x0004003b,0x0000001c,0x00000232,0x00000007,0x0004003b,0x0000001c, + 0x00000236,0x00000007,0x0004003b,0x0000001c,0x00000237,0x00000007,0x0004003b,0x0000001c, + 0x0000023b,0x00000007,0x0004003b,0x0000001c,0x0000023c,0x00000007,0x0004003b,0x0000001c, + 0x00000240,0x00000007,0x0004003b,0x0000001c,0x00000241,0x00000007,0x0004003b,0x00000007, + 0x00000244,0x00000007,0x0004003b,0x00000048,0x00000247,0x00000007,0x0004003b,0x00000007, + 0x00000249,0x00000007,0x0004003b,0x00000048,0x0000024c,0x00000007,0x0004003b,0x00000007, + 0x0000024e,0x00000007,0x0004003b,0x00000048,0x00000251,0x00000007,0x0004003b,0x00000007, + 0x00000253,0x00000007,0x0004003b,0x00000048,0x00000256,0x00000007,0x0004003b,0x0000001c, + 0x00000258,0x00000007,0x0004003b,0x0000001c,0x0000025a,0x00000007,0x0004003b,0x00000007, + 0x0000025d,0x00000007,0x0004003b,0x00000007,0x0000025f,0x00000007,0x0004003b,0x00000007, + 0x00000261,0x00000007,0x0004003b,0x00000007,0x00000263,0x00000007,0x00040039,0x0000003e, + 0x00000225,0x00000040,0x00050051,0x0000001b,0x00000226,0x00000225,0x00000000,0x00040039, + 0x00000006,0x00000227,0x00000044,0x000500c3,0x0000001b,0x00000228,0x00000226,0x00000227, + 0x0003003e,0x00000224,0x00000228,0x00040039,0x0000003e,0x0000022a,0x00000040,0x00050051, + 0x0000001b,0x0000022b,0x0000022a,0x00000001,0x00040039,0x00000006,0x0000022c,0x00000044, + 0x000500c3,0x0000001b,0x0000022d,0x0000022b,0x0000022c,0x0003003e,0x00000229,0x0000022d, + 0x0004003d,0x0000001b,0x0000022f,0x00000224,0x00050082,0x0000001b,0x00000230,0x0000022f, + 0x000000fc,0x0003003e,0x00000231,0x00000230,0x00050041,0x0000001c,0x00000233,0x00000062, + 0x0000015d,0x0004003d,0x0000001b,0x00000234,0x00000233,0x0003003e,0x00000232,0x00000234, + 0x00060039,0x0000001b,0x00000235,0x00000020,0x00000231,0x00000232,0x0003003e,0x00000236, + 0x000000d6,0x0003003e,0x00000237,0x00000235,0x00060039,0x0000001b,0x00000238,0x00000029, + 0x00000236,0x00000237,0x0004003d,0x0000001b,0x00000239,0x00000229,0x00050082,0x0000001b, + 0x0000023a,0x00000239,0x0000011d,0x0003003e,0x0000023b,0x0000023a,0x00050041,0x0000001c, + 0x0000023d,0x00000062,0x0000016c,0x0004003d,0x0000001b,0x0000023e,0x0000023d,0x0003003e, + 0x0000023c,0x0000023e,0x00060039,0x0000001b,0x0000023f,0x00000020,0x0000023b,0x0000023c, + 0x0003003e,0x00000240,0x000000d6,0x0003003e,0x00000241,0x0000023f,0x00060039,0x0000001b, + 0x00000242,0x00000029,0x00000240,0x00000241,0x00050050,0x0000003e,0x00000243,0x00000238, + 0x00000242,0x0003003e,0x0000022e,0x00000243,0x0004003d,0x0000003e,0x00000245,0x0000022e, + 0x00050080,0x0000003e,0x00000246,0x00000245,0x000001fe,0x0003003e,0x00000247,0x00000246, + 0x00050039,0x00000006,0x00000248,0x0000004e,0x00000247,0x0003003e,0x00000244,0x00000248, + 0x0004003d,0x0000003e,0x0000024a,0x0000022e,0x00050080,0x0000003e,0x0000024b,0x0000024a, + 0x00000204,0x0003003e,0x0000024c,0x0000024b,0x00050039,0x00000006,0x0000024d,0x0000004e, + 0x0000024c,0x0003003e,0x00000249,0x0000024d,0x0004003d,0x0000003e,0x0000024f,0x0000022e, + 0x00050080,0x0000003e,0x00000250,0x0000024f,0x0000020a,0x0003003e,0x00000251,0x00000250, + 0x00050039,0x00000006,0x00000252,0x0000004e,0x00000251,0x0003003e,0x0000024e,0x00000252, + 0x0004003d,0x0000003e,0x00000254,0x0000022e,0x00050080,0x0000003e,0x00000255,0x00000254, + 0x00000210,0x0003003e,0x00000256,0x00000255,0x00050039,0x00000006,0x00000257,0x0000004e, + 0x00000256,0x0003003e,0x00000253,0x00000257,0x0004003d,0x0000001b,0x00000259,0x00000224, + 0x0003003e,0x00000258,0x00000259,0x00050041,0x0000001c,0x0000025b,0x00000062,0x0000015d, + 0x0004003d,0x0000001b,0x0000025c,0x0000025b,0x0003003e,0x0000025a,0x0000025c,0x0004003d, + 0x00000006,0x0000025e,0x00000244,0x0003003e,0x0000025d,0x0000025e,0x0004003d,0x00000006, + 0x00000260,0x00000249,0x0003003e,0x0000025f,0x00000260,0x0004003d,0x00000006,0x00000262, + 0x0000024e,0x0003003e,0x00000261,0x00000262,0x0004003d,0x00000006,0x00000264,0x00000253, + 0x0003003e,0x00000263,0x00000264,0x000a0039,0x00000006,0x00000265,0x00000032,0x00000258, + 0x0000025a,0x0000025d,0x0000025f,0x00000261,0x00000263,0x000200fe,0x00000265,0x00010038, + 0x00050036,0x00000006,0x0000006a,0x00000000,0x00000065,0x00030037,0x00000007,0x00000066, + 0x00030037,0x0000001c,0x00000067,0x00030037,0x0000001c,0x00000068,0x00030037,0x0000001c, + 0x00000069,0x000200f8,0x0000006b,0x0004003b,0x00000007,0x0000026d,0x00000007,0x0004003b, + 0x0000001c,0x00000275,0x00000007,0x0004003d,0x0000001b,0x00000268,0x00000068,0x0004003d, + 0x0000001b,0x00000269,0x00000069,0x000500ab,0x0000000d,0x0000026a,0x00000268,0x00000269, + 0x000300f7,0x0000026c,0x00000000,0x000400fa,0x0000026a,0x0000026b,0x0000026c,0x000200f8, + 0x0000026b,0x0003003e,0x00000066,0x0000015d,0x000200f9,0x0000026c,0x000200f8,0x0000026c, + 0x0004003d,0x00000006,0x0000026e,0x00000066,0x0003003e,0x0000026d,0x0000026e,0x00050039, + 0x00000006,0x0000026f,0x00000016,0x0000026d,0x0003003e,0x00000066,0x0000026f,0x00040039, + 0x00000006,0x00000270,0x00000019,0x000500aa,0x0000000d,0x00000272,0x00000270,0x00000271, + 0x000300f7,0x00000274,0x00000000,0x000400fa,0x00000272,0x00000273,0x00000274,0x000200f8, + 0x00000273,0x0004003d,0x0000001b,0x00000276,0x00000067,0x000500c3,0x0000001b,0x00000277, + 0x00000276,0x000001ce,0x0003003e,0x00000275,0x00000277,0x00040039,0x0000000d,0x00000278, + 0x0000000f,0x000300f7,0x0000027a,0x00000000,0x000400fa,0x00000278,0x00000279,0x0000027a, + 0x000200f8,0x00000279,0x0004003d,0x0000001b,0x0000027e,0x00000275,0x0004003d,0x00000006, + 0x0000027f,0x00000066,0x00050041,0x00000280,0x00000281,0x0000027d,0x0000027e,0x0003003e, + 0x00000281,0x0000027f,0x000200f9,0x0000027a,0x000200f8,0x0000027a,0x000300e1,0x0000017b, + 0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283,0x0004003d,0x0000001b,0x00000284, + 0x00000275,0x000500c6,0x0000001b,0x00000285,0x00000284,0x0000011d,0x00050041,0x00000280, + 0x00000286,0x0000027d,0x00000285,0x0004003d,0x00000006,0x00000287,0x00000286,0x0004003d, + 0x00000006,0x00000288,0x00000066,0x00050080,0x00000006,0x00000289,0x00000288,0x00000287, + 0x0003003e,0x00000066,0x00000289,0x000200f9,0x00000274,0x000200f8,0x00000274,0x0004003d, + 0x00000006,0x0000028a,0x00000066,0x000200fe,0x0000028a,0x00010038,0x00050036,0x00000006, + 0x0000006f,0x00000000,0x0000006c,0x00030037,0x00000048,0x0000006d,0x00030037,0x0000001c, + 0x0000006e,0x000200f8,0x00000070,0x0004003b,0x00000007,0x0000028d,0x00000007,0x0004003b, + 0x00000007,0x0000029d,0x00000007,0x0004003b,0x00000007,0x000002a0,0x00000007,0x0004003b, + 0x00000007,0x000002a4,0x00000007,0x0004003b,0x00000007,0x000002ad,0x00000007,0x0004003b, + 0x00000007,0x000002b0,0x00000007,0x0004003b,0x00000007,0x000002b4,0x00000007,0x0004003b, + 0x00000007,0x000002b5,0x00000007,0x0004003b,0x00000007,0x000002b7,0x00000007,0x0004003b, + 0x00000007,0x000002ba,0x00000007,0x0004003b,0x0000001c,0x000002c1,0x00000007,0x0004003b, + 0x00000007,0x000002cd,0x00000007,0x0004003b,0x00000007,0x000002cf,0x00000007,0x00050041, + 0x0000001c,0x00000295,0x0000006d,0x0000016c,0x0004003d,0x0000001b,0x00000296,0x00000295, + 0x00050041,0x0000001c,0x00000297,0x0000006d,0x0000015d,0x0004003d,0x0000001b,0x00000298, + 0x00000297,0x00050041,0x0000001c,0x00000299,0x0000006d,0x0000016c,0x0004003d,0x0000001b, + 0x0000029a,0x00000299,0x00050041,0x0000001c,0x0000029b,0x0000006d,0x0000015d,0x0004003d, + 0x0000001b,0x0000029c,0x0000029b,0x00070041,0x00000280,0x0000029e,0x00000294,0x000000d6, + 0x00000296,0x00000298,0x0004003d,0x00000006,0x0000029f,0x0000029e,0x0003003e,0x0000029d, + 0x0000029f,0x00070041,0x00000280,0x000002a1,0x00000294,0x0000011d,0x0000029a,0x0000029c, + 0x0004003d,0x00000006,0x000002a2,0x000002a1,0x0003003e,0x000002a0,0x000002a2,0x00060039, + 0x00000006,0x000002a3,0x00000025,0x0000029d,0x000002a0,0x0003003e,0x0000028d,0x000002a3, + 0x00050041,0x0000001c,0x000002a5,0x0000006d,0x0000016c,0x0004003d,0x0000001b,0x000002a6, + 0x000002a5,0x00050041,0x0000001c,0x000002a7,0x0000006d,0x0000015d,0x0004003d,0x0000001b, + 0x000002a8,0x000002a7,0x00050041,0x0000001c,0x000002a9,0x0000006d,0x0000016c,0x0004003d, + 0x0000001b,0x000002aa,0x000002a9,0x00050041,0x0000001c,0x000002ab,0x0000006d,0x0000015d, + 0x0004003d,0x0000001b,0x000002ac,0x000002ab,0x00070041,0x00000280,0x000002ae,0x00000294, + 0x00000112,0x000002a6,0x000002a8,0x0004003d,0x00000006,0x000002af,0x000002ae,0x0003003e, + 0x000002ad,0x000002af,0x00070041,0x00000280,0x000002b1,0x00000294,0x00000107,0x000002aa, + 0x000002ac,0x0004003d,0x00000006,0x000002b2,0x000002b1,0x0003003e,0x000002b0,0x000002b2, + 0x00060039,0x00000006,0x000002b3,0x00000025,0x000002ad,0x000002b0,0x0003003e,0x000002a4, + 0x000002b3,0x0004003d,0x00000006,0x000002b6,0x0000028d,0x0003003e,0x000002b5,0x000002b6, + 0x0004003d,0x00000006,0x000002b8,0x000002a4,0x0003003e,0x000002b7,0x000002b8,0x00060039, + 0x00000006,0x000002b9,0x00000025,0x000002b5,0x000002b7,0x0003003e,0x000002b4,0x000002b9, + 0x0004003d,0x00000006,0x000002bb,0x000002b4,0x0003003e,0x000002ba,0x000002bb,0x00050039, + 0x00000006,0x000002bc,0x00000013,0x000002ba,0x0003003e,0x000002b4,0x000002bc,0x00040039, + 0x00000006,0x000002bd,0x00000019,0x000500aa,0x0000000d,0x000002be,0x000002bd,0x00000271, + 0x000300f7,0x000002c0,0x00000000,0x000400fa,0x000002be,0x000002bf,0x000002c0,0x000200f8, + 0x000002bf,0x0004003d,0x0000001b,0x000002c2,0x0000006e,0x000500c3,0x0000001b,0x000002c3, + 0x000002c2,0x000001ce,0x0003003e,0x000002c1,0x000002c3,0x00040039,0x0000000d,0x000002c4, + 0x0000000f,0x000300f7,0x000002c6,0x00000000,0x000400fa,0x000002c4,0x000002c5,0x000002c6, + 0x000200f8,0x000002c5,0x0004003d,0x0000001b,0x000002c8,0x000002c1,0x0004003d,0x00000006, + 0x000002c9,0x000002b4,0x00050041,0x00000280,0x000002ca,0x000002c7,0x000002c8,0x0003003e, + 0x000002ca,0x000002c9,0x000200f9,0x000002c6,0x000200f8,0x000002c6,0x000300e1,0x0000017b, + 0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283,0x0004003d,0x0000001b,0x000002cb, + 0x000002c1,0x000500c6,0x0000001b,0x000002cc,0x000002cb,0x0000011d,0x0004003d,0x00000006, + 0x000002ce,0x000002b4,0x0003003e,0x000002cd,0x000002ce,0x00050041,0x00000280,0x000002d0, + 0x000002c7,0x000002cc,0x0004003d,0x00000006,0x000002d1,0x000002d0,0x0003003e,0x000002cf, + 0x000002d1,0x00060039,0x00000006,0x000002d2,0x00000025,0x000002cd,0x000002cf,0x0003003e, + 0x000002b4,0x000002d2,0x000200f9,0x000002c0,0x000200f8,0x000002c0,0x0004003d,0x00000006, + 0x000002d3,0x000002b4,0x000200fe,0x000002d3,0x00010038,0x00050036,0x00000002,0x00000074, + 0x00000000,0x00000071,0x00030037,0x0000001c,0x00000072,0x00030037,0x00000048,0x00000073, + 0x000200f8,0x00000075,0x0004003b,0x0000001c,0x000002d6,0x00000007,0x0004003b,0x0000001c, + 0x000002da,0x00000007,0x0004003b,0x0000001c,0x000002de,0x00000007,0x0004003b,0x0000001c, + 0x000002e8,0x00000007,0x0004003b,0x0000001c,0x000002ec,0x00000007,0x0004003b,0x0000001c, + 0x000002ef,0x00000007,0x0004003b,0x0000001c,0x000002f4,0x00000007,0x0004003b,0x00000048, + 0x00000301,0x00000007,0x00050041,0x0000001c,0x000002d7,0x00000073,0x0000015d,0x0004003d, + 0x0000001b,0x000002d8,0x000002d7,0x00050082,0x0000001b,0x000002d9,0x000002d8,0x000000ca, + 0x0003003e,0x000002d6,0x000002d9,0x00050041,0x0000001c,0x000002db,0x00000073,0x0000016c, + 0x0004003d,0x0000001b,0x000002dc,0x000002db,0x00050082,0x0000001b,0x000002dd,0x000002dc, + 0x000000ca,0x0003003e,0x000002da,0x000002dd,0x0004003d,0x0000001b,0x000002df,0x00000072, + 0x0003003e,0x000002de,0x000002df,0x000200f9,0x000002e0,0x000200f8,0x000002e0,0x000400f6, + 0x000002e2,0x000002e3,0x00000000,0x000200f9,0x000002e4,0x000200f8,0x000002e4,0x0004003d, + 0x0000001b,0x000002e5,0x000002de,0x000500b1,0x0000000d,0x000002e7,0x000002e5,0x000002e6, + 0x000400fa,0x000002e7,0x000002e1,0x000002e2,0x000200f8,0x000002e1,0x0004003d,0x0000001b, + 0x000002e9,0x000002de,0x0005008b,0x0000001b,0x000002eb,0x000002e9,0x000002ea,0x0003003e, + 0x000002e8,0x000002eb,0x0004003d,0x0000001b,0x000002ed,0x000002de,0x00050087,0x0000001b, + 0x000002ee,0x000002ed,0x000002ea,0x0003003e,0x000002ec,0x000002ee,0x0004003d,0x0000001b, + 0x000002f0,0x000002d6,0x0004003d,0x0000001b,0x000002f1,0x000002e8,0x00050084,0x0000001b, + 0x000002f2,0x000002f1,0x000000fc,0x00050080,0x0000001b,0x000002f3,0x000002f0,0x000002f2, + 0x0003003e,0x000002ef,0x000002f3,0x0004003d,0x0000001b,0x000002f5,0x000002da,0x0004003d, + 0x0000001b,0x000002f6,0x000002ec,0x00050080,0x0000001b,0x000002f7,0x000002f5,0x000002f6, + 0x0003003e,0x000002f4,0x000002f7,0x0004003d,0x0000001b,0x000002fd,0x000002de,0x0004003d, + 0x0000001b,0x000002fe,0x000002ef,0x0004003d,0x0000001b,0x000002ff,0x000002f4,0x00050050, + 0x0000003e,0x00000300,0x000002fe,0x000002ff,0x0003003e,0x00000301,0x00000300,0x00050039, + 0x00000006,0x00000302,0x00000063,0x00000301,0x00060041,0x00000280,0x00000303,0x000002fc, + 0x000000d6,0x000002fd,0x0003003e,0x00000303,0x00000302,0x000200f9,0x000002e3,0x000200f8, + 0x000002e3,0x0004003d,0x0000001b,0x00000305,0x000002de,0x00050080,0x0000001b,0x00000306, + 0x00000305,0x00000304,0x0003003e,0x000002de,0x00000306,0x000200f9,0x000002e0,0x000200f8, + 0x000002e2,0x000300e1,0x0000017b,0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283, + 0x000100fd,0x00010038,0x00050036,0x00000008,0x00000078,0x00000000,0x00000076,0x00030037, + 0x00000048,0x00000077,0x000200f8,0x00000079,0x0004003b,0x00000086,0x00000307,0x00000007, + 0x0004003b,0x00000007,0x00000308,0x00000007,0x0004003b,0x0000001c,0x0000030a,0x00000007, + 0x0004003b,0x0000001c,0x00000312,0x00000007,0x0004003b,0x00000007,0x00000318,0x00000007, + 0x0004003b,0x00000007,0x0000031f,0x00000007,0x0004003b,0x00000007,0x00000327,0x00000007, + 0x0004003b,0x00000007,0x00000334,0x00000007,0x0004003b,0x00000007,0x00000336,0x00000007, + 0x0004003b,0x00000007,0x00000338,0x00000007,0x0004003b,0x00000007,0x0000033f,0x00000007, + 0x0004003b,0x00000007,0x00000341,0x00000007,0x0004003b,0x00000007,0x00000343,0x00000007, + 0x0003003e,0x00000308,0x0000015d,0x00050039,0x00000008,0x00000309,0x0000000b,0x00000308, + 0x0003003e,0x00000307,0x00000309,0x0003003e,0x0000030a,0x000000d6,0x000200f9,0x0000030b, + 0x000200f8,0x0000030b,0x000400f6,0x0000030d,0x0000030e,0x00000000,0x000200f9,0x0000030f, + 0x000200f8,0x0000030f,0x0004003d,0x0000001b,0x00000310,0x0000030a,0x000500b1,0x0000000d, + 0x00000311,0x00000310,0x000000ca,0x000400fa,0x00000311,0x0000030c,0x0000030d,0x000200f8, + 0x0000030c,0x00050041,0x0000001c,0x00000313,0x00000077,0x0000016c,0x0004003d,0x0000001b, + 0x00000314,0x00000313,0x0004003d,0x0000001b,0x00000315,0x0000030a,0x00050080,0x0000001b, + 0x00000316,0x00000314,0x00000315,0x00050084,0x0000001b,0x00000317,0x00000316,0x000002ea, + 0x0003003e,0x00000312,0x00000317,0x0004003d,0x0000001b,0x00000319,0x00000312,0x00050041, + 0x0000001c,0x0000031a,0x00000077,0x0000015d,0x0004003d,0x0000001b,0x0000031b,0x0000031a, + 0x00050080,0x0000001b,0x0000031c,0x00000319,0x0000031b,0x00060041,0x00000280,0x0000031d, + 0x000002fc,0x000000d6,0x0000031c,0x0004003d,0x00000006,0x0000031e,0x0000031d,0x0003003e, + 0x00000318,0x0000031e,0x0004003d,0x0000001b,0x00000320,0x00000312,0x00050041,0x0000001c, + 0x00000321,0x00000077,0x0000015d,0x0004003d,0x0000001b,0x00000322,0x00000321,0x00050080, + 0x0000001b,0x00000323,0x00000320,0x00000322,0x00050080,0x0000001b,0x00000324,0x00000323, + 0x0000011d,0x00060041,0x00000280,0x00000325,0x000002fc,0x000000d6,0x00000324,0x0004003d, + 0x00000006,0x00000326,0x00000325,0x0003003e,0x0000031f,0x00000326,0x0004003d,0x0000001b, + 0x00000328,0x00000312,0x00050041,0x0000001c,0x00000329,0x00000077,0x0000015d,0x0004003d, + 0x0000001b,0x0000032a,0x00000329,0x00050080,0x0000001b,0x0000032b,0x00000328,0x0000032a, + 0x00050080,0x0000001b,0x0000032c,0x0000032b,0x00000112,0x00060041,0x00000280,0x0000032d, + 0x000002fc,0x000000d6,0x0000032c,0x0004003d,0x00000006,0x0000032e,0x0000032d,0x0003003e, + 0x00000327,0x0000032e,0x0004003d,0x0000001b,0x00000333,0x0000030a,0x0004003d,0x00000006, + 0x00000335,0x00000318,0x0003003e,0x00000334,0x00000335,0x0004003d,0x00000006,0x00000337, + 0x0000031f,0x0003003e,0x00000336,0x00000337,0x00060041,0x00000280,0x00000339,0x00000332, + 0x00000333,0x000000d6,0x0004003d,0x00000006,0x0000033a,0x00000339,0x0003003e,0x00000338, + 0x0000033a,0x00070039,0x00000008,0x0000033b,0x0000003c,0x00000334,0x00000336,0x00000338, + 0x0004003d,0x00000008,0x0000033c,0x00000307,0x00050080,0x00000008,0x0000033d,0x0000033c, + 0x0000033b,0x0003003e,0x00000307,0x0000033d,0x0004003d,0x0000001b,0x0000033e,0x0000030a, + 0x0004003d,0x00000006,0x00000340,0x0000031f,0x0003003e,0x0000033f,0x00000340,0x0004003d, + 0x00000006,0x00000342,0x00000327,0x0003003e,0x00000341,0x00000342,0x00060041,0x00000280, + 0x00000344,0x00000332,0x0000033e,0x0000011d,0x0004003d,0x00000006,0x00000345,0x00000344, + 0x0003003e,0x00000343,0x00000345,0x00070039,0x00000008,0x00000346,0x0000003c,0x0000033f, + 0x00000341,0x00000343,0x0004003d,0x00000008,0x00000347,0x00000307,0x00050080,0x00000008, + 0x00000348,0x00000347,0x00000346,0x0003003e,0x00000307,0x00000348,0x000200f9,0x0000030e, + 0x000200f8,0x0000030e,0x0004003d,0x0000001b,0x00000349,0x0000030a,0x00050080,0x0000001b, + 0x0000034a,0x00000349,0x0000011d,0x0003003e,0x0000030a,0x0000034a,0x000200f9,0x0000030b, + 0x000200f8,0x0000030d,0x0004003d,0x00000008,0x0000034b,0x00000307,0x000200fe,0x0000034b, + 0x00010038,0x00050036,0x0000007a,0x0000007d,0x00000000,0x0000007b,0x00030037,0x00000048, + 0x0000007c,0x000200f8,0x0000007e,0x0004003b,0x00000048,0x0000034e,0x00000007,0x0004003b, + 0x00000048,0x00000350,0x00000007,0x0004003b,0x00000355,0x00000356,0x00000007,0x0004003d, + 0x0000003e,0x0000034f,0x0000007c,0x0003003e,0x0000034e,0x0000034f,0x0004003d,0x0000003e, + 0x00000351,0x0000034e,0x00050050,0x0000003e,0x00000353,0x00000352,0x00000352,0x000500c3, + 0x0000003e,0x00000354,0x00000351,0x00000353,0x0003003e,0x00000350,0x00000354,0x0004003d, + 0x0000003e,0x00000357,0x0000034e,0x0004003d,0x0000003e,0x00000358,0x00000350,0x00050080, + 0x0000003e,0x00000359,0x00000357,0x00000358,0x0004003d,0x0000003e,0x0000035a,0x00000350, + 0x000500c6,0x0000003e,0x0000035b,0x00000359,0x0000035a,0x0004007c,0x0000007a,0x0000035c, + 0x0000035b,0x0003003e,0x00000356,0x0000035c,0x0004003d,0x0000007a,0x0000035d,0x00000356, + 0x000200fe,0x0000035d,0x00010038,0x00050036,0x00000006,0x00000080,0x00000000,0x00000049, + 0x00030037,0x00000048,0x0000007f,0x000200f8,0x00000081,0x0004003b,0x00000355,0x00000360, + 0x00000007,0x0004003b,0x00000048,0x00000364,0x00000007,0x0004003d,0x0000003e,0x00000361, + 0x0000007f,0x00050050,0x0000003e,0x00000362,0x000000ca,0x000000ca,0x00050082,0x0000003e, + 0x00000363,0x00000361,0x00000362,0x0003003e,0x00000364,0x00000363,0x00050039,0x0000007a, + 0x00000365,0x0000007d,0x00000364,0x0003003e,0x00000360,0x00000365,0x00050041,0x00000007, + 0x00000366,0x00000360,0x0000016c,0x0004003d,0x00000006,0x00000367,0x00000366,0x000500c4, + 0x00000006,0x00000369,0x00000367,0x00000368,0x00050041,0x00000007,0x0000036a,0x00000360, + 0x0000015d,0x0004003d,0x00000006,0x0000036b,0x0000036a,0x000500c4,0x00000006,0x0000036c, + 0x0000036b,0x000000ca,0x000500c5,0x00000006,0x0000036d,0x00000369,0x0000036c,0x00050041, + 0x0000001c,0x0000036e,0x0000007f,0x0000016c,0x0004003d,0x0000001b,0x0000036f,0x0000036e, + 0x000500c4,0x0000001b,0x00000370,0x0000036f,0x000000fc,0x0004007c,0x00000006,0x00000371, + 0x00000370,0x000500c5,0x00000006,0x00000372,0x0000036d,0x00000371,0x00050041,0x0000001c, + 0x00000373,0x0000007f,0x0000015d,0x0004003d,0x0000001b,0x00000374,0x00000373,0x0004007c, + 0x00000006,0x00000375,0x00000374,0x000500c5,0x00000006,0x00000376,0x00000372,0x00000375, + 0x000200fe,0x00000376,0x00010038,0x00050036,0x0000003e,0x00000084,0x00000000,0x00000082, + 0x00030037,0x00000007,0x00000083,0x000200f8,0x00000085,0x0004003b,0x0000001c,0x00000379, + 0x00000007,0x0004003b,0x0000001c,0x0000037e,0x00000007,0x0004003d,0x00000006,0x0000037a, + 0x00000083,0x000500c7,0x00000006,0x0000037b,0x0000037a,0x000001d7,0x0004007c,0x0000001b, + 0x0000037c,0x0000037b,0x00050082,0x0000001b,0x0000037d,0x0000037c,0x000000ca,0x0003003e, + 0x00000379,0x0000037d,0x0004003d,0x00000006,0x0000037f,0x00000083,0x000500c2,0x00000006, + 0x00000380,0x0000037f,0x000000fc,0x000500c7,0x00000006,0x00000381,0x00000380,0x000001d7, + 0x0004007c,0x0000001b,0x00000382,0x00000381,0x00050082,0x0000001b,0x00000383,0x00000382, + 0x000000ca,0x0003003e,0x0000037e,0x00000383,0x0004003d,0x0000001b,0x00000384,0x00000379, + 0x0004003d,0x0000001b,0x00000385,0x0000037e,0x00050050,0x0000003e,0x00000386,0x00000384, + 0x00000385,0x000200fe,0x00000386,0x00010038,0x00050036,0x00000002,0x0000008a,0x00000000, + 0x00000087,0x00030037,0x00000048,0x00000088,0x00030037,0x00000086,0x00000089,0x000200f8, + 0x0000008b,0x0004003b,0x00000048,0x00000397,0x00000007,0x0004003b,0x00000048,0x000003a9, + 0x00000007,0x0004003b,0x00000048,0x000003bb,0x00000007,0x0004003b,0x00000048,0x000003cd, + 0x00000007,0x00050041,0x0000001c,0x00000389,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x0000038a,0x00000389,0x00050041,0x0000001c,0x0000038b,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x0000038c,0x0000038b,0x00050041,0x00000007,0x0000038d,0x00000089,0x0000015d, + 0x0004003d,0x00000006,0x0000038e,0x0000038d,0x000500c4,0x00000006,0x0000038f,0x0000038e, + 0x000000ce,0x00050041,0x0000001c,0x00000390,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x00000391,0x00000390,0x00050084,0x0000001b,0x00000392,0x00000391,0x000000fc,0x00050080, + 0x0000001b,0x00000393,0x00000392,0x000000d6,0x00050041,0x0000001c,0x00000394,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x00000395,0x00000394,0x00050050,0x0000003e,0x00000396, + 0x00000393,0x00000395,0x0003003e,0x00000397,0x00000396,0x00050039,0x00000006,0x00000398, + 0x00000080,0x00000397,0x000500c5,0x00000006,0x00000399,0x0000038f,0x00000398,0x00070041, + 0x00000280,0x0000039a,0x00000294,0x000000d6,0x0000038a,0x0000038c,0x0003003e,0x0000039a, + 0x00000399,0x00050041,0x0000001c,0x0000039b,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x0000039c,0x0000039b,0x00050041,0x0000001c,0x0000039d,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x0000039e,0x0000039d,0x00050041,0x00000007,0x0000039f,0x00000089,0x0000016c, + 0x0004003d,0x00000006,0x000003a0,0x0000039f,0x000500c4,0x00000006,0x000003a1,0x000003a0, + 0x000000ce,0x00050041,0x0000001c,0x000003a2,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x000003a3,0x000003a2,0x00050084,0x0000001b,0x000003a4,0x000003a3,0x000000fc,0x00050080, + 0x0000001b,0x000003a5,0x000003a4,0x0000011d,0x00050041,0x0000001c,0x000003a6,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x000003a7,0x000003a6,0x00050050,0x0000003e,0x000003a8, + 0x000003a5,0x000003a7,0x0003003e,0x000003a9,0x000003a8,0x00050039,0x00000006,0x000003aa, + 0x00000080,0x000003a9,0x000500c5,0x00000006,0x000003ab,0x000003a1,0x000003aa,0x00070041, + 0x00000280,0x000003ac,0x00000294,0x0000011d,0x0000039c,0x0000039e,0x0003003e,0x000003ac, + 0x000003ab,0x00050041,0x0000001c,0x000003ad,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x000003ae,0x000003ad,0x00050041,0x0000001c,0x000003af,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x000003b0,0x000003af,0x00050041,0x00000007,0x000003b1,0x00000089,0x0000017b, + 0x0004003d,0x00000006,0x000003b2,0x000003b1,0x000500c4,0x00000006,0x000003b3,0x000003b2, + 0x000000ce,0x00050041,0x0000001c,0x000003b4,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x000003b5,0x000003b4,0x00050084,0x0000001b,0x000003b6,0x000003b5,0x000000fc,0x00050080, + 0x0000001b,0x000003b7,0x000003b6,0x00000112,0x00050041,0x0000001c,0x000003b8,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x000003b9,0x000003b8,0x00050050,0x0000003e,0x000003ba, + 0x000003b7,0x000003b9,0x0003003e,0x000003bb,0x000003ba,0x00050039,0x00000006,0x000003bc, + 0x00000080,0x000003bb,0x000500c5,0x00000006,0x000003bd,0x000003b3,0x000003bc,0x00070041, + 0x00000280,0x000003be,0x00000294,0x00000112,0x000003ae,0x000003b0,0x0003003e,0x000003be, + 0x000003bd,0x00050041,0x0000001c,0x000003bf,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x000003c0,0x000003bf,0x00050041,0x0000001c,0x000003c1,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x000003c2,0x000003c1,0x00050041,0x00000007,0x000003c3,0x00000089,0x000000a5, + 0x0004003d,0x00000006,0x000003c4,0x000003c3,0x000500c4,0x00000006,0x000003c5,0x000003c4, + 0x000000ce,0x00050041,0x0000001c,0x000003c6,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x000003c7,0x000003c6,0x00050084,0x0000001b,0x000003c8,0x000003c7,0x000000fc,0x00050080, + 0x0000001b,0x000003c9,0x000003c8,0x00000107,0x00050041,0x0000001c,0x000003ca,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x000003cb,0x000003ca,0x00050050,0x0000003e,0x000003cc, + 0x000003c9,0x000003cb,0x0003003e,0x000003cd,0x000003cc,0x00050039,0x00000006,0x000003ce, + 0x00000080,0x000003cd,0x000500c5,0x00000006,0x000003cf,0x000003c5,0x000003ce,0x00070041, + 0x00000280,0x000003d0,0x00000294,0x00000107,0x000003c0,0x000003c2,0x0003003e,0x000003d0, + 0x000003cf,0x000300e1,0x0000017b,0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x00000090,0x00000000,0x0000008c,0x00030037, + 0x00000007,0x0000008d,0x00030037,0x00000007,0x0000008e,0x00030037,0x00000007,0x0000008f, + 0x000200f8,0x00000091,0x0004003b,0x00000007,0x000003d1,0x00000007,0x0004003d,0x00000006, + 0x000003d2,0x0000008f,0x000500c4,0x00000006,0x000003d3,0x0000016c,0x000003d2,0x00050082, + 0x00000006,0x000003d4,0x000003d3,0x0000016c,0x0003003e,0x000003d1,0x000003d4,0x0004003d, + 0x00000006,0x000003d5,0x0000008d,0x0004003d,0x00000006,0x000003d6,0x0000008e,0x000500c2, + 0x00000006,0x000003d7,0x000003d5,0x000003d6,0x0004003d,0x00000006,0x000003d8,0x000003d1, + 0x000500c7,0x00000006,0x000003d9,0x000003d7,0x000003d8,0x000200fe,0x000003d9,0x00010038, + 0x00050036,0x00000002,0x00000098,0x00000000,0x00000092,0x00030037,0x00000048,0x00000093, + 0x00030037,0x0000001c,0x00000094,0x00030037,0x00000048,0x00000095,0x00030037,0x00000048, + 0x00000096,0x00030037,0x0000001c,0x00000097,0x000200f8,0x00000099,0x0004003b,0x00000007, + 0x000003de,0x00000007,0x0004003b,0x00000007,0x000003df,0x00000007,0x0004003b,0x00000007, + 0x000003e0,0x00000007,0x0004003b,0x00000007,0x000003e5,0x00000007,0x0004003b,0x00000007, + 0x000003e6,0x00000007,0x0004003b,0x00000007,0x000003e7,0x00000007,0x0004003b,0x00000007, + 0x000003ed,0x00000007,0x0004003b,0x00000007,0x000003ee,0x00000007,0x0004003b,0x00000007, + 0x000003ef,0x00000007,0x0004003b,0x00000007,0x000003f3,0x00000007,0x0004003b,0x00000007, + 0x000003f4,0x00000007,0x0004003b,0x00000007,0x000003f5,0x00000007,0x0004003d,0x0000001b, + 0x000003dc,0x00000094,0x0004007c,0x00000006,0x000003dd,0x000003dc,0x0003003e,0x000003de, + 0x000003dd,0x0003003e,0x000003df,0x0000015d,0x0003003e,0x000003e0,0x0000017b,0x00070039, + 0x00000006,0x000003e1,0x00000090,0x000003de,0x000003df,0x000003e0,0x0004007c,0x0000001b, + 0x000003e2,0x000003e1,0x0004003d,0x0000001b,0x000003e3,0x00000094,0x0004007c,0x00000006, + 0x000003e4,0x000003e3,0x0003003e,0x000003e5,0x000003e4,0x0003003e,0x000003e6,0x0000017b, + 0x0003003e,0x000003e7,0x00000291,0x00070039,0x00000006,0x000003e8,0x00000090,0x000003e5, + 0x000003e6,0x000003e7,0x0004007c,0x0000001b,0x000003e9,0x000003e8,0x00050050,0x0000003e, + 0x000003ea,0x000003e2,0x000003e9,0x0003003e,0x00000095,0x000003ea,0x0004003d,0x0000001b, + 0x000003eb,0x00000094,0x0004007c,0x00000006,0x000003ec,0x000003eb,0x0003003e,0x000003ed, + 0x000003ec,0x0003003e,0x000003ee,0x0000016c,0x0003003e,0x000003ef,0x0000016c,0x00070039, + 0x00000006,0x000003f0,0x00000090,0x000003ed,0x000003ee,0x000003ef,0x0004003d,0x0000001b, + 0x000003f1,0x00000094,0x0004007c,0x00000006,0x000003f2,0x000003f1,0x0003003e,0x000003f3, + 0x000003f2,0x0003003e,0x000003f4,0x000001ce,0x0003003e,0x000003f5,0x0000016c,0x00070039, + 0x00000006,0x000003f6,0x00000090,0x000003f3,0x000003f4,0x000003f5,0x000500c4,0x00000006, + 0x000003f7,0x000003f6,0x0000016c,0x000500c5,0x00000006,0x000003f8,0x000003f0,0x000003f7, + 0x0004007c,0x0000001b,0x000003f9,0x000003f8,0x0003003e,0x00000097,0x000003f9,0x0004003d, + 0x0000003e,0x000003fa,0x00000093,0x00050050,0x0000007a,0x000003fb,0x00000291,0x00000291, + 0x000500c4,0x0000003e,0x000003fc,0x000003fa,0x000003fb,0x0004003d,0x0000003e,0x000003fd, + 0x00000095,0x00050084,0x0000003e,0x000003ff,0x000003fd,0x000003fe,0x00050080,0x0000003e, + 0x00000400,0x000003fc,0x000003ff,0x0003003e,0x00000096,0x00000400,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000009f,0x00000000,0x0000009a,0x00030037,0x00000048,0x0000009b, + 0x00030037,0x00000048,0x0000009c,0x00030037,0x00000048,0x0000009d,0x00030037,0x0000001c, + 0x0000009e,0x000200f8,0x000000a0,0x0004003b,0x00000048,0x00000401,0x00000007,0x0004003b, + 0x00000048,0x00000402,0x00000007,0x0004003b,0x0000001c,0x00000403,0x00000007,0x0004003b, + 0x00000048,0x00000404,0x00000007,0x0004003b,0x0000001c,0x00000406,0x00000007,0x0004003b, + 0x00000048,0x00000408,0x00000007,0x0004003b,0x00000048,0x00000409,0x00000007,0x0004003b, + 0x0000001c,0x0000040a,0x00000007,0x0004003b,0x00000048,0x0000040f,0x00000007,0x0004003b, + 0x00000048,0x00000424,0x00000007,0x0004003b,0x00000048,0x00000426,0x00000007,0x0004003b, + 0x00000429,0x0000042a,0x00000007,0x0004003b,0x00000007,0x0000042f,0x00000007,0x0004003b, + 0x00000048,0x00000430,0x00000007,0x0004003b,0x00000007,0x00000433,0x00000007,0x0004003b, + 0x00000048,0x00000434,0x00000007,0x0004003b,0x00000007,0x00000437,0x00000007,0x0004003b, + 0x00000007,0x00000438,0x00000007,0x0004003b,0x00000007,0x0000043a,0x00000007,0x0004003b, + 0x00000048,0x0000043d,0x00000007,0x0004003b,0x00000048,0x00000441,0x00000007,0x0004003b, + 0x00000048,0x00000445,0x00000007,0x0004003b,0x00000048,0x00000458,0x00000007,0x0004003b, + 0x00000048,0x0000045c,0x00000007,0x0004003b,0x0000001c,0x0000047b,0x00000007,0x0004003b, + 0x00000048,0x0000047d,0x00000007,0x0004003b,0x00000086,0x0000047f,0x00000007,0x0004003b, + 0x00000048,0x00000480,0x00000007,0x0004003b,0x00000048,0x00000483,0x00000007,0x0004003b, + 0x00000086,0x00000485,0x00000007,0x0004003b,0x00000007,0x00000488,0x00000007,0x0004003b, + 0x00000048,0x00000489,0x00000007,0x0004003b,0x0000001c,0x0000048b,0x00000007,0x0004003b, + 0x00000048,0x0000048e,0x00000007,0x0004003b,0x00000007,0x0000048f,0x00000007,0x0004003b, + 0x00000048,0x00000492,0x00000007,0x0004003b,0x00000007,0x00000496,0x00000007,0x0004003b, + 0x00000007,0x0000049d,0x00000007,0x0004003b,0x0000001c,0x0000049f,0x00000007,0x0004003b, + 0x0000001c,0x000004a1,0x00000007,0x0004003b,0x0000001c,0x000004a3,0x00000007,0x0004003b, + 0x00000048,0x000004b3,0x00000007,0x0004003b,0x00000048,0x000004b4,0x00000007,0x0004003d, + 0x0000003e,0x00000405,0x0000009d,0x0003003e,0x00000404,0x00000405,0x0004003d,0x0000001b, + 0x00000407,0x0000009e,0x0003003e,0x00000406,0x00000407,0x00090039,0x00000002,0x0000040b, + 0x00000098,0x00000404,0x00000406,0x00000408,0x00000409,0x0000040a,0x0004003d,0x0000003e, + 0x0000040c,0x00000408,0x0003003e,0x00000401,0x0000040c,0x0004003d,0x0000003e,0x0000040d, + 0x00000409,0x0003003e,0x00000402,0x0000040d,0x0004003d,0x0000001b,0x0000040e,0x0000040a, + 0x0003003e,0x00000403,0x0000040e,0x0004003d,0x0000003e,0x00000410,0x00000402,0x00050050, + 0x0000007a,0x00000411,0x000000a5,0x000000a5,0x000500c3,0x0000003e,0x00000412,0x00000410, + 0x00000411,0x0003003e,0x0000040f,0x00000412,0x00040039,0x0000000d,0x00000413,0x0000005d, + 0x000300f7,0x00000415,0x00000000,0x000400fa,0x00000413,0x00000414,0x00000415,0x000200f8, + 0x00000414,0x00050041,0x0000001c,0x00000416,0x00000401,0x0000016c,0x0004003d,0x0000001b, + 0x00000417,0x00000416,0x000500c7,0x0000001b,0x00000419,0x00000417,0x00000418,0x000500aa, + 0x0000000d,0x0000041a,0x00000419,0x000000d6,0x000300f7,0x0000041c,0x00000000,0x000400fa, + 0x0000041a,0x0000041b,0x0000041c,0x000200f8,0x0000041b,0x00050041,0x0000001c,0x0000041d, + 0x00000401,0x0000015d,0x0004003d,0x0000001b,0x0000041e,0x0000041d,0x000500c7,0x0000001b, + 0x0000041f,0x0000041e,0x0000011d,0x000500aa,0x0000000d,0x00000420,0x0000041f,0x000000d6, + 0x000200f9,0x0000041c,0x000200f8,0x0000041c,0x000700f5,0x0000000d,0x00000421,0x0000041a, + 0x00000414,0x00000420,0x0000041b,0x000300f7,0x00000423,0x00000000,0x000400fa,0x00000421, + 0x00000422,0x00000423,0x000200f8,0x00000422,0x0004003d,0x0000003e,0x00000425,0x0000040f, + 0x0003003e,0x00000424,0x00000425,0x0003003e,0x00000426,0x000001fe,0x00060039,0x00000002, + 0x00000427,0x00000057,0x00000424,0x00000426,0x000200f9,0x00000423,0x000200f8,0x00000423, + 0x000100fd,0x000200f8,0x00000415,0x00040039,0x00000006,0x0000042b,0x00000044,0x00040039, + 0x00000006,0x0000042c,0x00000046,0x00050082,0x00000006,0x0000042d,0x0000042c,0x0000016c, + 0x000500ab,0x0000000d,0x0000042e,0x0000042b,0x0000042d,0x0003003e,0x0000042a,0x0000042e, + 0x0004003d,0x0000003e,0x00000431,0x00000402,0x0003003e,0x00000430,0x00000431,0x00050039, + 0x00000006,0x00000432,0x00000060,0x00000430,0x0003003e,0x0000042f,0x00000432,0x0004003d, + 0x0000003e,0x00000435,0x00000402,0x0003003e,0x00000434,0x00000435,0x00050039,0x00000006, + 0x00000436,0x00000063,0x00000434,0x0003003e,0x00000433,0x00000436,0x0004003d,0x00000006, + 0x00000439,0x0000042f,0x0003003e,0x00000438,0x00000439,0x0004003d,0x00000006,0x0000043b, + 0x00000433,0x0003003e,0x0000043a,0x0000043b,0x00060039,0x00000006,0x0000043c,0x00000036, + 0x00000438,0x0000043a,0x0003003e,0x00000437,0x0000043c,0x0004003d,0x0000003e,0x0000043e, + 0x0000009d,0x00050050,0x0000007a,0x0000043f,0x0000016c,0x0000016c,0x000500c4,0x0000003e, + 0x00000440,0x0000043e,0x0000043f,0x0003003e,0x0000043d,0x00000440,0x0004003d,0x0000003e, + 0x00000442,0x0000009d,0x00050050,0x0000007a,0x00000443,0x00000291,0x00000291,0x000500c4, + 0x0000003e,0x00000444,0x00000442,0x00000443,0x0003003e,0x00000441,0x00000444,0x00050041, + 0x0000001c,0x00000446,0x00000445,0x0000016c,0x0003003e,0x00000446,0x000000d6,0x000200f9, + 0x00000447,0x000200f8,0x00000447,0x000400f6,0x00000449,0x0000044a,0x00000000,0x000200f9, + 0x0000044b,0x000200f8,0x0000044b,0x00050041,0x0000001c,0x0000044c,0x00000445,0x0000016c, + 0x0004003d,0x0000001b,0x0000044d,0x0000044c,0x000500b1,0x0000000d,0x0000044e,0x0000044d, + 0x00000112,0x000400fa,0x0000044e,0x00000448,0x00000449,0x000200f8,0x00000448,0x00050041, + 0x0000001c,0x0000044f,0x00000445,0x0000015d,0x0003003e,0x0000044f,0x000000d6,0x000200f9, + 0x00000450,0x000200f8,0x00000450,0x000400f6,0x00000452,0x00000453,0x00000000,0x000200f9, + 0x00000454,0x000200f8,0x00000454,0x00050041,0x0000001c,0x00000455,0x00000445,0x0000015d, + 0x0004003d,0x0000001b,0x00000456,0x00000455,0x000500b1,0x0000000d,0x00000457,0x00000456, + 0x00000112,0x000400fa,0x00000457,0x00000451,0x00000452,0x000200f8,0x00000451,0x0004003d, + 0x0000003e,0x00000459,0x0000043d,0x0004003d,0x0000003e,0x0000045a,0x00000445,0x00050080, + 0x0000003e,0x0000045b,0x00000459,0x0000045a,0x0003003e,0x0000045c,0x0000045b,0x00050039, + 0x0000003e,0x0000045d,0x00000052,0x0000045c,0x0003003e,0x00000458,0x0000045d,0x0004003d, + 0x0000000d,0x0000045e,0x0000042a,0x000400a8,0x0000000d,0x0000045f,0x0000045e,0x000300f7, + 0x00000461,0x00000000,0x000400fa,0x0000045f,0x00000460,0x00000461,0x000200f8,0x00000460, + 0x0003003e,0x00000458,0x000001fe,0x000200f9,0x00000461,0x000200f8,0x00000461,0x0004003d, + 0x0000001b,0x00000462,0x00000403,0x00050041,0x0000001c,0x00000463,0x00000445,0x0000016c, + 0x0004003d,0x0000001b,0x00000464,0x00000463,0x00050084,0x0000001b,0x00000465,0x00000464, + 0x00000112,0x00050041,0x0000001c,0x00000466,0x00000445,0x0000015d,0x0004003d,0x0000001b, + 0x00000467,0x00000466,0x00050080,0x0000001b,0x00000468,0x00000465,0x00000467,0x000500aa, + 0x0000000d,0x00000469,0x00000462,0x00000468,0x000300f7,0x0000046b,0x00000000,0x000400fa, + 0x00000469,0x0000046a,0x0000046b,0x000200f8,0x0000046a,0x00050041,0x0000001c,0x0000046c, + 0x00000401,0x0000016c,0x0004003d,0x0000001b,0x0000046d,0x0000046c,0x000500c7,0x0000001b, + 0x0000046e,0x0000046d,0x00000418,0x00050041,0x0000001c,0x0000046f,0x00000401,0x0000015d, + 0x0004003d,0x0000001b,0x00000470,0x0000046f,0x000500c7,0x0000001b,0x00000471,0x00000470, + 0x0000011d,0x0004003d,0x00000006,0x00000472,0x0000042f,0x00060041,0x00000280,0x00000473, + 0x00000332,0x0000046e,0x00000471,0x0003003e,0x00000473,0x00000472,0x000200f9,0x0000046b, + 0x000200f8,0x0000046b,0x0004003d,0x0000003e,0x00000474,0x00000441,0x0004003d,0x0000003e, + 0x00000475,0x00000445,0x00050050,0x0000003e,0x00000476,0x000000ca,0x000000ca,0x00050084, + 0x0000003e,0x00000477,0x00000475,0x00000476,0x00050080,0x0000003e,0x00000478,0x00000474, + 0x00000477,0x0004003d,0x0000003e,0x00000479,0x00000458,0x00050080,0x0000003e,0x0000047a, + 0x00000478,0x00000479,0x0004003d,0x0000001b,0x0000047c,0x0000009e,0x0003003e,0x0000047b, + 0x0000047c,0x0003003e,0x0000047d,0x0000047a,0x00060039,0x00000002,0x0000047e,0x00000074, + 0x0000047b,0x0000047d,0x0004003d,0x0000003e,0x00000481,0x00000401,0x0003003e,0x00000480, + 0x00000481,0x00050039,0x00000008,0x00000482,0x00000078,0x00000480,0x0003003e,0x0000047f, + 0x00000482,0x0004003d,0x0000003e,0x00000484,0x00000401,0x0003003e,0x00000483,0x00000484, + 0x0004003d,0x00000008,0x00000486,0x0000047f,0x0003003e,0x00000485,0x00000486,0x00060039, + 0x00000002,0x00000487,0x0000008a,0x00000483,0x00000485,0x0004003d,0x0000003e,0x0000048a, + 0x00000401,0x0003003e,0x00000489,0x0000048a,0x0004003d,0x0000001b,0x0000048c,0x0000009e, + 0x0003003e,0x0000048b,0x0000048c,0x00060039,0x00000006,0x0000048d,0x0000006f,0x00000489, + 0x0000048b,0x0003003e,0x00000488,0x0000048d,0x0004003d,0x00000006,0x00000490,0x00000488, + 0x0003003e,0x0000048f,0x00000490,0x00050039,0x0000003e,0x00000491,0x00000084,0x0000048f, + 0x0003003e,0x0000048e,0x00000491,0x0004003d,0x0000003e,0x00000493,0x00000458,0x0004003d, + 0x0000003e,0x00000494,0x0000048e,0x00050080,0x0000003e,0x00000495,0x00000493,0x00000494, + 0x0003003e,0x00000492,0x00000495,0x00050041,0x0000001c,0x00000497,0x00000445,0x0000015d, + 0x0004003d,0x0000001b,0x00000498,0x00000497,0x00050041,0x0000001c,0x00000499,0x00000445, + 0x0000016c,0x0004003d,0x0000001b,0x0000049a,0x00000499,0x00050084,0x0000001b,0x0000049b, + 0x0000049a,0x00000112,0x00050080,0x0000001b,0x0000049c,0x00000498,0x0000049b,0x0004003d, + 0x00000006,0x0000049e,0x00000437,0x0003003e,0x0000049d,0x0000049e,0x0004003d,0x0000001b, + 0x000004a0,0x0000009e,0x0003003e,0x0000049f,0x000004a0,0x0004003d,0x0000001b,0x000004a2, + 0x00000403,0x0003003e,0x000004a1,0x000004a2,0x0003003e,0x000004a3,0x0000049c,0x00080039, + 0x00000006,0x000004a4,0x0000006a,0x0000049d,0x0000049f,0x000004a1,0x000004a3,0x0003003e, + 0x00000496,0x000004a4,0x00040039,0x00000006,0x000004a5,0x00000044,0x000500aa,0x0000000d, + 0x000004a6,0x000004a5,0x0000015d,0x000300f7,0x000004a8,0x00000000,0x000400fa,0x000004a6, + 0x000004a7,0x000004a8,0x000200f8,0x000004a7,0x0004003d,0x00000006,0x000004a9,0x00000496, + 0x0004003d,0x00000006,0x000004aa,0x00000488,0x000500c2,0x00000006,0x000004ab,0x000004aa, + 0x0000028f,0x000500b2,0x0000000d,0x000004ac,0x000004a9,0x000004ab,0x000200f9,0x000004a8, + 0x000200f8,0x000004a8,0x000700f5,0x0000000d,0x000004ad,0x000004a6,0x0000046b,0x000004ac, + 0x000004a7,0x000300f7,0x000004af,0x00000000,0x000400fa,0x000004ad,0x000004ae,0x000004af, + 0x000200f8,0x000004ae,0x0003003e,0x00000492,0x000001fe,0x000200f9,0x000004af,0x000200f8, + 0x000004af,0x0004003d,0x0000003e,0x000004b0,0x0000043d,0x0004003d,0x0000003e,0x000004b1, + 0x00000445,0x00050080,0x0000003e,0x000004b2,0x000004b0,0x000004b1,0x0003003e,0x000004b3, + 0x000004b2,0x0004003d,0x0000003e,0x000004b5,0x00000492,0x0003003e,0x000004b4,0x000004b5, + 0x00060039,0x00000002,0x000004b6,0x00000057,0x000004b3,0x000004b4,0x000200f9,0x00000453, + 0x000200f8,0x00000453,0x00050041,0x0000001c,0x000004b7,0x00000445,0x0000015d,0x0004003d, + 0x0000001b,0x000004b8,0x000004b7,0x00050080,0x0000001b,0x000004b9,0x000004b8,0x0000011d, + 0x0003003e,0x000004b7,0x000004b9,0x000200f9,0x00000450,0x000200f8,0x00000452,0x000200f9, + 0x0000044a,0x000200f8,0x0000044a,0x00050041,0x0000001c,0x000004ba,0x00000445,0x0000016c, + 0x0004003d,0x0000001b,0x000004bb,0x000004ba,0x00050080,0x0000001b,0x000004bc,0x000004bb, + 0x0000011d,0x0003003e,0x000004ba,0x000004bc,0x000200f9,0x00000447,0x000200f8,0x00000449, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h b/gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h new file mode 100644 index 000000000..c1c08bdbc --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h @@ -0,0 +1,625 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_COMPUTE_SCD_DIVERGENCE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000319,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0009000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000002fb,0x000002fe,0x00000304, + 0x00000307,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b, + 0x41786666,0x6e495573,0x28323374,0x003b3166,0x00030005,0x0000000a,0x00000078,0x00060005, + 0x00000012,0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000010,0x00000078, + 0x00030005,0x00000011,0x00000079,0x00060005,0x00000018,0x4d786666,0x75286e69,0x31753b31, + 0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017,0x00000079,0x00060005, + 0x0000001c,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x0000001a,0x00000078, + 0x00030005,0x0000001b,0x00000079,0x000a0005,0x00000021,0x736f7243,0x53646573,0x656e6563, + 0x6e616843,0x68546567,0x68736572,0x28646c6f,0x003b3166,0x00070005,0x00000020,0x6e656373, + 0x61684365,0x5665676e,0x65756c61,0x00000000,0x00080005,0x00000025,0x64616f4c,0x43537752, + 0x73694844,0x72676f74,0x69286d61,0x00003b31,0x00040005,0x00000024,0x646e4969,0x00007865, + 0x00090005,0x0000002a,0x726f7453,0x44435365,0x74736948,0x6172676f,0x3169286d,0x3b31753b, + 0x00000000,0x00040005,0x00000028,0x646e4969,0x00007865,0x00040005,0x00000029,0x756c6176, + 0x00000065,0x000a0005,0x0000002e,0x64616f4c,0x43537752,0x65725044,0x756f6976,0x73694873, + 0x72676f74,0x69286d61,0x00003b31,0x00040005,0x0000002d,0x646e4969,0x00007865,0x000b0005, + 0x00000033,0x726f7453,0x44435365,0x76657250,0x73756f69,0x74736948,0x6172676f,0x3169286d, + 0x3b31663b,0x00000000,0x00040005,0x00000031,0x646e4969,0x00007865,0x00040005,0x00000032, + 0x756c6176,0x00000065,0x00070005,0x00000036,0x64616f4c,0x43537752,0x6d655444,0x31692870, + 0x0000003b,0x00040005,0x00000035,0x646e4969,0x00007865,0x000a0005,0x0000003a,0x6d6f7441, + 0x6e496369,0x6d657263,0x53746e65,0x65544443,0x6928706d,0x31753b31,0x0000003b,0x00040005, + 0x00000038,0x646e4969,0x00007865,0x00050005,0x00000039,0x756c6176,0x416f5465,0x00006464, + 0x00060005,0x0000003c,0x65736552,0x44435374,0x706d6554,0x00000028,0x00070005,0x0000003f, + 0x64616f4c,0x43537752,0x74754f44,0x28747570,0x003b3169,0x00040005,0x0000003e,0x646e4969, + 0x00007865,0x00080005,0x00000043,0x726f7453,0x44435365,0x7074754f,0x69287475,0x31753b31, + 0x0000003b,0x00040005,0x00000041,0x646e4969,0x00007865,0x00040005,0x00000042,0x756c6176, + 0x00000065,0x000a0005,0x00000048,0x6d6f7441,0x6e496369,0x6d657263,0x53746e65,0x754f4443, + 0x74757074,0x3b316928,0x003b3175,0x00040005,0x00000046,0x646e4969,0x00007865,0x00050005, + 0x00000047,0x756c6176,0x416f5465,0x00006464,0x000f0005,0x00000054,0x706d6f43,0x53657475, + 0x69484443,0x676f7473,0x736d6172,0x65766944,0x6e656772,0x76286563,0x763b3369,0x693b3269, + 0x69763b31,0x69763b32,0x00003b32,0x00050005,0x0000004f,0x6f6c4769,0x496c6162,0x00000064, + 0x00050005,0x00000050,0x636f4c69,0x64496c61,0x00000000,0x00050005,0x00000051,0x636f4c69, + 0x6e496c61,0x00786564,0x00050005,0x00000052,0x6f724769,0x64497075,0x00000000,0x00050005, + 0x00000053,0x6f724769,0x69537075,0x0000657a,0x000a0005,0x00000070,0x6f5f7772,0x63697470, + 0x665f6c61,0x5f776f6c,0x5f646373,0x74736968,0x6172676f,0x0000006d,0x000c0005,0x00000082, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x5f646373,0x76657270,0x73756f69,0x7369685f, + 0x72676f74,0x00006d61,0x00090005,0x00000091,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x5f646373,0x706d6574,0x00000000,0x00090005,0x000000a9,0x6f5f7772,0x63697470,0x665f6c61, + 0x5f776f6c,0x5f646373,0x7074756f,0x00007475,0x00060005,0x000000c0,0x72756f73,0x69486563, + 0x676f7473,0x006d6172,0x00040005,0x000000c2,0x61726170,0x0000006d,0x00050005,0x000000cc, + 0x65646e69,0x526f5478,0x00646165,0x00030005,0x000000d0,0x006c6176,0x00040005,0x000000d5, + 0x61726170,0x0000006d,0x00040005,0x000000d6,0x61726170,0x0000006d,0x00040005,0x000000d8, + 0x61726170,0x0000006d,0x00040005,0x000000d9,0x61726170,0x0000006d,0x00040005,0x000000e3, + 0x61726170,0x0000006d,0x00040005,0x000000e4,0x61726170,0x0000006d,0x00040005,0x000000e6, + 0x61726170,0x0000006d,0x00040005,0x000000e7,0x61726170,0x0000006d,0x00040005,0x000000f1, + 0x61726170,0x0000006d,0x00040005,0x000000f2,0x61726170,0x0000006d,0x00040005,0x000000f4, + 0x61726170,0x0000006d,0x00040005,0x000000f5,0x61726170,0x0000006d,0x00040005,0x00000100, + 0x61726170,0x0000006d,0x00040005,0x00000101,0x61726170,0x0000006d,0x00040005,0x00000103, + 0x61726170,0x0000006d,0x00040005,0x00000104,0x61726170,0x0000006d,0x00040005,0x0000010f, + 0x61726170,0x0000006d,0x00040005,0x00000110,0x61726170,0x0000006d,0x00040005,0x00000112, + 0x61726170,0x0000006d,0x00040005,0x00000113,0x61726170,0x0000006d,0x00040005,0x0000011e, + 0x61726170,0x0000006d,0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005,0x00000121, + 0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005,0x0000012c, + 0x61726170,0x0000006d,0x00040005,0x0000012d,0x61726170,0x0000006d,0x00040005,0x0000012f, + 0x61726170,0x0000006d,0x00040005,0x00000130,0x61726170,0x0000006d,0x00040005,0x0000013a, + 0x61726170,0x0000006d,0x00040005,0x0000013b,0x61726170,0x0000006d,0x00040005,0x0000013d, + 0x61726170,0x0000006d,0x00040005,0x0000013e,0x61726170,0x0000006d,0x00040005,0x00000148, + 0x61726170,0x0000006d,0x00040005,0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014b, + 0x61726170,0x0000006d,0x00040005,0x0000014c,0x61726170,0x0000006d,0x00040005,0x00000156, + 0x61726170,0x0000006d,0x00040005,0x00000157,0x61726170,0x0000006d,0x00040005,0x00000159, + 0x61726170,0x0000006d,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00040005,0x00000164, + 0x61726170,0x0000006d,0x00040005,0x00000165,0x61726170,0x0000006d,0x00040005,0x00000167, + 0x61726170,0x0000006d,0x00040005,0x00000168,0x61726170,0x0000006d,0x00070005,0x0000017b, + 0x746c6966,0x64657265,0x74736948,0x6172676f,0x0000006d,0x00050005,0x0000019b,0x706d6574, + 0x66667542,0x00007265,0x000a0005,0x00000214,0x72727563,0x46746e65,0x65746c69,0x48646572, + 0x6f747369,0x6d617267,0x6c615673,0x00006575,0x00080005,0x00000218,0x76657270,0x73756f69, + 0x74736948,0x6172676f,0x6156736d,0x0065756c,0x00040005,0x00000219,0x61726170,0x0000006d, + 0x00050005,0x00000220,0x706d6574,0x66667542,0x00327265,0x00030005,0x00000291,0x006d7573, + 0x00050005,0x00000297,0x46736572,0x74616f6c,0x00000000,0x00040005,0x000002a2,0x55736572, + 0x00746e49,0x00040005,0x000002a9,0x61726170,0x0000006d,0x00040005,0x000002ac,0x61726170, + 0x0000006d,0x00080005,0x000002af,0x46646c6f,0x73696e69,0x47646568,0x70756f72,0x6e756f43, + 0x00000074,0x00040005,0x000002b0,0x61726170,0x0000006d,0x00040005,0x000002b1,0x61726170, + 0x0000006d,0x00040005,0x000002b8,0x30736572,0x00000000,0x00040005,0x000002b9,0x61726170, + 0x0000006d,0x00040005,0x000002bb,0x31736572,0x00000000,0x00040005,0x000002bc,0x61726170, + 0x0000006d,0x00040005,0x000002be,0x32736572,0x00000000,0x00040005,0x000002bf,0x61726170, + 0x0000006d,0x00070005,0x000002c1,0x6e656373,0x61684365,0x5665676e,0x65756c61,0x00000000, + 0x00040005,0x000002c2,0x61726170,0x0000006d,0x00040005,0x000002c4,0x61726170,0x0000006d, + 0x00040005,0x000002c7,0x61726170,0x0000006d,0x00040005,0x000002c9,0x61726170,0x0000006d, + 0x00040005,0x000002cd,0x74736968,0x0079726f,0x00040005,0x000002ce,0x61726170,0x0000006d, + 0x00040005,0x000002d1,0x61726170,0x0000006d,0x00040005,0x000002d8,0x61726170,0x0000006d, + 0x00040005,0x000002db,0x61726170,0x0000006d,0x00040005,0x000002dc,0x61726170,0x0000006d, + 0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005,0x000002df,0x61726170,0x0000006d, + 0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005,0x000002e3,0x61726170,0x0000006d, + 0x00040005,0x000002eb,0x61726170,0x0000006d,0x00040005,0x000002ee,0x61726170,0x0000006d, + 0x00040005,0x000002f1,0x61726170,0x0000006d,0x00040005,0x000002f4,0x61726170,0x0000006d, + 0x00050005,0x000002f6,0x6f724769,0x69537075,0x0000657a,0x00080005,0x000002fb,0x475f6c67, + 0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00080005,0x000002fe,0x4c5f6c67, + 0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00080005,0x00000304,0x4c5f6c67, + 0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00060005,0x00000307,0x575f6c67, + 0x476b726f,0x70756f72,0x00004449,0x00040005,0x0000030b,0x61726170,0x0000006d,0x00040005, + 0x0000030c,0x61726170,0x0000006d,0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005, + 0x0000030e,0x61726170,0x0000006d,0x00040005,0x0000030f,0x61726170,0x0000006d,0x00040005, + 0x00000315,0x464f6263,0x0000745f,0x00090006,0x00000315,0x00000000,0x706e4969,0x754c7475, + 0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x00000315,0x00000001,0x74704f75, + 0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x00000315, + 0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43, + 0x00000074,0x00060006,0x00000315,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006, + 0x00000315,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e, + 0x00006e6f,0x00070006,0x00000315,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e, + 0x00040005,0x00000317,0x464f6263,0x00000000,0x00040047,0x00000070,0x00000021,0x00000000, + 0x00040047,0x00000070,0x00000022,0x00000000,0x00040047,0x00000082,0x00000021,0x00000001, + 0x00040047,0x00000082,0x00000022,0x00000000,0x00040047,0x00000091,0x00000021,0x00000002, + 0x00040047,0x00000091,0x00000022,0x00000000,0x00040047,0x000000a9,0x00000021,0x00000003, + 0x00040047,0x000000a9,0x00000022,0x00000000,0x00040047,0x000002fb,0x0000000b,0x0000001c, + 0x00040047,0x000002fe,0x0000000b,0x0000001b,0x00040047,0x00000304,0x0000000b,0x0000001d, + 0x00040047,0x00000307,0x0000000b,0x0000001a,0x00030047,0x00000315,0x00000002,0x00050048, + 0x00000315,0x00000000,0x00000023,0x00000000,0x00050048,0x00000315,0x00000001,0x00000023, + 0x00000008,0x00050048,0x00000315,0x00000002,0x00000023,0x0000000c,0x00050048,0x00000315, + 0x00000003,0x00000023,0x00000010,0x00050048,0x00000315,0x00000004,0x00000023,0x00000014, + 0x00050048,0x00000315,0x00000005,0x00000023,0x00000018,0x00040047,0x00000317,0x00000021, + 0x00000004,0x00040047,0x00000317,0x00000022,0x00000000,0x00040047,0x00000318,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, + 0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000008,0x00000020, + 0x00000000,0x00040021,0x00000009,0x00000008,0x00000007,0x00040015,0x0000000d,0x00000020, + 0x00000001,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00050021,0x0000000f,0x0000000d, + 0x0000000e,0x0000000e,0x00040020,0x00000014,0x00000007,0x00000008,0x00050021,0x00000015, + 0x00000008,0x00000014,0x00000014,0x00020014,0x0000001e,0x00040021,0x0000001f,0x0000001e, + 0x00000007,0x00040021,0x00000023,0x00000008,0x0000000e,0x00050021,0x00000027,0x00000002, + 0x0000000e,0x00000014,0x00040021,0x0000002c,0x00000006,0x0000000e,0x00050021,0x00000030, + 0x00000002,0x0000000e,0x00000007,0x00050021,0x00000045,0x00000008,0x0000000e,0x00000014, + 0x00040017,0x0000004a,0x0000000d,0x00000003,0x00040020,0x0000004b,0x00000007,0x0000004a, + 0x00040017,0x0000004c,0x0000000d,0x00000002,0x00040020,0x0000004d,0x00000007,0x0000004c, + 0x00080021,0x0000004e,0x00000002,0x0000004b,0x0000004d,0x0000000e,0x0000004d,0x0000004d, + 0x0004002b,0x00000006,0x0000006a,0x3ee66666,0x00090019,0x0000006e,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x0000006f,0x00000000, + 0x0000006e,0x0004003b,0x0000006f,0x00000070,0x00000000,0x0004002b,0x0000000d,0x00000073, + 0x00000000,0x00040017,0x00000075,0x00000008,0x00000004,0x0004002b,0x00000008,0x00000077, + 0x00000000,0x00090019,0x00000080,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000003,0x00040020,0x00000081,0x00000000,0x00000080,0x0004003b,0x00000081, + 0x00000082,0x00000000,0x00040017,0x00000086,0x00000006,0x00000004,0x0004002b,0x00000006, + 0x0000008f,0x00000000,0x0004003b,0x0000006f,0x00000091,0x00000000,0x00040020,0x0000009c, + 0x0000000b,0x00000008,0x0004002b,0x00000008,0x0000009e,0x00000001,0x0005002c,0x0000004c, + 0x000000a1,0x00000073,0x00000073,0x0007002c,0x00000075,0x000000a2,0x00000077,0x00000077, + 0x00000077,0x00000077,0x0004002b,0x0000000d,0x000000a4,0x00000001,0x0005002c,0x0000004c, + 0x000000a5,0x000000a4,0x00000073,0x0004002b,0x0000000d,0x000000a7,0x00000002,0x0005002c, + 0x0000004c,0x000000a8,0x000000a7,0x00000073,0x0004003b,0x0000006f,0x000000a9,0x00000000, + 0x0004002b,0x00000008,0x000000bd,0x00000100,0x0004001c,0x000000be,0x00000006,0x000000bd, + 0x00040020,0x000000bf,0x00000004,0x000000be,0x0004003b,0x000000bf,0x000000c0,0x00000004, + 0x00040020,0x000000c7,0x00000004,0x00000006,0x0004002b,0x00000008,0x000000c9,0x00000002, + 0x0004002b,0x00000008,0x000000ca,0x00000d48,0x0004002b,0x00000008,0x000000cb,0x00000108, + 0x0004002b,0x0000000d,0x000000ce,0xfffffffb,0x0004002b,0x00000006,0x000000d1,0x3c10612b, + 0x0004002b,0x0000000d,0x000000d2,0x000000ff,0x0004002b,0x00000006,0x000000e0,0x3cde5c35, + 0x0004002b,0x00000006,0x000000ee,0x3d855a85,0x0004002b,0x00000006,0x000000fc,0x3df92326, + 0x0004002b,0x0000000d,0x000000fe,0x00000003,0x0004002b,0x00000006,0x0000010b,0x3e353f0e, + 0x0004002b,0x0000000d,0x0000010d,0x00000004,0x0004002b,0x00000006,0x0000011a,0x3e4d6105, + 0x0004002b,0x0000000d,0x0000011c,0x00000005,0x0004002b,0x0000000d,0x0000012a,0x00000006, + 0x0004002b,0x0000000d,0x00000138,0x00000007,0x0004002b,0x0000000d,0x00000146,0x00000008, + 0x0004002b,0x0000000d,0x00000154,0x00000009,0x0004002b,0x0000000d,0x00000162,0x0000000a, + 0x0004002b,0x00000006,0x0000016f,0x3f800000,0x0004003b,0x000000bf,0x0000017b,0x00000004, + 0x0004003b,0x000000bf,0x0000019b,0x00000004,0x0004002b,0x0000000d,0x000001a2,0x00000080, + 0x0004002b,0x0000000d,0x000001b0,0x00000040,0x0004002b,0x0000000d,0x000001be,0x00000020, + 0x0004002b,0x0000000d,0x000001cc,0x00000010,0x00040017,0x0000021d,0x00000006,0x00000002, + 0x0004001c,0x0000021e,0x0000021d,0x000000bd,0x00040020,0x0000021f,0x00000004,0x0000021e, + 0x0004003b,0x0000021f,0x00000220,0x00000004,0x00040020,0x0000022f,0x00000004,0x0000021d, + 0x00040020,0x00000290,0x00000007,0x0000021d,0x0004002b,0x00000006,0x000002a4,0x41100000, + 0x0004002b,0x00000006,0x000002a6,0x49742400,0x0004002b,0x00000008,0x000002b4,0x0000001a, + 0x0004002b,0x0000000d,0x000002f7,0x00000100,0x0005002c,0x0000004c,0x000002f8,0x000002f7, + 0x000000a4,0x00040017,0x000002f9,0x00000008,0x00000003,0x00040020,0x000002fa,0x00000001, + 0x000002f9,0x0004003b,0x000002fa,0x000002fb,0x00000001,0x0004003b,0x000002fa,0x000002fe, + 0x00000001,0x00040017,0x000002ff,0x00000008,0x00000002,0x00040020,0x00000303,0x00000001, + 0x00000008,0x0004003b,0x00000303,0x00000304,0x00000001,0x0004003b,0x000002fa,0x00000307, + 0x00000001,0x0004002b,0x00000006,0x00000312,0x387fda40,0x0004002b,0x00000006,0x00000313, + 0x477fe000,0x0004002b,0x00000006,0x00000314,0x37801002,0x0008001e,0x00000315,0x0000004c, + 0x00000008,0x00000008,0x00000008,0x00000008,0x0000021d,0x00040020,0x00000316,0x00000002, + 0x00000315,0x0004003b,0x00000316,0x00000317,0x00000002,0x0006002c,0x000002f9,0x00000318, + 0x000000bd,0x0000009e,0x0000009e,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000004d,0x000002f6,0x00000007,0x0004003b,0x0000004b, + 0x0000030b,0x00000007,0x0004003b,0x0000004d,0x0000030c,0x00000007,0x0004003b,0x0000000e, + 0x0000030d,0x00000007,0x0004003b,0x0000004d,0x0000030e,0x00000007,0x0004003b,0x0000004d, + 0x0000030f,0x00000007,0x0003003e,0x000002f6,0x000002f8,0x0004003d,0x000002f9,0x000002fc, + 0x000002fb,0x0004007c,0x0000004a,0x000002fd,0x000002fc,0x0004003d,0x000002f9,0x00000300, + 0x000002fe,0x0007004f,0x000002ff,0x00000301,0x00000300,0x00000300,0x00000000,0x00000001, + 0x0004007c,0x0000004c,0x00000302,0x00000301,0x0004003d,0x00000008,0x00000305,0x00000304, + 0x0004007c,0x0000000d,0x00000306,0x00000305,0x0004003d,0x000002f9,0x00000308,0x00000307, + 0x0007004f,0x000002ff,0x00000309,0x00000308,0x00000308,0x00000000,0x00000001,0x0004007c, + 0x0000004c,0x0000030a,0x00000309,0x0003003e,0x0000030b,0x000002fd,0x0003003e,0x0000030c, + 0x00000302,0x0003003e,0x0000030d,0x00000306,0x0003003e,0x0000030e,0x0000030a,0x0004003d, + 0x0000004c,0x00000310,0x000002f6,0x0003003e,0x0000030f,0x00000310,0x00090039,0x00000002, + 0x00000311,0x00000054,0x0000030b,0x0000030c,0x0000030d,0x0000030e,0x0000030f,0x000100fd, + 0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007, + 0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000056,0x0000000a,0x0004007c, + 0x00000008,0x00000057,0x00000056,0x000200fe,0x00000057,0x00010038,0x00050036,0x0000000d, + 0x00000012,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x00030037,0x0000000e, + 0x00000011,0x000200f8,0x00000013,0x0004003d,0x0000000d,0x0000005a,0x00000010,0x0004003d, + 0x0000000d,0x0000005b,0x00000011,0x0007000c,0x0000000d,0x0000005c,0x00000001,0x00000027, + 0x0000005a,0x0000005b,0x000200fe,0x0000005c,0x00010038,0x00050036,0x00000008,0x00000018, + 0x00000000,0x00000015,0x00030037,0x00000014,0x00000016,0x00030037,0x00000014,0x00000017, + 0x000200f8,0x00000019,0x0004003d,0x00000008,0x0000005f,0x00000016,0x0004003d,0x00000008, + 0x00000060,0x00000017,0x0007000c,0x00000008,0x00000061,0x00000001,0x00000026,0x0000005f, + 0x00000060,0x000200fe,0x00000061,0x00010038,0x00050036,0x0000000d,0x0000001c,0x00000000, + 0x0000000f,0x00030037,0x0000000e,0x0000001a,0x00030037,0x0000000e,0x0000001b,0x000200f8, + 0x0000001d,0x0004003d,0x0000000d,0x00000064,0x0000001a,0x0004003d,0x0000000d,0x00000065, + 0x0000001b,0x0007000c,0x0000000d,0x00000066,0x00000001,0x0000002a,0x00000064,0x00000065, + 0x000200fe,0x00000066,0x00010038,0x00050036,0x0000001e,0x00000021,0x00000000,0x0000001f, + 0x00030037,0x00000007,0x00000020,0x000200f8,0x00000022,0x0004003d,0x00000006,0x00000069, + 0x00000020,0x000500ba,0x0000001e,0x0000006b,0x00000069,0x0000006a,0x000200fe,0x0000006b, + 0x00010038,0x00050036,0x00000008,0x00000025,0x00000000,0x00000023,0x00030037,0x0000000e, + 0x00000024,0x000200f8,0x00000026,0x0004003d,0x0000006e,0x00000071,0x00000070,0x0004003d, + 0x0000000d,0x00000072,0x00000024,0x00050050,0x0000004c,0x00000074,0x00000072,0x00000073, + 0x00050062,0x00000075,0x00000076,0x00000071,0x00000074,0x00050051,0x00000008,0x00000078, + 0x00000076,0x00000000,0x000200fe,0x00000078,0x00010038,0x00050036,0x00000002,0x0000002a, + 0x00000000,0x00000027,0x00030037,0x0000000e,0x00000028,0x00030037,0x00000014,0x00000029, + 0x000200f8,0x0000002b,0x0004003d,0x0000006e,0x0000007b,0x00000070,0x0004003d,0x0000000d, + 0x0000007c,0x00000028,0x00050050,0x0000004c,0x0000007d,0x0000007c,0x00000073,0x0004003d, + 0x00000008,0x0000007e,0x00000029,0x00070050,0x00000075,0x0000007f,0x0000007e,0x00000077, + 0x00000077,0x00000077,0x00040063,0x0000007b,0x0000007d,0x0000007f,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000002e,0x00000000,0x0000002c,0x00030037,0x0000000e,0x0000002d, + 0x000200f8,0x0000002f,0x0004003d,0x00000080,0x00000083,0x00000082,0x0004003d,0x0000000d, + 0x00000084,0x0000002d,0x00050050,0x0000004c,0x00000085,0x00000084,0x00000073,0x00050062, + 0x00000086,0x00000087,0x00000083,0x00000085,0x00050051,0x00000006,0x00000088,0x00000087, + 0x00000000,0x000200fe,0x00000088,0x00010038,0x00050036,0x00000002,0x00000033,0x00000000, + 0x00000030,0x00030037,0x0000000e,0x00000031,0x00030037,0x00000007,0x00000032,0x000200f8, + 0x00000034,0x0004003d,0x00000080,0x0000008b,0x00000082,0x0004003d,0x0000000d,0x0000008c, + 0x00000031,0x00050050,0x0000004c,0x0000008d,0x0000008c,0x00000073,0x0004003d,0x00000006, + 0x0000008e,0x00000032,0x00070050,0x00000086,0x00000090,0x0000008e,0x0000008f,0x0000008f, + 0x0000008f,0x00040063,0x0000008b,0x0000008d,0x00000090,0x000100fd,0x00010038,0x00050036, + 0x00000008,0x00000036,0x00000000,0x00000023,0x00030037,0x0000000e,0x00000035,0x000200f8, + 0x00000037,0x0004003d,0x0000006e,0x00000092,0x00000091,0x0004003d,0x0000000d,0x00000093, + 0x00000035,0x00050050,0x0000004c,0x00000094,0x00000093,0x00000073,0x00050062,0x00000075, + 0x00000095,0x00000092,0x00000094,0x00050051,0x00000008,0x00000096,0x00000095,0x00000000, + 0x000200fe,0x00000096,0x00010038,0x00050036,0x00000002,0x0000003a,0x00000000,0x00000027, + 0x00030037,0x0000000e,0x00000038,0x00030037,0x00000014,0x00000039,0x000200f8,0x0000003b, + 0x0004003d,0x0000000d,0x00000099,0x00000038,0x00050050,0x0000004c,0x0000009a,0x00000099, + 0x00000073,0x0004003d,0x00000008,0x0000009b,0x00000039,0x0006003c,0x0000009c,0x0000009d, + 0x00000091,0x0000009a,0x00000077,0x000700ea,0x00000008,0x0000009f,0x0000009d,0x0000009e, + 0x00000077,0x0000009b,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000003c,0x00000000, + 0x00000003,0x000200f8,0x0000003d,0x0004003d,0x0000006e,0x000000a0,0x00000091,0x00040063, + 0x000000a0,0x000000a1,0x000000a2,0x0004003d,0x0000006e,0x000000a3,0x00000091,0x00040063, + 0x000000a3,0x000000a5,0x000000a2,0x0004003d,0x0000006e,0x000000a6,0x00000091,0x00040063, + 0x000000a6,0x000000a8,0x000000a2,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000003f, + 0x00000000,0x00000023,0x00030037,0x0000000e,0x0000003e,0x000200f8,0x00000040,0x0004003d, + 0x0000006e,0x000000aa,0x000000a9,0x0004003d,0x0000000d,0x000000ab,0x0000003e,0x00050050, + 0x0000004c,0x000000ac,0x000000ab,0x00000073,0x00050062,0x00000075,0x000000ad,0x000000aa, + 0x000000ac,0x00050051,0x00000008,0x000000ae,0x000000ad,0x00000000,0x000200fe,0x000000ae, + 0x00010038,0x00050036,0x00000002,0x00000043,0x00000000,0x00000027,0x00030037,0x0000000e, + 0x00000041,0x00030037,0x00000014,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000006e, + 0x000000b1,0x000000a9,0x0004003d,0x0000000d,0x000000b2,0x00000041,0x00050050,0x0000004c, + 0x000000b3,0x000000b2,0x00000073,0x0004003d,0x00000008,0x000000b4,0x00000042,0x00070050, + 0x00000075,0x000000b5,0x000000b4,0x00000077,0x00000077,0x00000077,0x00040063,0x000000b1, + 0x000000b3,0x000000b5,0x000100fd,0x00010038,0x00050036,0x00000008,0x00000048,0x00000000, + 0x00000045,0x00030037,0x0000000e,0x00000046,0x00030037,0x00000014,0x00000047,0x000200f8, + 0x00000049,0x0004003d,0x0000000d,0x000000b6,0x00000046,0x00050050,0x0000004c,0x000000b7, + 0x000000b6,0x00000073,0x0004003d,0x00000008,0x000000b8,0x00000047,0x0006003c,0x0000009c, + 0x000000b9,0x000000a9,0x000000b7,0x00000077,0x000700ea,0x00000008,0x000000ba,0x000000b9, + 0x0000009e,0x00000077,0x000000b8,0x000200fe,0x000000ba,0x00010038,0x00050036,0x00000002, + 0x00000054,0x00000000,0x0000004e,0x00030037,0x0000004b,0x0000004f,0x00030037,0x0000004d, + 0x00000050,0x00030037,0x0000000e,0x00000051,0x00030037,0x0000004d,0x00000052,0x00030037, + 0x0000004d,0x00000053,0x000200f8,0x00000055,0x0004003b,0x0000000e,0x000000c2,0x00000007, + 0x0004003b,0x0000000e,0x000000cc,0x00000007,0x0004003b,0x00000007,0x000000d0,0x00000007, + 0x0004003b,0x0000000e,0x000000d5,0x00000007,0x0004003b,0x0000000e,0x000000d6,0x00000007, + 0x0004003b,0x0000000e,0x000000d8,0x00000007,0x0004003b,0x0000000e,0x000000d9,0x00000007, + 0x0004003b,0x0000000e,0x000000e3,0x00000007,0x0004003b,0x0000000e,0x000000e4,0x00000007, + 0x0004003b,0x0000000e,0x000000e6,0x00000007,0x0004003b,0x0000000e,0x000000e7,0x00000007, + 0x0004003b,0x0000000e,0x000000f1,0x00000007,0x0004003b,0x0000000e,0x000000f2,0x00000007, + 0x0004003b,0x0000000e,0x000000f4,0x00000007,0x0004003b,0x0000000e,0x000000f5,0x00000007, + 0x0004003b,0x0000000e,0x00000100,0x00000007,0x0004003b,0x0000000e,0x00000101,0x00000007, + 0x0004003b,0x0000000e,0x00000103,0x00000007,0x0004003b,0x0000000e,0x00000104,0x00000007, + 0x0004003b,0x0000000e,0x0000010f,0x00000007,0x0004003b,0x0000000e,0x00000110,0x00000007, + 0x0004003b,0x0000000e,0x00000112,0x00000007,0x0004003b,0x0000000e,0x00000113,0x00000007, + 0x0004003b,0x0000000e,0x0000011e,0x00000007,0x0004003b,0x0000000e,0x0000011f,0x00000007, + 0x0004003b,0x0000000e,0x00000121,0x00000007,0x0004003b,0x0000000e,0x00000122,0x00000007, + 0x0004003b,0x0000000e,0x0000012c,0x00000007,0x0004003b,0x0000000e,0x0000012d,0x00000007, + 0x0004003b,0x0000000e,0x0000012f,0x00000007,0x0004003b,0x0000000e,0x00000130,0x00000007, + 0x0004003b,0x0000000e,0x0000013a,0x00000007,0x0004003b,0x0000000e,0x0000013b,0x00000007, + 0x0004003b,0x0000000e,0x0000013d,0x00000007,0x0004003b,0x0000000e,0x0000013e,0x00000007, + 0x0004003b,0x0000000e,0x00000148,0x00000007,0x0004003b,0x0000000e,0x00000149,0x00000007, + 0x0004003b,0x0000000e,0x0000014b,0x00000007,0x0004003b,0x0000000e,0x0000014c,0x00000007, + 0x0004003b,0x0000000e,0x00000156,0x00000007,0x0004003b,0x0000000e,0x00000157,0x00000007, + 0x0004003b,0x0000000e,0x00000159,0x00000007,0x0004003b,0x0000000e,0x0000015a,0x00000007, + 0x0004003b,0x0000000e,0x00000164,0x00000007,0x0004003b,0x0000000e,0x00000165,0x00000007, + 0x0004003b,0x0000000e,0x00000167,0x00000007,0x0004003b,0x0000000e,0x00000168,0x00000007, + 0x0004003b,0x00000007,0x00000214,0x00000007,0x0004003b,0x00000007,0x00000218,0x00000007, + 0x0004003b,0x0000000e,0x00000219,0x00000007,0x0004003b,0x00000290,0x00000291,0x00000007, + 0x0004003b,0x00000007,0x00000297,0x00000007,0x0004003b,0x00000014,0x000002a2,0x00000007, + 0x0004003b,0x0000000e,0x000002a9,0x00000007,0x0004003b,0x00000014,0x000002ac,0x00000007, + 0x0004003b,0x00000014,0x000002af,0x00000007,0x0004003b,0x0000000e,0x000002b0,0x00000007, + 0x0004003b,0x00000014,0x000002b1,0x00000007,0x0004003b,0x00000014,0x000002b8,0x00000007, + 0x0004003b,0x0000000e,0x000002b9,0x00000007,0x0004003b,0x00000014,0x000002bb,0x00000007, + 0x0004003b,0x0000000e,0x000002bc,0x00000007,0x0004003b,0x00000014,0x000002be,0x00000007, + 0x0004003b,0x0000000e,0x000002bf,0x00000007,0x0004003b,0x00000007,0x000002c1,0x00000007, + 0x0004003b,0x00000014,0x000002c2,0x00000007,0x0004003b,0x00000014,0x000002c4,0x00000007, + 0x0004003b,0x00000014,0x000002c7,0x00000007,0x0004003b,0x00000014,0x000002c9,0x00000007, + 0x0004003b,0x00000014,0x000002cd,0x00000007,0x0004003b,0x0000000e,0x000002ce,0x00000007, + 0x0004003b,0x00000007,0x000002d1,0x00000007,0x0004003b,0x00000007,0x000002d8,0x00000007, + 0x0004003b,0x0000000e,0x000002db,0x00000007,0x0004003b,0x00000014,0x000002dc,0x00000007, + 0x0004003b,0x0000000e,0x000002de,0x00000007,0x0004003b,0x00000014,0x000002df,0x00000007, + 0x0004003b,0x0000000e,0x000002e2,0x00000007,0x0004003b,0x00000014,0x000002e3,0x00000007, + 0x0004003b,0x0000000e,0x000002eb,0x00000007,0x0004003b,0x00000007,0x000002ee,0x00000007, + 0x0004003b,0x0000000e,0x000002f1,0x00000007,0x0004003b,0x00000014,0x000002f4,0x00000007, + 0x0004003d,0x0000000d,0x000000c1,0x00000051,0x00050041,0x0000000e,0x000000c3,0x0000004f, + 0x00000077,0x0004003d,0x0000000d,0x000000c4,0x000000c3,0x0003003e,0x000000c2,0x000000c4, + 0x00050039,0x00000008,0x000000c5,0x00000025,0x000000c2,0x00040070,0x00000006,0x000000c6, + 0x000000c5,0x00050041,0x000000c7,0x000000c8,0x000000c0,0x000000c1,0x0003003e,0x000000c8, + 0x000000c6,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb, + 0x0004003d,0x0000000d,0x000000cd,0x00000051,0x00050080,0x0000000d,0x000000cf,0x000000cd, + 0x000000ce,0x0003003e,0x000000cc,0x000000cf,0x0003003e,0x000000d0,0x0000008f,0x0004003d, + 0x0000000d,0x000000d3,0x000000cc,0x00050080,0x0000000d,0x000000d4,0x000000d3,0x00000073, + 0x0003003e,0x000000d5,0x000000d2,0x0003003e,0x000000d6,0x000000d4,0x00060039,0x0000000d, + 0x000000d7,0x00000012,0x000000d5,0x000000d6,0x0003003e,0x000000d8,0x00000073,0x0003003e, + 0x000000d9,0x000000d7,0x00060039,0x0000000d,0x000000da,0x0000001c,0x000000d8,0x000000d9, + 0x00050041,0x000000c7,0x000000db,0x000000c0,0x000000da,0x0004003d,0x00000006,0x000000dc, + 0x000000db,0x00050085,0x00000006,0x000000dd,0x000000d1,0x000000dc,0x0004003d,0x00000006, + 0x000000de,0x000000d0,0x00050081,0x00000006,0x000000df,0x000000de,0x000000dd,0x0003003e, + 0x000000d0,0x000000df,0x0004003d,0x0000000d,0x000000e1,0x000000cc,0x00050080,0x0000000d, + 0x000000e2,0x000000e1,0x000000a4,0x0003003e,0x000000e3,0x000000d2,0x0003003e,0x000000e4, + 0x000000e2,0x00060039,0x0000000d,0x000000e5,0x00000012,0x000000e3,0x000000e4,0x0003003e, + 0x000000e6,0x00000073,0x0003003e,0x000000e7,0x000000e5,0x00060039,0x0000000d,0x000000e8, + 0x0000001c,0x000000e6,0x000000e7,0x00050041,0x000000c7,0x000000e9,0x000000c0,0x000000e8, + 0x0004003d,0x00000006,0x000000ea,0x000000e9,0x00050085,0x00000006,0x000000eb,0x000000e0, + 0x000000ea,0x0004003d,0x00000006,0x000000ec,0x000000d0,0x00050081,0x00000006,0x000000ed, + 0x000000ec,0x000000eb,0x0003003e,0x000000d0,0x000000ed,0x0004003d,0x0000000d,0x000000ef, + 0x000000cc,0x00050080,0x0000000d,0x000000f0,0x000000ef,0x000000a7,0x0003003e,0x000000f1, + 0x000000d2,0x0003003e,0x000000f2,0x000000f0,0x00060039,0x0000000d,0x000000f3,0x00000012, + 0x000000f1,0x000000f2,0x0003003e,0x000000f4,0x00000073,0x0003003e,0x000000f5,0x000000f3, + 0x00060039,0x0000000d,0x000000f6,0x0000001c,0x000000f4,0x000000f5,0x00050041,0x000000c7, + 0x000000f7,0x000000c0,0x000000f6,0x0004003d,0x00000006,0x000000f8,0x000000f7,0x00050085, + 0x00000006,0x000000f9,0x000000ee,0x000000f8,0x0004003d,0x00000006,0x000000fa,0x000000d0, + 0x00050081,0x00000006,0x000000fb,0x000000fa,0x000000f9,0x0003003e,0x000000d0,0x000000fb, + 0x0004003d,0x0000000d,0x000000fd,0x000000cc,0x00050080,0x0000000d,0x000000ff,0x000000fd, + 0x000000fe,0x0003003e,0x00000100,0x000000d2,0x0003003e,0x00000101,0x000000ff,0x00060039, + 0x0000000d,0x00000102,0x00000012,0x00000100,0x00000101,0x0003003e,0x00000103,0x00000073, + 0x0003003e,0x00000104,0x00000102,0x00060039,0x0000000d,0x00000105,0x0000001c,0x00000103, + 0x00000104,0x00050041,0x000000c7,0x00000106,0x000000c0,0x00000105,0x0004003d,0x00000006, + 0x00000107,0x00000106,0x00050085,0x00000006,0x00000108,0x000000fc,0x00000107,0x0004003d, + 0x00000006,0x00000109,0x000000d0,0x00050081,0x00000006,0x0000010a,0x00000109,0x00000108, + 0x0003003e,0x000000d0,0x0000010a,0x0004003d,0x0000000d,0x0000010c,0x000000cc,0x00050080, + 0x0000000d,0x0000010e,0x0000010c,0x0000010d,0x0003003e,0x0000010f,0x000000d2,0x0003003e, + 0x00000110,0x0000010e,0x00060039,0x0000000d,0x00000111,0x00000012,0x0000010f,0x00000110, + 0x0003003e,0x00000112,0x00000073,0x0003003e,0x00000113,0x00000111,0x00060039,0x0000000d, + 0x00000114,0x0000001c,0x00000112,0x00000113,0x00050041,0x000000c7,0x00000115,0x000000c0, + 0x00000114,0x0004003d,0x00000006,0x00000116,0x00000115,0x00050085,0x00000006,0x00000117, + 0x0000010b,0x00000116,0x0004003d,0x00000006,0x00000118,0x000000d0,0x00050081,0x00000006, + 0x00000119,0x00000118,0x00000117,0x0003003e,0x000000d0,0x00000119,0x0004003d,0x0000000d, + 0x0000011b,0x000000cc,0x00050080,0x0000000d,0x0000011d,0x0000011b,0x0000011c,0x0003003e, + 0x0000011e,0x000000d2,0x0003003e,0x0000011f,0x0000011d,0x00060039,0x0000000d,0x00000120, + 0x00000012,0x0000011e,0x0000011f,0x0003003e,0x00000121,0x00000073,0x0003003e,0x00000122, + 0x00000120,0x00060039,0x0000000d,0x00000123,0x0000001c,0x00000121,0x00000122,0x00050041, + 0x000000c7,0x00000124,0x000000c0,0x00000123,0x0004003d,0x00000006,0x00000125,0x00000124, + 0x00050085,0x00000006,0x00000126,0x0000011a,0x00000125,0x0004003d,0x00000006,0x00000127, + 0x000000d0,0x00050081,0x00000006,0x00000128,0x00000127,0x00000126,0x0003003e,0x000000d0, + 0x00000128,0x0004003d,0x0000000d,0x00000129,0x000000cc,0x00050080,0x0000000d,0x0000012b, + 0x00000129,0x0000012a,0x0003003e,0x0000012c,0x000000d2,0x0003003e,0x0000012d,0x0000012b, + 0x00060039,0x0000000d,0x0000012e,0x00000012,0x0000012c,0x0000012d,0x0003003e,0x0000012f, + 0x00000073,0x0003003e,0x00000130,0x0000012e,0x00060039,0x0000000d,0x00000131,0x0000001c, + 0x0000012f,0x00000130,0x00050041,0x000000c7,0x00000132,0x000000c0,0x00000131,0x0004003d, + 0x00000006,0x00000133,0x00000132,0x00050085,0x00000006,0x00000134,0x0000010b,0x00000133, + 0x0004003d,0x00000006,0x00000135,0x000000d0,0x00050081,0x00000006,0x00000136,0x00000135, + 0x00000134,0x0003003e,0x000000d0,0x00000136,0x0004003d,0x0000000d,0x00000137,0x000000cc, + 0x00050080,0x0000000d,0x00000139,0x00000137,0x00000138,0x0003003e,0x0000013a,0x000000d2, + 0x0003003e,0x0000013b,0x00000139,0x00060039,0x0000000d,0x0000013c,0x00000012,0x0000013a, + 0x0000013b,0x0003003e,0x0000013d,0x00000073,0x0003003e,0x0000013e,0x0000013c,0x00060039, + 0x0000000d,0x0000013f,0x0000001c,0x0000013d,0x0000013e,0x00050041,0x000000c7,0x00000140, + 0x000000c0,0x0000013f,0x0004003d,0x00000006,0x00000141,0x00000140,0x00050085,0x00000006, + 0x00000142,0x000000fc,0x00000141,0x0004003d,0x00000006,0x00000143,0x000000d0,0x00050081, + 0x00000006,0x00000144,0x00000143,0x00000142,0x0003003e,0x000000d0,0x00000144,0x0004003d, + 0x0000000d,0x00000145,0x000000cc,0x00050080,0x0000000d,0x00000147,0x00000145,0x00000146, + 0x0003003e,0x00000148,0x000000d2,0x0003003e,0x00000149,0x00000147,0x00060039,0x0000000d, + 0x0000014a,0x00000012,0x00000148,0x00000149,0x0003003e,0x0000014b,0x00000073,0x0003003e, + 0x0000014c,0x0000014a,0x00060039,0x0000000d,0x0000014d,0x0000001c,0x0000014b,0x0000014c, + 0x00050041,0x000000c7,0x0000014e,0x000000c0,0x0000014d,0x0004003d,0x00000006,0x0000014f, + 0x0000014e,0x00050085,0x00000006,0x00000150,0x000000ee,0x0000014f,0x0004003d,0x00000006, + 0x00000151,0x000000d0,0x00050081,0x00000006,0x00000152,0x00000151,0x00000150,0x0003003e, + 0x000000d0,0x00000152,0x0004003d,0x0000000d,0x00000153,0x000000cc,0x00050080,0x0000000d, + 0x00000155,0x00000153,0x00000154,0x0003003e,0x00000156,0x000000d2,0x0003003e,0x00000157, + 0x00000155,0x00060039,0x0000000d,0x00000158,0x00000012,0x00000156,0x00000157,0x0003003e, + 0x00000159,0x00000073,0x0003003e,0x0000015a,0x00000158,0x00060039,0x0000000d,0x0000015b, + 0x0000001c,0x00000159,0x0000015a,0x00050041,0x000000c7,0x0000015c,0x000000c0,0x0000015b, + 0x0004003d,0x00000006,0x0000015d,0x0000015c,0x00050085,0x00000006,0x0000015e,0x000000e0, + 0x0000015d,0x0004003d,0x00000006,0x0000015f,0x000000d0,0x00050081,0x00000006,0x00000160, + 0x0000015f,0x0000015e,0x0003003e,0x000000d0,0x00000160,0x0004003d,0x0000000d,0x00000161, + 0x000000cc,0x00050080,0x0000000d,0x00000163,0x00000161,0x00000162,0x0003003e,0x00000164, + 0x000000d2,0x0003003e,0x00000165,0x00000163,0x00060039,0x0000000d,0x00000166,0x00000012, + 0x00000164,0x00000165,0x0003003e,0x00000167,0x00000073,0x0003003e,0x00000168,0x00000166, + 0x00060039,0x0000000d,0x00000169,0x0000001c,0x00000167,0x00000168,0x00050041,0x000000c7, + 0x0000016a,0x000000c0,0x00000169,0x0004003d,0x00000006,0x0000016b,0x0000016a,0x00050085, + 0x00000006,0x0000016c,0x000000d1,0x0000016b,0x0004003d,0x00000006,0x0000016d,0x000000d0, + 0x00050081,0x00000006,0x0000016e,0x0000016d,0x0000016c,0x0003003e,0x000000d0,0x0000016e, + 0x0004003d,0x00000006,0x00000170,0x000000d0,0x00050081,0x00000006,0x00000171,0x00000170, + 0x0000016f,0x0003003e,0x000000d0,0x00000171,0x00050041,0x0000000e,0x00000172,0x0000004f, + 0x0000009e,0x0004003d,0x0000000d,0x00000173,0x00000172,0x000500aa,0x0000001e,0x00000174, + 0x00000173,0x00000073,0x000300f7,0x00000176,0x00000000,0x000400fa,0x00000174,0x00000175, + 0x00000182,0x000200f8,0x00000175,0x0004003d,0x0000000d,0x00000177,0x00000051,0x000500aa, + 0x0000001e,0x00000178,0x00000177,0x00000073,0x000300f7,0x0000017a,0x00000000,0x000400fa, + 0x00000178,0x00000179,0x0000017d,0x000200f8,0x00000179,0x00050041,0x000000c7,0x0000017c, + 0x0000017b,0x000000d2,0x0003003e,0x0000017c,0x0000016f,0x000200f9,0x0000017a,0x000200f8, + 0x0000017d,0x0004003d,0x0000000d,0x0000017e,0x00000051,0x00050082,0x0000000d,0x0000017f, + 0x0000017e,0x000000a4,0x0004003d,0x00000006,0x00000180,0x000000d0,0x00050041,0x000000c7, + 0x00000181,0x0000017b,0x0000017f,0x0003003e,0x00000181,0x00000180,0x000200f9,0x0000017a, + 0x000200f8,0x0000017a,0x000200f9,0x00000176,0x000200f8,0x00000182,0x00050041,0x0000000e, + 0x00000183,0x0000004f,0x0000009e,0x0004003d,0x0000000d,0x00000184,0x00000183,0x000500aa, + 0x0000001e,0x00000185,0x00000184,0x000000a4,0x000300f7,0x00000187,0x00000000,0x000400fa, + 0x00000185,0x00000186,0x0000018b,0x000200f8,0x00000186,0x0004003d,0x0000000d,0x00000188, + 0x00000051,0x0004003d,0x00000006,0x00000189,0x000000d0,0x00050041,0x000000c7,0x0000018a, + 0x0000017b,0x00000188,0x0003003e,0x0000018a,0x00000189,0x000200f9,0x00000187,0x000200f8, + 0x0000018b,0x00050041,0x0000000e,0x0000018c,0x0000004f,0x0000009e,0x0004003d,0x0000000d, + 0x0000018d,0x0000018c,0x000500aa,0x0000001e,0x0000018e,0x0000018d,0x000000a7,0x000300f7, + 0x00000190,0x00000000,0x000400fa,0x0000018e,0x0000018f,0x00000190,0x000200f8,0x0000018f, + 0x0004003d,0x0000000d,0x00000191,0x00000051,0x000500aa,0x0000001e,0x00000192,0x00000191, + 0x000000d2,0x000300f7,0x00000194,0x00000000,0x000400fa,0x00000192,0x00000193,0x00000196, + 0x000200f8,0x00000193,0x00050041,0x000000c7,0x00000195,0x0000017b,0x00000073,0x0003003e, + 0x00000195,0x0000016f,0x000200f9,0x00000194,0x000200f8,0x00000196,0x0004003d,0x0000000d, + 0x00000197,0x00000051,0x00050080,0x0000000d,0x00000198,0x00000197,0x000000a4,0x0004003d, + 0x00000006,0x00000199,0x000000d0,0x00050041,0x000000c7,0x0000019a,0x0000017b,0x00000198, + 0x0003003e,0x0000019a,0x00000199,0x000200f9,0x00000194,0x000200f8,0x00000194,0x000200f9, + 0x00000190,0x000200f8,0x00000190,0x000200f9,0x00000187,0x000200f8,0x00000187,0x000200f9, + 0x00000176,0x000200f8,0x00000176,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9, + 0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x0000019c,0x00000051,0x0004003d,0x0000000d, + 0x0000019d,0x00000051,0x00050041,0x000000c7,0x0000019e,0x0000017b,0x0000019d,0x0004003d, + 0x00000006,0x0000019f,0x0000019e,0x00050041,0x000000c7,0x000001a0,0x0000019b,0x0000019c, + 0x0003003e,0x000001a0,0x0000019f,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9, + 0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x000001a1,0x00000051,0x000500b1,0x0000001e, + 0x000001a3,0x000001a1,0x000001a2,0x000300f7,0x000001a5,0x00000000,0x000400fa,0x000001a3, + 0x000001a4,0x000001a5,0x000200f8,0x000001a4,0x0004003d,0x0000000d,0x000001a6,0x00000051, + 0x0004003d,0x0000000d,0x000001a7,0x00000051,0x00050080,0x0000000d,0x000001a8,0x000001a7, + 0x000001a2,0x00050041,0x000000c7,0x000001a9,0x0000019b,0x000001a8,0x0004003d,0x00000006, + 0x000001aa,0x000001a9,0x00050041,0x000000c7,0x000001ab,0x0000019b,0x000001a6,0x0004003d, + 0x00000006,0x000001ac,0x000001ab,0x00050081,0x00000006,0x000001ad,0x000001ac,0x000001aa, + 0x00050041,0x000000c7,0x000001ae,0x0000019b,0x000001a6,0x0003003e,0x000001ae,0x000001ad, + 0x000200f9,0x000001a5,0x000200f8,0x000001a5,0x000300e1,0x000000c9,0x000000ca,0x000400e0, + 0x000000c9,0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x000001af,0x00000051,0x000500b1, + 0x0000001e,0x000001b1,0x000001af,0x000001b0,0x000300f7,0x000001b3,0x00000000,0x000400fa, + 0x000001b1,0x000001b2,0x000001b3,0x000200f8,0x000001b2,0x0004003d,0x0000000d,0x000001b4, + 0x00000051,0x0004003d,0x0000000d,0x000001b5,0x00000051,0x00050080,0x0000000d,0x000001b6, + 0x000001b5,0x000001b0,0x00050041,0x000000c7,0x000001b7,0x0000019b,0x000001b6,0x0004003d, + 0x00000006,0x000001b8,0x000001b7,0x00050041,0x000000c7,0x000001b9,0x0000019b,0x000001b4, + 0x0004003d,0x00000006,0x000001ba,0x000001b9,0x00050081,0x00000006,0x000001bb,0x000001ba, + 0x000001b8,0x00050041,0x000000c7,0x000001bc,0x0000019b,0x000001b4,0x0003003e,0x000001bc, + 0x000001bb,0x000200f9,0x000001b3,0x000200f8,0x000001b3,0x000300e1,0x000000c9,0x000000ca, + 0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x000001bd,0x00000051, + 0x000500b1,0x0000001e,0x000001bf,0x000001bd,0x000001be,0x000300f7,0x000001c1,0x00000000, + 0x000400fa,0x000001bf,0x000001c0,0x000001c1,0x000200f8,0x000001c0,0x0004003d,0x0000000d, + 0x000001c2,0x00000051,0x0004003d,0x0000000d,0x000001c3,0x00000051,0x00050080,0x0000000d, + 0x000001c4,0x000001c3,0x000001be,0x00050041,0x000000c7,0x000001c5,0x0000019b,0x000001c4, + 0x0004003d,0x00000006,0x000001c6,0x000001c5,0x00050041,0x000000c7,0x000001c7,0x0000019b, + 0x000001c2,0x0004003d,0x00000006,0x000001c8,0x000001c7,0x00050081,0x00000006,0x000001c9, + 0x000001c8,0x000001c6,0x00050041,0x000000c7,0x000001ca,0x0000019b,0x000001c2,0x0003003e, + 0x000001ca,0x000001c9,0x000200f9,0x000001c1,0x000200f8,0x000001c1,0x0004003d,0x0000000d, + 0x000001cb,0x00000051,0x000500b1,0x0000001e,0x000001cd,0x000001cb,0x000001cc,0x000300f7, + 0x000001cf,0x00000000,0x000400fa,0x000001cd,0x000001ce,0x000001cf,0x000200f8,0x000001ce, + 0x0004003d,0x0000000d,0x000001d0,0x00000051,0x0004003d,0x0000000d,0x000001d1,0x00000051, + 0x00050080,0x0000000d,0x000001d2,0x000001d1,0x000001cc,0x00050041,0x000000c7,0x000001d3, + 0x0000019b,0x000001d2,0x0004003d,0x00000006,0x000001d4,0x000001d3,0x00050041,0x000000c7, + 0x000001d5,0x0000019b,0x000001d0,0x0004003d,0x00000006,0x000001d6,0x000001d5,0x00050081, + 0x00000006,0x000001d7,0x000001d6,0x000001d4,0x00050041,0x000000c7,0x000001d8,0x0000019b, + 0x000001d0,0x0003003e,0x000001d8,0x000001d7,0x000200f9,0x000001cf,0x000200f8,0x000001cf, + 0x0004003d,0x0000000d,0x000001d9,0x00000051,0x000500b1,0x0000001e,0x000001da,0x000001d9, + 0x00000146,0x000300f7,0x000001dc,0x00000000,0x000400fa,0x000001da,0x000001db,0x000001dc, + 0x000200f8,0x000001db,0x0004003d,0x0000000d,0x000001dd,0x00000051,0x0004003d,0x0000000d, + 0x000001de,0x00000051,0x00050080,0x0000000d,0x000001df,0x000001de,0x00000146,0x00050041, + 0x000000c7,0x000001e0,0x0000019b,0x000001df,0x0004003d,0x00000006,0x000001e1,0x000001e0, + 0x00050041,0x000000c7,0x000001e2,0x0000019b,0x000001dd,0x0004003d,0x00000006,0x000001e3, + 0x000001e2,0x00050081,0x00000006,0x000001e4,0x000001e3,0x000001e1,0x00050041,0x000000c7, + 0x000001e5,0x0000019b,0x000001dd,0x0003003e,0x000001e5,0x000001e4,0x000200f9,0x000001dc, + 0x000200f8,0x000001dc,0x0004003d,0x0000000d,0x000001e6,0x00000051,0x000500b1,0x0000001e, + 0x000001e7,0x000001e6,0x0000010d,0x000300f7,0x000001e9,0x00000000,0x000400fa,0x000001e7, + 0x000001e8,0x000001e9,0x000200f8,0x000001e8,0x0004003d,0x0000000d,0x000001ea,0x00000051, + 0x0004003d,0x0000000d,0x000001eb,0x00000051,0x00050080,0x0000000d,0x000001ec,0x000001eb, + 0x0000010d,0x00050041,0x000000c7,0x000001ed,0x0000019b,0x000001ec,0x0004003d,0x00000006, + 0x000001ee,0x000001ed,0x00050041,0x000000c7,0x000001ef,0x0000019b,0x000001ea,0x0004003d, + 0x00000006,0x000001f0,0x000001ef,0x00050081,0x00000006,0x000001f1,0x000001f0,0x000001ee, + 0x00050041,0x000000c7,0x000001f2,0x0000019b,0x000001ea,0x0003003e,0x000001f2,0x000001f1, + 0x000200f9,0x000001e9,0x000200f8,0x000001e9,0x0004003d,0x0000000d,0x000001f3,0x00000051, + 0x000500b1,0x0000001e,0x000001f4,0x000001f3,0x000000a7,0x000300f7,0x000001f6,0x00000000, + 0x000400fa,0x000001f4,0x000001f5,0x000001f6,0x000200f8,0x000001f5,0x0004003d,0x0000000d, + 0x000001f7,0x00000051,0x0004003d,0x0000000d,0x000001f8,0x00000051,0x00050080,0x0000000d, + 0x000001f9,0x000001f8,0x000000a7,0x00050041,0x000000c7,0x000001fa,0x0000019b,0x000001f9, + 0x0004003d,0x00000006,0x000001fb,0x000001fa,0x00050041,0x000000c7,0x000001fc,0x0000019b, + 0x000001f7,0x0004003d,0x00000006,0x000001fd,0x000001fc,0x00050081,0x00000006,0x000001fe, + 0x000001fd,0x000001fb,0x00050041,0x000000c7,0x000001ff,0x0000019b,0x000001f7,0x0003003e, + 0x000001ff,0x000001fe,0x000200f9,0x000001f6,0x000200f8,0x000001f6,0x0004003d,0x0000000d, + 0x00000200,0x00000051,0x000500b1,0x0000001e,0x00000201,0x00000200,0x000000a4,0x000300f7, + 0x00000203,0x00000000,0x000400fa,0x00000201,0x00000202,0x00000203,0x000200f8,0x00000202, + 0x0004003d,0x0000000d,0x00000204,0x00000051,0x0004003d,0x0000000d,0x00000205,0x00000051, + 0x00050080,0x0000000d,0x00000206,0x00000205,0x000000a4,0x00050041,0x000000c7,0x00000207, + 0x0000019b,0x00000206,0x0004003d,0x00000006,0x00000208,0x00000207,0x00050041,0x000000c7, + 0x00000209,0x0000019b,0x00000204,0x0004003d,0x00000006,0x0000020a,0x00000209,0x00050081, + 0x00000006,0x0000020b,0x0000020a,0x00000208,0x00050041,0x000000c7,0x0000020c,0x0000019b, + 0x00000204,0x0003003e,0x0000020c,0x0000020b,0x000200f9,0x00000203,0x000200f8,0x00000203, + 0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d, + 0x0000000d,0x0000020d,0x00000051,0x00050041,0x000000c7,0x0000020e,0x0000019b,0x00000073, + 0x0004003d,0x00000006,0x0000020f,0x0000020e,0x00050041,0x000000c7,0x00000210,0x0000017b, + 0x0000020d,0x0004003d,0x00000006,0x00000211,0x00000210,0x00050088,0x00000006,0x00000212, + 0x00000211,0x0000020f,0x00050041,0x000000c7,0x00000213,0x0000017b,0x0000020d,0x0003003e, + 0x00000213,0x00000212,0x0004003d,0x0000000d,0x00000215,0x00000051,0x00050041,0x000000c7, + 0x00000216,0x0000017b,0x00000215,0x0004003d,0x00000006,0x00000217,0x00000216,0x0003003e, + 0x00000214,0x00000217,0x00050041,0x0000000e,0x0000021a,0x0000004f,0x00000077,0x0004003d, + 0x0000000d,0x0000021b,0x0000021a,0x0003003e,0x00000219,0x0000021b,0x00050039,0x00000006, + 0x0000021c,0x0000002e,0x00000219,0x0003003e,0x00000218,0x0000021c,0x0004003d,0x0000000d, + 0x00000221,0x00000051,0x0004003d,0x00000006,0x00000222,0x00000214,0x0004003d,0x00000006, + 0x00000223,0x00000214,0x0004003d,0x00000006,0x00000224,0x00000218,0x00050088,0x00000006, + 0x00000225,0x00000223,0x00000224,0x0006000c,0x00000006,0x00000226,0x00000001,0x0000001c, + 0x00000225,0x00050085,0x00000006,0x00000227,0x00000222,0x00000226,0x0004003d,0x00000006, + 0x00000228,0x00000218,0x0004003d,0x00000006,0x00000229,0x00000218,0x0004003d,0x00000006, + 0x0000022a,0x00000214,0x00050088,0x00000006,0x0000022b,0x00000229,0x0000022a,0x0006000c, + 0x00000006,0x0000022c,0x00000001,0x0000001c,0x0000022b,0x00050085,0x00000006,0x0000022d, + 0x00000228,0x0000022c,0x00050050,0x0000021d,0x0000022e,0x00000227,0x0000022d,0x00050041, + 0x0000022f,0x00000230,0x00000220,0x00000221,0x0003003e,0x00000230,0x0000022e,0x000300e1, + 0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d,0x0000000d, + 0x00000231,0x00000051,0x000500b1,0x0000001e,0x00000232,0x00000231,0x000001a2,0x000300f7, + 0x00000234,0x00000000,0x000400fa,0x00000232,0x00000233,0x00000234,0x000200f8,0x00000233, + 0x0004003d,0x0000000d,0x00000235,0x00000051,0x0004003d,0x0000000d,0x00000236,0x00000051, + 0x00050080,0x0000000d,0x00000237,0x00000236,0x000001a2,0x00050041,0x0000022f,0x00000238, + 0x00000220,0x00000237,0x0004003d,0x0000021d,0x00000239,0x00000238,0x00050041,0x0000022f, + 0x0000023a,0x00000220,0x00000235,0x0004003d,0x0000021d,0x0000023b,0x0000023a,0x00050081, + 0x0000021d,0x0000023c,0x0000023b,0x00000239,0x00050041,0x0000022f,0x0000023d,0x00000220, + 0x00000235,0x0003003e,0x0000023d,0x0000023c,0x000200f9,0x00000234,0x000200f8,0x00000234, + 0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d, + 0x0000000d,0x0000023e,0x00000051,0x000500b1,0x0000001e,0x0000023f,0x0000023e,0x000001b0, + 0x000300f7,0x00000241,0x00000000,0x000400fa,0x0000023f,0x00000240,0x00000241,0x000200f8, + 0x00000240,0x0004003d,0x0000000d,0x00000242,0x00000051,0x0004003d,0x0000000d,0x00000243, + 0x00000051,0x00050080,0x0000000d,0x00000244,0x00000243,0x000001b0,0x00050041,0x0000022f, + 0x00000245,0x00000220,0x00000244,0x0004003d,0x0000021d,0x00000246,0x00000245,0x00050041, + 0x0000022f,0x00000247,0x00000220,0x00000242,0x0004003d,0x0000021d,0x00000248,0x00000247, + 0x00050081,0x0000021d,0x00000249,0x00000248,0x00000246,0x00050041,0x0000022f,0x0000024a, + 0x00000220,0x00000242,0x0003003e,0x0000024a,0x00000249,0x000200f9,0x00000241,0x000200f8, + 0x00000241,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb, + 0x0004003d,0x0000000d,0x0000024b,0x00000051,0x000500b1,0x0000001e,0x0000024c,0x0000024b, + 0x000001be,0x000300f7,0x0000024e,0x00000000,0x000400fa,0x0000024c,0x0000024d,0x0000024e, + 0x000200f8,0x0000024d,0x0004003d,0x0000000d,0x0000024f,0x00000051,0x0004003d,0x0000000d, + 0x00000250,0x00000051,0x00050080,0x0000000d,0x00000251,0x00000250,0x000001be,0x00050041, + 0x0000022f,0x00000252,0x00000220,0x00000251,0x0004003d,0x0000021d,0x00000253,0x00000252, + 0x00050041,0x0000022f,0x00000254,0x00000220,0x0000024f,0x0004003d,0x0000021d,0x00000255, + 0x00000254,0x00050081,0x0000021d,0x00000256,0x00000255,0x00000253,0x00050041,0x0000022f, + 0x00000257,0x00000220,0x0000024f,0x0003003e,0x00000257,0x00000256,0x000200f9,0x0000024e, + 0x000200f8,0x0000024e,0x0004003d,0x0000000d,0x00000258,0x00000051,0x000500b1,0x0000001e, + 0x00000259,0x00000258,0x000001cc,0x000300f7,0x0000025b,0x00000000,0x000400fa,0x00000259, + 0x0000025a,0x0000025b,0x000200f8,0x0000025a,0x0004003d,0x0000000d,0x0000025c,0x00000051, + 0x0004003d,0x0000000d,0x0000025d,0x00000051,0x00050080,0x0000000d,0x0000025e,0x0000025d, + 0x000001cc,0x00050041,0x0000022f,0x0000025f,0x00000220,0x0000025e,0x0004003d,0x0000021d, + 0x00000260,0x0000025f,0x00050041,0x0000022f,0x00000261,0x00000220,0x0000025c,0x0004003d, + 0x0000021d,0x00000262,0x00000261,0x00050081,0x0000021d,0x00000263,0x00000262,0x00000260, + 0x00050041,0x0000022f,0x00000264,0x00000220,0x0000025c,0x0003003e,0x00000264,0x00000263, + 0x000200f9,0x0000025b,0x000200f8,0x0000025b,0x0004003d,0x0000000d,0x00000265,0x00000051, + 0x000500b1,0x0000001e,0x00000266,0x00000265,0x00000146,0x000300f7,0x00000268,0x00000000, + 0x000400fa,0x00000266,0x00000267,0x00000268,0x000200f8,0x00000267,0x0004003d,0x0000000d, + 0x00000269,0x00000051,0x0004003d,0x0000000d,0x0000026a,0x00000051,0x00050080,0x0000000d, + 0x0000026b,0x0000026a,0x00000146,0x00050041,0x0000022f,0x0000026c,0x00000220,0x0000026b, + 0x0004003d,0x0000021d,0x0000026d,0x0000026c,0x00050041,0x0000022f,0x0000026e,0x00000220, + 0x00000269,0x0004003d,0x0000021d,0x0000026f,0x0000026e,0x00050081,0x0000021d,0x00000270, + 0x0000026f,0x0000026d,0x00050041,0x0000022f,0x00000271,0x00000220,0x00000269,0x0003003e, + 0x00000271,0x00000270,0x000200f9,0x00000268,0x000200f8,0x00000268,0x0004003d,0x0000000d, + 0x00000272,0x00000051,0x000500b1,0x0000001e,0x00000273,0x00000272,0x0000010d,0x000300f7, + 0x00000275,0x00000000,0x000400fa,0x00000273,0x00000274,0x00000275,0x000200f8,0x00000274, + 0x0004003d,0x0000000d,0x00000276,0x00000051,0x0004003d,0x0000000d,0x00000277,0x00000051, + 0x00050080,0x0000000d,0x00000278,0x00000277,0x0000010d,0x00050041,0x0000022f,0x00000279, + 0x00000220,0x00000278,0x0004003d,0x0000021d,0x0000027a,0x00000279,0x00050041,0x0000022f, + 0x0000027b,0x00000220,0x00000276,0x0004003d,0x0000021d,0x0000027c,0x0000027b,0x00050081, + 0x0000021d,0x0000027d,0x0000027c,0x0000027a,0x00050041,0x0000022f,0x0000027e,0x00000220, + 0x00000276,0x0003003e,0x0000027e,0x0000027d,0x000200f9,0x00000275,0x000200f8,0x00000275, + 0x0004003d,0x0000000d,0x0000027f,0x00000051,0x000500b1,0x0000001e,0x00000280,0x0000027f, + 0x000000a7,0x000300f7,0x00000282,0x00000000,0x000400fa,0x00000280,0x00000281,0x00000282, + 0x000200f8,0x00000281,0x0004003d,0x0000000d,0x00000283,0x00000051,0x0004003d,0x0000000d, + 0x00000284,0x00000051,0x00050080,0x0000000d,0x00000285,0x00000284,0x000000a7,0x00050041, + 0x0000022f,0x00000286,0x00000220,0x00000285,0x0004003d,0x0000021d,0x00000287,0x00000286, + 0x00050041,0x0000022f,0x00000288,0x00000220,0x00000283,0x0004003d,0x0000021d,0x00000289, + 0x00000288,0x00050081,0x0000021d,0x0000028a,0x00000289,0x00000287,0x00050041,0x0000022f, + 0x0000028b,0x00000220,0x00000283,0x0003003e,0x0000028b,0x0000028a,0x000200f9,0x00000282, + 0x000200f8,0x00000282,0x0004003d,0x0000000d,0x0000028c,0x00000051,0x000500aa,0x0000001e, + 0x0000028d,0x0000028c,0x00000073,0x000300f7,0x0000028f,0x00000000,0x000400fa,0x0000028d, + 0x0000028e,0x0000028f,0x000200f8,0x0000028e,0x00050041,0x0000022f,0x00000292,0x00000220, + 0x00000073,0x0004003d,0x0000021d,0x00000293,0x00000292,0x00050041,0x0000022f,0x00000294, + 0x00000220,0x000000a4,0x0004003d,0x0000021d,0x00000295,0x00000294,0x00050081,0x0000021d, + 0x00000296,0x00000293,0x00000295,0x0003003e,0x00000291,0x00000296,0x00050041,0x00000007, + 0x00000298,0x00000291,0x00000077,0x0004003d,0x00000006,0x00000299,0x00000298,0x0006000c, + 0x00000006,0x0000029a,0x00000001,0x00000004,0x00000299,0x00050041,0x00000007,0x0000029b, + 0x00000291,0x0000009e,0x0004003d,0x00000006,0x0000029c,0x0000029b,0x0006000c,0x00000006, + 0x0000029d,0x00000001,0x00000004,0x0000029c,0x00050081,0x00000006,0x0000029e,0x0000029a, + 0x0000029d,0x0004007f,0x00000006,0x0000029f,0x0000029e,0x0006000c,0x00000006,0x000002a0, + 0x00000001,0x0000001b,0x0000029f,0x00050083,0x00000006,0x000002a1,0x0000016f,0x000002a0, + 0x0003003e,0x00000297,0x000002a1,0x0004003d,0x00000006,0x000002a3,0x00000297,0x00050088, + 0x00000006,0x000002a5,0x000002a3,0x000002a4,0x00050085,0x00000006,0x000002a7,0x000002a5, + 0x000002a6,0x0004006d,0x00000008,0x000002a8,0x000002a7,0x0003003e,0x000002a2,0x000002a8, + 0x00050041,0x0000000e,0x000002aa,0x0000004f,0x0000009e,0x0004003d,0x0000000d,0x000002ab, + 0x000002aa,0x0003003e,0x000002a9,0x000002ab,0x0004003d,0x00000008,0x000002ad,0x000002a2, + 0x0003003e,0x000002ac,0x000002ad,0x00060039,0x00000002,0x000002ae,0x0000003a,0x000002a9, + 0x000002ac,0x0003003e,0x000002b0,0x000000a7,0x0003003e,0x000002b1,0x0000009e,0x00060039, + 0x00000008,0x000002b2,0x00000048,0x000002b0,0x000002b1,0x0003003e,0x000002af,0x000002b2, + 0x0004003d,0x00000008,0x000002b3,0x000002af,0x000500aa,0x0000001e,0x000002b5,0x000002b3, + 0x000002b4,0x000300f7,0x000002b7,0x00000000,0x000400fa,0x000002b5,0x000002b6,0x000002b7, + 0x000200f8,0x000002b6,0x0003003e,0x000002b9,0x00000073,0x00050039,0x00000008,0x000002ba, + 0x00000036,0x000002b9,0x0003003e,0x000002b8,0x000002ba,0x0003003e,0x000002bc,0x000000a4, + 0x00050039,0x00000008,0x000002bd,0x00000036,0x000002bc,0x0003003e,0x000002bb,0x000002bd, + 0x0003003e,0x000002bf,0x000000a7,0x00050039,0x00000008,0x000002c0,0x00000036,0x000002bf, + 0x0003003e,0x000002be,0x000002c0,0x0004003d,0x00000008,0x000002c3,0x000002bb,0x0003003e, + 0x000002c2,0x000002c3,0x0004003d,0x00000008,0x000002c5,0x000002be,0x0003003e,0x000002c4, + 0x000002c5,0x00060039,0x00000008,0x000002c6,0x00000018,0x000002c2,0x000002c4,0x0004003d, + 0x00000008,0x000002c8,0x000002b8,0x0003003e,0x000002c7,0x000002c8,0x0003003e,0x000002c9, + 0x000002c6,0x00060039,0x00000008,0x000002ca,0x00000018,0x000002c7,0x000002c9,0x00040070, + 0x00000006,0x000002cb,0x000002ca,0x00050088,0x00000006,0x000002cc,0x000002cb,0x000002a6, + 0x0003003e,0x000002c1,0x000002cc,0x0003003e,0x000002ce,0x000000a4,0x00050039,0x00000008, + 0x000002cf,0x0000003f,0x000002ce,0x000500c4,0x00000008,0x000002d0,0x000002cf,0x000000a4, + 0x0003003e,0x000002cd,0x000002d0,0x0004003d,0x00000006,0x000002d2,0x000002c1,0x0003003e, + 0x000002d1,0x000002d2,0x00050039,0x0000001e,0x000002d3,0x00000021,0x000002d1,0x000300f7, + 0x000002d5,0x00000000,0x000400fa,0x000002d3,0x000002d4,0x000002d5,0x000200f8,0x000002d4, + 0x0004003d,0x00000008,0x000002d6,0x000002cd,0x000500c5,0x00000008,0x000002d7,0x000002d6, + 0x0000009e,0x0003003e,0x000002cd,0x000002d7,0x000200f9,0x000002d5,0x000200f8,0x000002d5, + 0x0004003d,0x00000006,0x000002d9,0x000002c1,0x0003003e,0x000002d8,0x000002d9,0x00050039, + 0x00000008,0x000002da,0x0000000b,0x000002d8,0x0003003e,0x000002db,0x00000073,0x0003003e, + 0x000002dc,0x000002da,0x00060039,0x00000002,0x000002dd,0x00000043,0x000002db,0x000002dc, + 0x0003003e,0x000002de,0x000000a4,0x0004003d,0x00000008,0x000002e0,0x000002cd,0x0003003e, + 0x000002df,0x000002e0,0x00060039,0x00000002,0x000002e1,0x00000043,0x000002de,0x000002df, + 0x0003003e,0x000002e2,0x000000a7,0x0003003e,0x000002e3,0x00000077,0x00060039,0x00000002, + 0x000002e4,0x00000043,0x000002e2,0x000002e3,0x00040039,0x00000002,0x000002e5,0x0000003c, + 0x000200f9,0x000002b7,0x000200f8,0x000002b7,0x000200f9,0x0000028f,0x000200f8,0x0000028f, + 0x00050041,0x0000000e,0x000002e6,0x0000004f,0x0000009e,0x0004003d,0x0000000d,0x000002e7, + 0x000002e6,0x000500aa,0x0000001e,0x000002e8,0x000002e7,0x000000a4,0x000300f7,0x000002ea, + 0x00000000,0x000400fa,0x000002e8,0x000002e9,0x000002ea,0x000200f8,0x000002e9,0x00050041, + 0x0000000e,0x000002ec,0x0000004f,0x00000077,0x0004003d,0x0000000d,0x000002ed,0x000002ec, + 0x0003003e,0x000002eb,0x000002ed,0x0004003d,0x00000006,0x000002ef,0x00000214,0x0003003e, + 0x000002ee,0x000002ef,0x00060039,0x00000002,0x000002f0,0x00000033,0x000002eb,0x000002ee, + 0x00050041,0x0000000e,0x000002f2,0x0000004f,0x00000077,0x0004003d,0x0000000d,0x000002f3, + 0x000002f2,0x0003003e,0x000002f1,0x000002f3,0x0003003e,0x000002f4,0x00000077,0x00060039, + 0x00000002,0x000002f5,0x0000002a,0x000002f1,0x000002f4,0x000200f9,0x000002ea,0x000200f8, + 0x000002ea,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h b/gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h new file mode 100644 index 000000000..5710a94f5 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h @@ -0,0 +1,167 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_FILTER_OPTICAL_FLOW_V5_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000000bf,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0009000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000009e, + 0x000000a3,0x000000a7,0x000000ac,0x00060010,0x00000004,0x00000011,0x00000010,0x00000004, + 0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004, + 0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d, + 0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000, + 0x000a0005,0x0000000b,0x64616f4c,0x76657250,0x73756f69,0x6974704f,0x466c6163,0x28776f6c, + 0x3b326976,0x00000000,0x00040005,0x0000000a,0x50785069,0x0000736f,0x00090005,0x00000010, + 0x726f7453,0x74704f65,0x6c616369,0x776f6c46,0x32697628,0x3269763b,0x0000003b,0x00040005, + 0x0000000e,0x50785069,0x0000736f,0x00060005,0x0000000f,0x69746f6d,0x65566e6f,0x726f7463, + 0x00000000,0x000b0005,0x00000018,0x746c6946,0x704f7265,0x61636974,0x6f6c466c,0x69762877, + 0x69763b32,0x69763b32,0x31693b32,0x0000003b,0x00050005,0x00000014,0x6f6c4769,0x496c6162, + 0x00000064,0x00050005,0x00000015,0x636f4c69,0x64496c61,0x00000000,0x00050005,0x00000016, + 0x6f724769,0x64497075,0x00000000,0x00050005,0x00000017,0x636f4c69,0x6e496c61,0x00786564, + 0x00080005,0x0000001c,0x706f5f72,0x61636974,0x6c665f6c,0x705f776f,0x69766572,0x0073756f, + 0x00060005,0x00000027,0x6f5f7772,0x63697470,0x665f6c61,0x00776f6c,0x00030005,0x0000002e, + 0x00786469,0x00030005,0x0000002f,0x00007878,0x00030005,0x0000003a,0x00007979,0x00040005, + 0x00000046,0x4d706d74,0x00000056,0x00040005,0x0000004d,0x61726170,0x0000006d,0x00030005, + 0x00000058,0x00746572,0x00030005,0x0000005a,0x00000069,0x00030005,0x00000063,0x00706d74, + 0x00030005,0x00000065,0x0000006a,0x00040005,0x0000006d,0x746c6564,0x00000061,0x00040005, + 0x00000091,0x496e696d,0x00007864,0x00040005,0x00000096,0x61726170,0x0000006d,0x00040005, + 0x00000098,0x61726170,0x0000006d,0x00080005,0x0000009e,0x475f6c67,0x61626f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x00000044,0x00080005,0x000000a3,0x4c5f6c67,0x6c61636f,0x6f766e49, + 0x69746163,0x44496e6f,0x00000000,0x00060005,0x000000a7,0x575f6c67,0x476b726f,0x70756f72, + 0x00004449,0x00080005,0x000000ac,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f, + 0x00786564,0x00040005,0x000000af,0x61726170,0x0000006d,0x00040005,0x000000b0,0x61726170, + 0x0000006d,0x00040005,0x000000b1,0x61726170,0x0000006d,0x00040005,0x000000b2,0x61726170, + 0x0000006d,0x00040005,0x000000b9,0x464f6263,0x0000745f,0x00090006,0x000000b9,0x00000000, + 0x706e4969,0x754c7475,0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x000000b9, + 0x00000001,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000, + 0x000b0006,0x000000b9,0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d, + 0x6c657665,0x6e756f43,0x00000074,0x00060006,0x000000b9,0x00000003,0x61724669,0x6e49656d, + 0x00786564,0x000a0006,0x000000b9,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000000b9,0x00000005,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00040005,0x000000bb,0x464f6263,0x00000000,0x00040047,0x0000001c, + 0x00000021,0x00000000,0x00040047,0x0000001c,0x00000022,0x00000000,0x00040047,0x00000027, + 0x00000021,0x00000001,0x00040047,0x00000027,0x00000022,0x00000000,0x00040047,0x0000009e, + 0x0000000b,0x0000001c,0x00040047,0x000000a3,0x0000000b,0x0000001b,0x00040047,0x000000a7, + 0x0000000b,0x0000001a,0x00040047,0x000000ac,0x0000000b,0x0000001d,0x00030047,0x000000b9, + 0x00000002,0x00050048,0x000000b9,0x00000000,0x00000023,0x00000000,0x00050048,0x000000b9, + 0x00000001,0x00000023,0x00000008,0x00050048,0x000000b9,0x00000002,0x00000023,0x0000000c, + 0x00050048,0x000000b9,0x00000003,0x00000023,0x00000010,0x00050048,0x000000b9,0x00000004, + 0x00000023,0x00000014,0x00050048,0x000000b9,0x00000005,0x00000023,0x00000018,0x00040047, + 0x000000bb,0x00000021,0x00000002,0x00040047,0x000000bb,0x00000022,0x00000000,0x00040047, + 0x000000be,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000001,0x00040017,0x00000007,0x00000006,0x00000002, + 0x00040020,0x00000008,0x00000007,0x00000007,0x00040021,0x00000009,0x00000007,0x00000008, + 0x00050021,0x0000000d,0x00000002,0x00000008,0x00000008,0x00040020,0x00000012,0x00000007, + 0x00000006,0x00070021,0x00000013,0x00000002,0x00000008,0x00000008,0x00000008,0x00000012, + 0x00090019,0x0000001a,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, + 0x00000000,0x00040020,0x0000001b,0x00000000,0x0000001a,0x0004003b,0x0000001b,0x0000001c, + 0x00000000,0x0004002b,0x00000006,0x0000001f,0x00000000,0x00040017,0x00000020,0x00000006, + 0x00000004,0x00090019,0x00000025,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000001a,0x00040020,0x00000026,0x00000000,0x00000025,0x0004003b,0x00000026, + 0x00000027,0x00000000,0x0004002b,0x00000006,0x00000030,0xffffffff,0x0004002b,0x00000006, + 0x00000037,0x00000002,0x00020014,0x00000038,0x00040015,0x00000042,0x00000020,0x00000000, + 0x0004002b,0x00000042,0x00000043,0x00000009,0x0004001c,0x00000044,0x00000007,0x00000043, + 0x00040020,0x00000045,0x00000007,0x00000044,0x0004002b,0x00000006,0x00000051,0x00000001, + 0x00040020,0x00000057,0x00000007,0x00000042,0x0004002b,0x00000042,0x00000059,0xffffffff, + 0x0004002b,0x00000006,0x00000061,0x00000009,0x0004002b,0x00000042,0x00000064,0x00000000, + 0x0004002b,0x00000042,0x0000007b,0x00000001,0x0004002b,0x00000006,0x00000088,0x00000004, + 0x0004002b,0x00000042,0x00000093,0x0000000f,0x00040017,0x0000009c,0x00000042,0x00000003, + 0x00040020,0x0000009d,0x00000001,0x0000009c,0x0004003b,0x0000009d,0x0000009e,0x00000001, + 0x00040017,0x0000009f,0x00000042,0x00000002,0x0004003b,0x0000009d,0x000000a3,0x00000001, + 0x0004003b,0x0000009d,0x000000a7,0x00000001,0x00040020,0x000000ab,0x00000001,0x00000042, + 0x0004003b,0x000000ab,0x000000ac,0x00000001,0x00030016,0x000000b4,0x00000020,0x0004002b, + 0x000000b4,0x000000b5,0x387fda40,0x0004002b,0x000000b4,0x000000b6,0x477fe000,0x0004002b, + 0x000000b4,0x000000b7,0x37801002,0x00040017,0x000000b8,0x000000b4,0x00000002,0x0008001e, + 0x000000b9,0x00000007,0x00000042,0x00000042,0x00000042,0x00000042,0x000000b8,0x00040020, + 0x000000ba,0x00000002,0x000000b9,0x0004003b,0x000000ba,0x000000bb,0x00000002,0x0004002b, + 0x00000042,0x000000bc,0x00000010,0x0004002b,0x00000042,0x000000bd,0x00000004,0x0006002c, + 0x0000009c,0x000000be,0x000000bc,0x000000bd,0x0000007b,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008,0x000000af,0x00000007, + 0x0004003b,0x00000008,0x000000b0,0x00000007,0x0004003b,0x00000008,0x000000b1,0x00000007, + 0x0004003b,0x00000012,0x000000b2,0x00000007,0x0004003d,0x0000009c,0x000000a0,0x0000009e, + 0x0007004f,0x0000009f,0x000000a1,0x000000a0,0x000000a0,0x00000000,0x00000001,0x0004007c, + 0x00000007,0x000000a2,0x000000a1,0x0004003d,0x0000009c,0x000000a4,0x000000a3,0x0007004f, + 0x0000009f,0x000000a5,0x000000a4,0x000000a4,0x00000000,0x00000001,0x0004007c,0x00000007, + 0x000000a6,0x000000a5,0x0004003d,0x0000009c,0x000000a8,0x000000a7,0x0007004f,0x0000009f, + 0x000000a9,0x000000a8,0x000000a8,0x00000000,0x00000001,0x0004007c,0x00000007,0x000000aa, + 0x000000a9,0x0004003d,0x00000042,0x000000ad,0x000000ac,0x0004007c,0x00000006,0x000000ae, + 0x000000ad,0x0003003e,0x000000af,0x000000a2,0x0003003e,0x000000b0,0x000000a6,0x0003003e, + 0x000000b1,0x000000aa,0x0003003e,0x000000b2,0x000000ae,0x00080039,0x00000002,0x000000b3, + 0x00000018,0x000000af,0x000000b0,0x000000b1,0x000000b2,0x000100fd,0x00010038,0x00050036, + 0x00000007,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000008,0x0000000a,0x000200f8, + 0x0000000c,0x0004003d,0x0000001a,0x0000001d,0x0000001c,0x0004003d,0x00000007,0x0000001e, + 0x0000000a,0x0007005f,0x00000020,0x00000021,0x0000001d,0x0000001e,0x00000002,0x0000001f, + 0x0007004f,0x00000007,0x00000022,0x00000021,0x00000021,0x00000000,0x00000001,0x000200fe, + 0x00000022,0x00010038,0x00050036,0x00000002,0x00000010,0x00000000,0x0000000d,0x00030037, + 0x00000008,0x0000000e,0x00030037,0x00000008,0x0000000f,0x000200f8,0x00000011,0x0004003d, + 0x00000025,0x00000028,0x00000027,0x0004003d,0x00000007,0x00000029,0x0000000e,0x0004003d, + 0x00000007,0x0000002a,0x0000000f,0x00050051,0x00000006,0x0000002b,0x0000002a,0x00000000, + 0x00050051,0x00000006,0x0000002c,0x0000002a,0x00000001,0x00070050,0x00000020,0x0000002d, + 0x0000002b,0x0000002c,0x0000001f,0x0000001f,0x00040063,0x00000028,0x00000029,0x0000002d, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000018,0x00000000,0x00000013,0x00030037, + 0x00000008,0x00000014,0x00030037,0x00000008,0x00000015,0x00030037,0x00000008,0x00000016, + 0x00030037,0x00000012,0x00000017,0x000200f8,0x00000019,0x0004003b,0x00000012,0x0000002e, + 0x00000007,0x0004003b,0x00000012,0x0000002f,0x00000007,0x0004003b,0x00000012,0x0000003a, + 0x00000007,0x0004003b,0x00000045,0x00000046,0x00000007,0x0004003b,0x00000008,0x0000004d, + 0x00000007,0x0004003b,0x00000057,0x00000058,0x00000007,0x0004003b,0x00000012,0x0000005a, + 0x00000007,0x0004003b,0x00000057,0x00000063,0x00000007,0x0004003b,0x00000012,0x00000065, + 0x00000007,0x0004003b,0x00000008,0x0000006d,0x00000007,0x0004003b,0x00000057,0x00000091, + 0x00000007,0x0004003b,0x00000008,0x00000096,0x00000007,0x0004003b,0x00000008,0x00000098, + 0x00000007,0x0003003e,0x0000002e,0x0000001f,0x0003003e,0x0000002f,0x00000030,0x000200f9, + 0x00000031,0x000200f8,0x00000031,0x000400f6,0x00000033,0x00000034,0x00000000,0x000200f9, + 0x00000035,0x000200f8,0x00000035,0x0004003d,0x00000006,0x00000036,0x0000002f,0x000500b1, + 0x00000038,0x00000039,0x00000036,0x00000037,0x000400fa,0x00000039,0x00000032,0x00000033, + 0x000200f8,0x00000032,0x0003003e,0x0000003a,0x00000030,0x000200f9,0x0000003b,0x000200f8, + 0x0000003b,0x000400f6,0x0000003d,0x0000003e,0x00000000,0x000200f9,0x0000003f,0x000200f8, + 0x0000003f,0x0004003d,0x00000006,0x00000040,0x0000003a,0x000500b1,0x00000038,0x00000041, + 0x00000040,0x00000037,0x000400fa,0x00000041,0x0000003c,0x0000003d,0x000200f8,0x0000003c, + 0x0004003d,0x00000006,0x00000047,0x0000002e,0x0004003d,0x00000007,0x00000048,0x00000014, + 0x0004003d,0x00000006,0x00000049,0x0000002f,0x0004003d,0x00000006,0x0000004a,0x0000003a, + 0x00050050,0x00000007,0x0000004b,0x00000049,0x0000004a,0x00050080,0x00000007,0x0000004c, + 0x00000048,0x0000004b,0x0003003e,0x0000004d,0x0000004c,0x00050039,0x00000007,0x0000004e, + 0x0000000b,0x0000004d,0x00050041,0x00000008,0x0000004f,0x00000046,0x00000047,0x0003003e, + 0x0000004f,0x0000004e,0x0004003d,0x00000006,0x00000050,0x0000002e,0x00050080,0x00000006, + 0x00000052,0x00000050,0x00000051,0x0003003e,0x0000002e,0x00000052,0x000200f9,0x0000003e, + 0x000200f8,0x0000003e,0x0004003d,0x00000006,0x00000053,0x0000003a,0x00050080,0x00000006, + 0x00000054,0x00000053,0x00000051,0x0003003e,0x0000003a,0x00000054,0x000200f9,0x0000003b, + 0x000200f8,0x0000003d,0x000200f9,0x00000034,0x000200f8,0x00000034,0x0004003d,0x00000006, + 0x00000055,0x0000002f,0x00050080,0x00000006,0x00000056,0x00000055,0x00000051,0x0003003e, + 0x0000002f,0x00000056,0x000200f9,0x00000031,0x000200f8,0x00000033,0x0003003e,0x00000058, + 0x00000059,0x0003003e,0x0000005a,0x0000001f,0x000200f9,0x0000005b,0x000200f8,0x0000005b, + 0x000400f6,0x0000005d,0x0000005e,0x00000000,0x000200f9,0x0000005f,0x000200f8,0x0000005f, + 0x0004003d,0x00000006,0x00000060,0x0000005a,0x000500b1,0x00000038,0x00000062,0x00000060, + 0x00000061,0x000400fa,0x00000062,0x0000005c,0x0000005d,0x000200f8,0x0000005c,0x0003003e, + 0x00000063,0x00000064,0x0003003e,0x00000065,0x0000001f,0x000200f9,0x00000066,0x000200f8, + 0x00000066,0x000400f6,0x00000068,0x00000069,0x00000000,0x000200f9,0x0000006a,0x000200f8, + 0x0000006a,0x0004003d,0x00000006,0x0000006b,0x00000065,0x000500b1,0x00000038,0x0000006c, + 0x0000006b,0x00000061,0x000400fa,0x0000006c,0x00000067,0x00000068,0x000200f8,0x00000067, + 0x0004003d,0x00000006,0x0000006e,0x0000005a,0x00050041,0x00000008,0x0000006f,0x00000046, + 0x0000006e,0x0004003d,0x00000007,0x00000070,0x0000006f,0x0004003d,0x00000006,0x00000071, + 0x00000065,0x00050041,0x00000008,0x00000072,0x00000046,0x00000071,0x0004003d,0x00000007, + 0x00000073,0x00000072,0x00050082,0x00000007,0x00000074,0x00000070,0x00000073,0x0003003e, + 0x0000006d,0x00000074,0x00050041,0x00000012,0x00000075,0x0000006d,0x00000064,0x0004003d, + 0x00000006,0x00000076,0x00000075,0x00050041,0x00000012,0x00000077,0x0000006d,0x00000064, + 0x0004003d,0x00000006,0x00000078,0x00000077,0x00050084,0x00000006,0x00000079,0x00000076, + 0x00000078,0x0004007c,0x00000042,0x0000007a,0x00000079,0x00050041,0x00000012,0x0000007c, + 0x0000006d,0x0000007b,0x0004003d,0x00000006,0x0000007d,0x0000007c,0x00050041,0x00000012, + 0x0000007e,0x0000006d,0x0000007b,0x0004003d,0x00000006,0x0000007f,0x0000007e,0x00050084, + 0x00000006,0x00000080,0x0000007d,0x0000007f,0x0004007c,0x00000042,0x00000081,0x00000080, + 0x0004003d,0x00000042,0x00000082,0x00000063,0x00050080,0x00000042,0x00000083,0x00000081, + 0x00000082,0x00050080,0x00000042,0x00000084,0x0000007a,0x00000083,0x0003003e,0x00000063, + 0x00000084,0x000200f9,0x00000069,0x000200f8,0x00000069,0x0004003d,0x00000006,0x00000085, + 0x00000065,0x00050080,0x00000006,0x00000086,0x00000085,0x00000051,0x0003003e,0x00000065, + 0x00000086,0x000200f9,0x00000066,0x000200f8,0x00000068,0x0004003d,0x00000042,0x00000087, + 0x00000063,0x000500c4,0x00000042,0x00000089,0x00000087,0x00000088,0x0004003d,0x00000006, + 0x0000008a,0x0000005a,0x0004007c,0x00000042,0x0000008b,0x0000008a,0x000500c5,0x00000042, + 0x0000008c,0x00000089,0x0000008b,0x0004003d,0x00000042,0x0000008d,0x00000058,0x0007000c, + 0x00000042,0x0000008e,0x00000001,0x00000026,0x0000008c,0x0000008d,0x0003003e,0x00000058, + 0x0000008e,0x000200f9,0x0000005e,0x000200f8,0x0000005e,0x0004003d,0x00000006,0x0000008f, + 0x0000005a,0x00050080,0x00000006,0x00000090,0x0000008f,0x00000051,0x0003003e,0x0000005a, + 0x00000090,0x000200f9,0x0000005b,0x000200f8,0x0000005d,0x0004003d,0x00000042,0x00000092, + 0x00000058,0x000500c7,0x00000042,0x00000094,0x00000092,0x00000093,0x0003003e,0x00000091, + 0x00000094,0x0004003d,0x00000042,0x00000095,0x00000091,0x0004003d,0x00000007,0x00000097, + 0x00000014,0x0003003e,0x00000096,0x00000097,0x00050041,0x00000008,0x00000099,0x00000046, + 0x00000095,0x0004003d,0x00000007,0x0000009a,0x00000099,0x0003003e,0x00000098,0x0000009a, + 0x00060039,0x00000002,0x0000009b,0x00000010,0x00000096,0x00000098,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h b/gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h new file mode 100644 index 000000000..5eca05873 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h @@ -0,0 +1,243 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_GENERATE_SCD_HISTOGRAM_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000012d,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0009000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000110,0x00000113,0x00000119, + 0x0000011c,0x00060010,0x00000004,0x00000011,0x00000020,0x00000008,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x00000009, + 0x70736944,0x5379616c,0x28657a69,0x00000000,0x00090005,0x0000000f,0x64616f4c,0x6974704f, + 0x466c6163,0x49776f6c,0x7475706e,0x32697628,0x0000003b,0x00040005,0x0000000e,0x50785069, + 0x0000736f,0x000b0005,0x00000016,0x6d6f7441,0x6e496369,0x6d657263,0x53746e65,0x69484443, + 0x676f7473,0x286d6172,0x753b3169,0x00003b31,0x00040005,0x00000014,0x646e4969,0x00007865, + 0x00050005,0x00000015,0x756c6176,0x416f5465,0x00006464,0x00110005,0x00000020,0x656e6547, + 0x65746172,0x6e656353,0x61684365,0x4465676e,0x63657465,0x6e6f6974,0x74736948,0x6172676f, + 0x6976286d,0x69763b33,0x31693b32,0x3269763b,0x3269763b,0x0000003b,0x00050005,0x0000001b, + 0x6f6c4769,0x496c6162,0x00000064,0x00050005,0x0000001c,0x636f4c69,0x64496c61,0x00000000, + 0x00050005,0x0000001d,0x636f4c69,0x6e496c61,0x00786564,0x00050005,0x0000001e,0x6f724769, + 0x64497075,0x00000000,0x00050005,0x0000001f,0x6f724769,0x69537075,0x0000657a,0x00040005, + 0x00000024,0x464f6263,0x0000745f,0x00090006,0x00000024,0x00000000,0x706e4969,0x754c7475, + 0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x00000024,0x00000001,0x74704f75, + 0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x00000024, + 0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43, + 0x00000074,0x00060006,0x00000024,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006, + 0x00000024,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e, + 0x00006e6f,0x00070006,0x00000024,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e, + 0x00040005,0x00000026,0x464f6263,0x00000000,0x00080005,0x0000002f,0x706f5f72,0x61636974, + 0x6c665f6c,0x695f776f,0x7475706e,0x00000000,0x000a0005,0x0000003a,0x6f5f7772,0x63697470, + 0x665f6c61,0x5f776f6c,0x5f646373,0x74736968,0x6172676f,0x0000006d,0x00040005,0x00000042, + 0x58766964,0x00000000,0x00040005,0x00000048,0x59766964,0x00000000,0x00030005,0x0000004d, + 0x0000786e,0x00030005,0x00000053,0x0000796e,0x00040005,0x00000058,0x72617473,0x00005874, + 0x00040005,0x0000005c,0x72617473,0x00005974,0x00040005,0x00000060,0x706f7473,0x00000058, + 0x00040005,0x00000064,0x706f7473,0x00000059,0x00060005,0x00000068,0x66667562,0x664f7265, + 0x74657366,0x00000000,0x00030005,0x0000006d,0x00000069,0x00050005,0x00000079,0x42646373, + 0x65666675,0x00000072,0x00040005,0x00000085,0x726f6f63,0x00000064,0x00040005,0x000000a7, + 0x6f6c6f63,0x00000072,0x00040005,0x000000ab,0x61726170,0x0000006d,0x00040005,0x000000b0, + 0x61726170,0x0000006d,0x00040005,0x000000b6,0x61726170,0x0000006d,0x00040005,0x000000bc, + 0x61726170,0x0000006d,0x00070005,0x000000c3,0x61726373,0x696c626d,0x664f676e,0x74657366, + 0x00000000,0x00040005,0x000000e4,0x756c6176,0x00000065,0x00030005,0x000000e5,0x00000069, + 0x00060005,0x000000f7,0x74736968,0x6172676f,0x6174536d,0x00007472,0x00040005,0x00000106, + 0x61726170,0x0000006d,0x00040005,0x00000107,0x61726170,0x0000006d,0x00050005,0x0000010a, + 0x6f724769,0x69537075,0x0000657a,0x00080005,0x00000110,0x475f6c67,0x61626f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x00000044,0x00080005,0x00000113,0x4c5f6c67,0x6c61636f,0x6f766e49, + 0x69746163,0x44496e6f,0x00000000,0x00080005,0x00000119,0x4c5f6c67,0x6c61636f,0x6f766e49, + 0x69746163,0x6e496e6f,0x00786564,0x00060005,0x0000011c,0x575f6c67,0x476b726f,0x70756f72, + 0x00004449,0x00040005,0x00000120,0x61726170,0x0000006d,0x00040005,0x00000121,0x61726170, + 0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005,0x00000123,0x61726170, + 0x0000006d,0x00040005,0x00000124,0x61726170,0x0000006d,0x00030047,0x00000024,0x00000002, + 0x00050048,0x00000024,0x00000000,0x00000023,0x00000000,0x00050048,0x00000024,0x00000001, + 0x00000023,0x00000008,0x00050048,0x00000024,0x00000002,0x00000023,0x0000000c,0x00050048, + 0x00000024,0x00000003,0x00000023,0x00000010,0x00050048,0x00000024,0x00000004,0x00000023, + 0x00000014,0x00050048,0x00000024,0x00000005,0x00000023,0x00000018,0x00040047,0x00000026, + 0x00000021,0x00000002,0x00040047,0x00000026,0x00000022,0x00000000,0x00040047,0x0000002f, + 0x00000021,0x00000000,0x00040047,0x0000002f,0x00000022,0x00000000,0x00040047,0x0000003a, + 0x00000021,0x00000001,0x00040047,0x0000003a,0x00000022,0x00000000,0x00040047,0x00000110, + 0x0000000b,0x0000001c,0x00040047,0x00000113,0x0000000b,0x0000001b,0x00040047,0x00000119, + 0x0000000b,0x0000001d,0x00040047,0x0000011c,0x0000000b,0x0000001a,0x00040047,0x0000012c, + 0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015, + 0x00000006,0x00000020,0x00000001,0x00040017,0x00000007,0x00000006,0x00000002,0x00030021, + 0x00000008,0x00000007,0x00040020,0x0000000b,0x00000007,0x00000007,0x00040015,0x0000000c, + 0x00000020,0x00000000,0x00040021,0x0000000d,0x0000000c,0x0000000b,0x00040020,0x00000011, + 0x00000007,0x00000006,0x00040020,0x00000012,0x00000007,0x0000000c,0x00050021,0x00000013, + 0x00000002,0x00000011,0x00000012,0x00040017,0x00000018,0x00000006,0x00000003,0x00040020, + 0x00000019,0x00000007,0x00000018,0x00080021,0x0000001a,0x00000002,0x00000019,0x0000000b, + 0x00000011,0x0000000b,0x0000000b,0x00030016,0x00000022,0x00000020,0x00040017,0x00000023, + 0x00000022,0x00000002,0x0008001e,0x00000024,0x00000007,0x0000000c,0x0000000c,0x0000000c, + 0x0000000c,0x00000023,0x00040020,0x00000025,0x00000002,0x00000024,0x0004003b,0x00000025, + 0x00000026,0x00000002,0x0004002b,0x00000006,0x00000027,0x00000000,0x00040020,0x00000028, + 0x00000002,0x00000007,0x00090019,0x0000002d,0x0000000c,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x0000002e,0x00000000,0x0000002d,0x0004003b, + 0x0000002e,0x0000002f,0x00000000,0x00040017,0x00000032,0x0000000c,0x00000004,0x0004002b, + 0x0000000c,0x00000034,0x00000000,0x00090019,0x00000038,0x0000000c,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000039,0x00000000,0x00000038, + 0x0004003b,0x00000039,0x0000003a,0x00000000,0x00040020,0x0000003e,0x0000000b,0x0000000c, + 0x0004002b,0x0000000c,0x00000040,0x00000001,0x0004002b,0x0000000c,0x00000046,0x00000003, + 0x0004002b,0x0000000c,0x0000004e,0x00000002,0x0004002b,0x00000006,0x0000006a,0x0000000a, + 0x00020014,0x00000074,0x0004002b,0x0000000c,0x00000076,0x00000a00,0x0004001c,0x00000077, + 0x0000000c,0x00000076,0x00040020,0x00000078,0x00000004,0x00000077,0x0004003b,0x00000078, + 0x00000079,0x00000004,0x00040020,0x0000007e,0x00000004,0x0000000c,0x0004002b,0x00000006, + 0x00000081,0x00000001,0x0004002b,0x0000000c,0x00000083,0x00000d48,0x0004002b,0x0000000c, + 0x00000084,0x00000108,0x0004002b,0x00000006,0x00000087,0x00000004,0x00040020,0x000000a6, + 0x00000007,0x00000032,0x0005002c,0x00000007,0x000000a9,0x00000027,0x00000027,0x0005002c, + 0x00000007,0x000000ae,0x00000081,0x00000027,0x0004002b,0x00000006,0x000000b3,0x00000002, + 0x0005002c,0x00000007,0x000000b4,0x000000b3,0x00000027,0x0004002b,0x00000006,0x000000b9, + 0x00000003,0x0005002c,0x00000007,0x000000ba,0x000000b9,0x00000027,0x0004002b,0x0000000c, + 0x000000bf,0x0000000a,0x0004002b,0x00000006,0x000000df,0x00000080,0x0004002b,0x00000006, + 0x0000010b,0x00000020,0x0004002b,0x00000006,0x0000010c,0x00000008,0x0005002c,0x00000007, + 0x0000010d,0x0000010b,0x0000010c,0x00040017,0x0000010e,0x0000000c,0x00000003,0x00040020, + 0x0000010f,0x00000001,0x0000010e,0x0004003b,0x0000010f,0x00000110,0x00000001,0x0004003b, + 0x0000010f,0x00000113,0x00000001,0x00040017,0x00000114,0x0000000c,0x00000002,0x00040020, + 0x00000118,0x00000001,0x0000000c,0x0004003b,0x00000118,0x00000119,0x00000001,0x0004003b, + 0x0000010f,0x0000011c,0x00000001,0x0004002b,0x00000022,0x00000127,0x387fda40,0x0004002b, + 0x00000022,0x00000128,0x477fe000,0x0004002b,0x00000022,0x00000129,0x37801002,0x0004002b, + 0x0000000c,0x0000012a,0x00000020,0x0004002b,0x0000000c,0x0000012b,0x00000008,0x0006002c, + 0x0000010e,0x0000012c,0x0000012a,0x0000012b,0x00000040,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000000b,0x0000010a,0x00000007, + 0x0004003b,0x00000019,0x00000120,0x00000007,0x0004003b,0x0000000b,0x00000121,0x00000007, + 0x0004003b,0x00000011,0x00000122,0x00000007,0x0004003b,0x0000000b,0x00000123,0x00000007, + 0x0004003b,0x0000000b,0x00000124,0x00000007,0x0003003e,0x0000010a,0x0000010d,0x0004003d, + 0x0000010e,0x00000111,0x00000110,0x0004007c,0x00000018,0x00000112,0x00000111,0x0004003d, + 0x0000010e,0x00000115,0x00000113,0x0007004f,0x00000114,0x00000116,0x00000115,0x00000115, + 0x00000000,0x00000001,0x0004007c,0x00000007,0x00000117,0x00000116,0x0004003d,0x0000000c, + 0x0000011a,0x00000119,0x0004007c,0x00000006,0x0000011b,0x0000011a,0x0004003d,0x0000010e, + 0x0000011d,0x0000011c,0x0007004f,0x00000114,0x0000011e,0x0000011d,0x0000011d,0x00000000, + 0x00000001,0x0004007c,0x00000007,0x0000011f,0x0000011e,0x0003003e,0x00000120,0x00000112, + 0x0003003e,0x00000121,0x00000117,0x0003003e,0x00000122,0x0000011b,0x0003003e,0x00000123, + 0x0000011f,0x0004003d,0x00000007,0x00000125,0x0000010a,0x0003003e,0x00000124,0x00000125, + 0x00090039,0x00000002,0x00000126,0x00000020,0x00000120,0x00000121,0x00000122,0x00000123, + 0x00000124,0x000100fd,0x00010038,0x00050036,0x00000007,0x00000009,0x00000000,0x00000008, + 0x000200f8,0x0000000a,0x00050041,0x00000028,0x00000029,0x00000026,0x00000027,0x0004003d, + 0x00000007,0x0000002a,0x00000029,0x000200fe,0x0000002a,0x00010038,0x00050036,0x0000000c, + 0x0000000f,0x00000000,0x0000000d,0x00030037,0x0000000b,0x0000000e,0x000200f8,0x00000010, + 0x0004003d,0x0000002d,0x00000030,0x0000002f,0x0004003d,0x00000007,0x00000031,0x0000000e, + 0x0007005f,0x00000032,0x00000033,0x00000030,0x00000031,0x00000002,0x00000027,0x00050051, + 0x0000000c,0x00000035,0x00000033,0x00000000,0x000200fe,0x00000035,0x00010038,0x00050036, + 0x00000002,0x00000016,0x00000000,0x00000013,0x00030037,0x00000011,0x00000014,0x00030037, + 0x00000012,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000006,0x0000003b,0x00000014, + 0x00050050,0x00000007,0x0000003c,0x0000003b,0x00000027,0x0004003d,0x0000000c,0x0000003d, + 0x00000015,0x0006003c,0x0000003e,0x0000003f,0x0000003a,0x0000003c,0x00000034,0x000700ea, + 0x0000000c,0x00000041,0x0000003f,0x00000040,0x00000034,0x0000003d,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000020,0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b, + 0x00030037,0x0000000b,0x0000001c,0x00030037,0x00000011,0x0000001d,0x00030037,0x0000000b, + 0x0000001e,0x00030037,0x0000000b,0x0000001f,0x000200f8,0x00000021,0x0004003b,0x00000012, + 0x00000042,0x00000007,0x0004003b,0x00000012,0x00000048,0x00000007,0x0004003b,0x00000012, + 0x0000004d,0x00000007,0x0004003b,0x00000012,0x00000053,0x00000007,0x0004003b,0x00000012, + 0x00000058,0x00000007,0x0004003b,0x00000012,0x0000005c,0x00000007,0x0004003b,0x00000012, + 0x00000060,0x00000007,0x0004003b,0x00000012,0x00000064,0x00000007,0x0004003b,0x00000012, + 0x00000068,0x00000007,0x0004003b,0x00000011,0x0000006d,0x00000007,0x0004003b,0x0000000b, + 0x00000085,0x00000007,0x0004003b,0x000000a6,0x000000a7,0x00000007,0x0004003b,0x0000000b, + 0x000000ab,0x00000007,0x0004003b,0x0000000b,0x000000b0,0x00000007,0x0004003b,0x0000000b, + 0x000000b6,0x00000007,0x0004003b,0x0000000b,0x000000bc,0x00000007,0x0004003b,0x00000012, + 0x000000c3,0x00000007,0x0004003b,0x00000012,0x000000e4,0x00000007,0x0004003b,0x00000011, + 0x000000e5,0x00000007,0x0004003b,0x00000012,0x000000f7,0x00000007,0x0004003b,0x00000011, + 0x00000106,0x00000007,0x0004003b,0x00000012,0x00000107,0x00000007,0x00040039,0x00000007, + 0x00000043,0x00000009,0x00050051,0x00000006,0x00000044,0x00000043,0x00000000,0x0004007c, + 0x0000000c,0x00000045,0x00000044,0x00050086,0x0000000c,0x00000047,0x00000045,0x00000046, + 0x0003003e,0x00000042,0x00000047,0x00040039,0x00000007,0x00000049,0x00000009,0x00050051, + 0x00000006,0x0000004a,0x00000049,0x00000001,0x0004007c,0x0000000c,0x0000004b,0x0000004a, + 0x00050086,0x0000000c,0x0000004c,0x0000004b,0x00000046,0x0003003e,0x00000048,0x0000004c, + 0x00050041,0x00000011,0x0000004f,0x0000001b,0x0000004e,0x0004003d,0x00000006,0x00000050, + 0x0000004f,0x0004007c,0x0000000c,0x00000051,0x00000050,0x00050089,0x0000000c,0x00000052, + 0x00000051,0x00000046,0x0003003e,0x0000004d,0x00000052,0x00050041,0x00000011,0x00000054, + 0x0000001b,0x0000004e,0x0004003d,0x00000006,0x00000055,0x00000054,0x0004007c,0x0000000c, + 0x00000056,0x00000055,0x00050086,0x0000000c,0x00000057,0x00000056,0x00000046,0x0003003e, + 0x00000053,0x00000057,0x0004003d,0x0000000c,0x00000059,0x00000042,0x0004003d,0x0000000c, + 0x0000005a,0x0000004d,0x00050084,0x0000000c,0x0000005b,0x00000059,0x0000005a,0x0003003e, + 0x00000058,0x0000005b,0x0004003d,0x0000000c,0x0000005d,0x00000048,0x0004003d,0x0000000c, + 0x0000005e,0x00000053,0x00050084,0x0000000c,0x0000005f,0x0000005d,0x0000005e,0x0003003e, + 0x0000005c,0x0000005f,0x0004003d,0x0000000c,0x00000061,0x00000058,0x0004003d,0x0000000c, + 0x00000062,0x00000042,0x00050080,0x0000000c,0x00000063,0x00000061,0x00000062,0x0003003e, + 0x00000060,0x00000063,0x0004003d,0x0000000c,0x00000065,0x0000005c,0x0004003d,0x0000000c, + 0x00000066,0x00000048,0x00050080,0x0000000c,0x00000067,0x00000065,0x00000066,0x0003003e, + 0x00000064,0x00000067,0x0004003d,0x00000006,0x00000069,0x0000001d,0x00050084,0x00000006, + 0x0000006b,0x00000069,0x0000006a,0x0004007c,0x0000000c,0x0000006c,0x0000006b,0x0003003e, + 0x00000068,0x0000006c,0x0003003e,0x0000006d,0x00000027,0x000200f9,0x0000006e,0x000200f8, + 0x0000006e,0x000400f6,0x00000070,0x00000071,0x00000000,0x000200f9,0x00000072,0x000200f8, + 0x00000072,0x0004003d,0x00000006,0x00000073,0x0000006d,0x000500b1,0x00000074,0x00000075, + 0x00000073,0x0000006a,0x000400fa,0x00000075,0x0000006f,0x00000070,0x000200f8,0x0000006f, + 0x0004003d,0x0000000c,0x0000007a,0x00000068,0x0004003d,0x00000006,0x0000007b,0x0000006d, + 0x0004007c,0x0000000c,0x0000007c,0x0000007b,0x00050080,0x0000000c,0x0000007d,0x0000007a, + 0x0000007c,0x00050041,0x0000007e,0x0000007f,0x00000079,0x0000007d,0x0003003e,0x0000007f, + 0x00000034,0x000200f9,0x00000071,0x000200f8,0x00000071,0x0004003d,0x00000006,0x00000080, + 0x0000006d,0x00050080,0x00000006,0x00000082,0x00000080,0x00000081,0x0003003e,0x0000006d, + 0x00000082,0x000200f9,0x0000006e,0x000200f8,0x00000070,0x000300e1,0x0000004e,0x00000083, + 0x000400e0,0x0000004e,0x0000004e,0x00000084,0x0004003d,0x0000000c,0x00000086,0x00000058, + 0x00050041,0x00000011,0x00000088,0x0000001b,0x00000034,0x0004003d,0x00000006,0x00000089, + 0x00000088,0x00050084,0x00000006,0x0000008a,0x00000087,0x00000089,0x0004007c,0x0000000c, + 0x0000008b,0x0000008a,0x00050080,0x0000000c,0x0000008c,0x00000086,0x0000008b,0x0004007c, + 0x00000006,0x0000008d,0x0000008c,0x0004003d,0x0000000c,0x0000008e,0x0000005c,0x00050041, + 0x00000011,0x0000008f,0x0000001b,0x00000040,0x0004003d,0x00000006,0x00000090,0x0000008f, + 0x0004007c,0x0000000c,0x00000091,0x00000090,0x00050080,0x0000000c,0x00000092,0x0000008e, + 0x00000091,0x0004007c,0x00000006,0x00000093,0x00000092,0x00050050,0x00000007,0x00000094, + 0x0000008d,0x00000093,0x0003003e,0x00000085,0x00000094,0x00050041,0x00000011,0x00000095, + 0x00000085,0x00000034,0x0004003d,0x00000006,0x00000096,0x00000095,0x0004007c,0x0000000c, + 0x00000097,0x00000096,0x0004003d,0x0000000c,0x00000098,0x00000060,0x000500b0,0x00000074, + 0x00000099,0x00000097,0x00000098,0x000300f7,0x0000009b,0x00000000,0x000400fa,0x00000099, + 0x0000009a,0x0000009b,0x000200f8,0x0000009a,0x000200f9,0x0000009c,0x000200f8,0x0000009c, + 0x000400f6,0x0000009e,0x0000009f,0x00000000,0x000200f9,0x000000a0,0x000200f8,0x000000a0, + 0x00050041,0x00000011,0x000000a1,0x00000085,0x00000040,0x0004003d,0x00000006,0x000000a2, + 0x000000a1,0x0004007c,0x0000000c,0x000000a3,0x000000a2,0x0004003d,0x0000000c,0x000000a4, + 0x00000064,0x000500b0,0x00000074,0x000000a5,0x000000a3,0x000000a4,0x000400fa,0x000000a5, + 0x0000009d,0x0000009e,0x000200f8,0x0000009d,0x0004003d,0x00000007,0x000000a8,0x00000085, + 0x00050080,0x00000007,0x000000aa,0x000000a8,0x000000a9,0x0003003e,0x000000ab,0x000000aa, + 0x00050039,0x0000000c,0x000000ac,0x0000000f,0x000000ab,0x0004003d,0x00000007,0x000000ad, + 0x00000085,0x00050080,0x00000007,0x000000af,0x000000ad,0x000000ae,0x0003003e,0x000000b0, + 0x000000af,0x00050039,0x0000000c,0x000000b1,0x0000000f,0x000000b0,0x0004003d,0x00000007, + 0x000000b2,0x00000085,0x00050080,0x00000007,0x000000b5,0x000000b2,0x000000b4,0x0003003e, + 0x000000b6,0x000000b5,0x00050039,0x0000000c,0x000000b7,0x0000000f,0x000000b6,0x0004003d, + 0x00000007,0x000000b8,0x00000085,0x00050080,0x00000007,0x000000bb,0x000000b8,0x000000ba, + 0x0003003e,0x000000bc,0x000000bb,0x00050039,0x0000000c,0x000000bd,0x0000000f,0x000000bc, + 0x00070050,0x00000032,0x000000be,0x000000ac,0x000000b1,0x000000b7,0x000000bd,0x0003003e, + 0x000000a7,0x000000be,0x0004003d,0x00000032,0x000000c0,0x000000a7,0x00070050,0x00000032, + 0x000000c1,0x000000bf,0x000000bf,0x000000bf,0x000000bf,0x00050084,0x00000032,0x000000c2, + 0x000000c0,0x000000c1,0x0003003e,0x000000a7,0x000000c2,0x0004003d,0x00000006,0x000000c4, + 0x0000001d,0x0005008b,0x00000006,0x000000c5,0x000000c4,0x0000006a,0x0004007c,0x0000000c, + 0x000000c6,0x000000c5,0x0003003e,0x000000c3,0x000000c6,0x00050041,0x00000012,0x000000c7, + 0x000000a7,0x00000034,0x0004003d,0x0000000c,0x000000c8,0x000000c7,0x0004003d,0x0000000c, + 0x000000c9,0x000000c3,0x00050080,0x0000000c,0x000000ca,0x000000c8,0x000000c9,0x00050041, + 0x0000007e,0x000000cb,0x00000079,0x000000ca,0x000700ea,0x0000000c,0x000000cc,0x000000cb, + 0x00000040,0x00000034,0x00000040,0x00050041,0x00000012,0x000000cd,0x000000a7,0x00000040, + 0x0004003d,0x0000000c,0x000000ce,0x000000cd,0x0004003d,0x0000000c,0x000000cf,0x000000c3, + 0x00050080,0x0000000c,0x000000d0,0x000000ce,0x000000cf,0x00050041,0x0000007e,0x000000d1, + 0x00000079,0x000000d0,0x000700ea,0x0000000c,0x000000d2,0x000000d1,0x00000040,0x00000034, + 0x00000040,0x00050041,0x00000012,0x000000d3,0x000000a7,0x0000004e,0x0004003d,0x0000000c, + 0x000000d4,0x000000d3,0x0004003d,0x0000000c,0x000000d5,0x000000c3,0x00050080,0x0000000c, + 0x000000d6,0x000000d4,0x000000d5,0x00050041,0x0000007e,0x000000d7,0x00000079,0x000000d6, + 0x000700ea,0x0000000c,0x000000d8,0x000000d7,0x00000040,0x00000034,0x00000040,0x00050041, + 0x00000012,0x000000d9,0x000000a7,0x00000046,0x0004003d,0x0000000c,0x000000da,0x000000d9, + 0x0004003d,0x0000000c,0x000000db,0x000000c3,0x00050080,0x0000000c,0x000000dc,0x000000da, + 0x000000db,0x00050041,0x0000007e,0x000000dd,0x00000079,0x000000dc,0x000700ea,0x0000000c, + 0x000000de,0x000000dd,0x00000040,0x00000034,0x00000040,0x000200f9,0x0000009f,0x000200f8, + 0x0000009f,0x00050041,0x00000011,0x000000e0,0x00000085,0x00000040,0x0004003d,0x00000006, + 0x000000e1,0x000000e0,0x00050080,0x00000006,0x000000e2,0x000000e1,0x000000df,0x00050041, + 0x00000011,0x000000e3,0x00000085,0x00000040,0x0003003e,0x000000e3,0x000000e2,0x000200f9, + 0x0000009c,0x000200f8,0x0000009e,0x000200f9,0x0000009b,0x000200f8,0x0000009b,0x000300e1, + 0x0000004e,0x00000083,0x000400e0,0x0000004e,0x0000004e,0x00000084,0x0003003e,0x000000e4, + 0x00000034,0x0003003e,0x000000e5,0x00000027,0x000200f9,0x000000e6,0x000200f8,0x000000e6, + 0x000400f6,0x000000e8,0x000000e9,0x00000000,0x000200f9,0x000000ea,0x000200f8,0x000000ea, + 0x0004003d,0x00000006,0x000000eb,0x000000e5,0x000500b1,0x00000074,0x000000ec,0x000000eb, + 0x0000006a,0x000400fa,0x000000ec,0x000000e7,0x000000e8,0x000200f8,0x000000e7,0x0004003d, + 0x0000000c,0x000000ed,0x00000068,0x0004003d,0x00000006,0x000000ee,0x000000e5,0x0004007c, + 0x0000000c,0x000000ef,0x000000ee,0x00050080,0x0000000c,0x000000f0,0x000000ed,0x000000ef, + 0x00050041,0x0000007e,0x000000f1,0x00000079,0x000000f0,0x0004003d,0x0000000c,0x000000f2, + 0x000000f1,0x0004003d,0x0000000c,0x000000f3,0x000000e4,0x00050080,0x0000000c,0x000000f4, + 0x000000f3,0x000000f2,0x0003003e,0x000000e4,0x000000f4,0x000200f9,0x000000e9,0x000200f8, + 0x000000e9,0x0004003d,0x00000006,0x000000f5,0x000000e5,0x00050080,0x00000006,0x000000f6, + 0x000000f5,0x00000081,0x0003003e,0x000000e5,0x000000f6,0x000200f9,0x000000e6,0x000200f8, + 0x000000e8,0x00050041,0x00000011,0x000000f8,0x0000001f,0x00000034,0x0004003d,0x00000006, + 0x000000f9,0x000000f8,0x00050041,0x00000011,0x000000fa,0x0000001f,0x00000040,0x0004003d, + 0x00000006,0x000000fb,0x000000fa,0x00050084,0x00000006,0x000000fc,0x000000f9,0x000000fb, + 0x00050041,0x00000011,0x000000fd,0x0000001b,0x0000004e,0x0004003d,0x00000006,0x000000fe, + 0x000000fd,0x00050084,0x00000006,0x000000ff,0x000000fc,0x000000fe,0x0004007c,0x0000000c, + 0x00000100,0x000000ff,0x0003003e,0x000000f7,0x00000100,0x0004003d,0x0000000c,0x00000101, + 0x000000f7,0x0004003d,0x00000006,0x00000102,0x0000001d,0x0004007c,0x0000000c,0x00000103, + 0x00000102,0x00050080,0x0000000c,0x00000104,0x00000101,0x00000103,0x0004007c,0x00000006, + 0x00000105,0x00000104,0x0003003e,0x00000106,0x00000105,0x0004003d,0x0000000c,0x00000108, + 0x000000e4,0x0003003e,0x00000107,0x00000108,0x00060039,0x00000002,0x00000109,0x00000016, + 0x00000106,0x00000107,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h new file mode 100644 index 000000000..cc578f6d9 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h @@ -0,0 +1,1196 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_LUMINANCE_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000005b0,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x0000059d,0x000005a2,0x00060010,0x00000004,0x00000011, + 0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469, + 0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47, + 0x735f5248,0x65646168,0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004, + 0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273, + 0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005, + 0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005, + 0x00000010,0x73746962,0x00000000,0x000a0005,0x00000016,0x52786666,0x70616d65,0x57726f46, + 0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x00000015,0x00000061, + 0x00060005,0x00000019,0x576d754e,0x476b726f,0x70756f72,0x00002873,0x00090005,0x00000020, + 0x64616f4c,0x704f7752,0x61636974,0x6f6c466c,0x706e4977,0x76287475,0x003b3269,0x00040005, + 0x0000001f,0x50785069,0x0000736f,0x00090005,0x00000028,0x5f445053,0x4d746553,0x616d7069, + 0x69762870,0x31753b32,0x3b31663b,0x00000000,0x00040005,0x00000025,0x50785069,0x0000736f, + 0x00040005,0x00000026,0x65646e69,0x00000078,0x00040005,0x00000027,0x756c6176,0x00000065, + 0x00080005,0x0000002a,0x5f445053,0x65736552,0x6f744174,0x4363696d,0x746e756f,0x00287265, + 0x00090005,0x00000032,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266, + 0x00003b31,0x00030005,0x00000030,0x00786574,0x00040005,0x00000031,0x63696c73,0x00000065, + 0x00060005,0x00000037,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x00000035, + 0x00786574,0x00040005,0x00000036,0x63696c73,0x00000065,0x00080005,0x0000003f,0x53647053, + 0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x0000003b,0x00786970, + 0x00050005,0x0000003c,0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000003d,0x65646e69, + 0x00000078,0x00040005,0x0000003e,0x63696c73,0x00000065,0x000a0005,0x00000043,0x49647053, + 0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005, + 0x00000042,0x63696c73,0x00000065,0x00080005,0x00000045,0x47647053,0x74417465,0x63696d6f, + 0x6e756f43,0x28726574,0x00000000,0x00090005,0x00000048,0x52647053,0x74657365,0x6d6f7441, + 0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000047,0x63696c73,0x00000065, + 0x00090005,0x0000004d,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461,0x753b3175, + 0x00003b31,0x00030005,0x0000004b,0x00000078,0x00030005,0x0000004c,0x00000079,0x000a0005, + 0x00000053,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528,0x763b3175, + 0x003b3466,0x00030005,0x00000050,0x00000078,0x00030005,0x00000051,0x00000079,0x00040005, + 0x00000052,0x756c6176,0x00000065,0x00090005,0x0000005a,0x52647053,0x63756465,0x76283465, + 0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x00000056,0x00003076,0x00030005, + 0x00000057,0x00003176,0x00030005,0x00000058,0x00003276,0x00030005,0x00000059,0x00003376, + 0x000a0005,0x0000005c,0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c, + 0x65697272,0x00002872,0x00090005,0x00000063,0x45647053,0x57746978,0x676b726f,0x70756f72, + 0x3b317528,0x753b3175,0x00003b31,0x00060005,0x00000060,0x576d756e,0x476b726f,0x70756f72, + 0x00000073,0x00080005,0x00000061,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x00000062,0x63696c73,0x00000065,0x00070005,0x00000067,0x52647053, + 0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005,0x00000066,0x00000076,0x000b0005, + 0x00000070,0x52647053,0x63756465,0x616f4c65,0x76283464,0x763b3275,0x763b3275,0x763b3275, + 0x753b3275,0x00003b31,0x00030005,0x0000006b,0x00003069,0x00030005,0x0000006c,0x00003169, + 0x00030005,0x0000006d,0x00003269,0x00030005,0x0000006e,0x00003369,0x00040005,0x0000006f, + 0x63696c73,0x00000065,0x00080005,0x00000075,0x52647053,0x63756465,0x616f4c65,0x76283464, + 0x753b3275,0x00003b31,0x00040005,0x00000073,0x65736162,0x00000000,0x00040005,0x00000074, + 0x63696c73,0x00000065,0x000e0005,0x0000007c,0x52647053,0x63756465,0x616f4c65,0x756f5364, + 0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32,0x75763b32,0x31753b32,0x0000003b, + 0x00030005,0x00000077,0x00003069,0x00030005,0x00000078,0x00003169,0x00030005,0x00000079, + 0x00003269,0x00030005,0x0000007a,0x00003369,0x00040005,0x0000007b,0x63696c73,0x00000065, + 0x000b0005,0x00000080,0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d, + 0x32757628,0x3b31753b,0x00000000,0x00040005,0x0000007e,0x65736162,0x00000000,0x00040005, + 0x0000007f,0x63696c73,0x00000065,0x00100005,0x00000089,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973,0x3b317528,0x763b3175,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000083,0x00000078,0x00030005,0x00000084, + 0x00000079,0x00050005,0x00000085,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000086, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000087, + 0x0070696d,0x00040005,0x00000088,0x63696c73,0x00000065,0x000d0005,0x00000091,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b,0x3b327576,0x753b3175, + 0x31753b31,0x0000003b,0x00030005,0x0000008b,0x00000078,0x00030005,0x0000008c,0x00000079, + 0x00050005,0x0000008d,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000008e,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x0000008f,0x0070696d, + 0x00040005,0x00000090,0x63696c73,0x00000065,0x000c0005,0x00000099,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x00000093,0x00000078,0x00030005,0x00000094,0x00000079,0x00050005,0x00000095, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000096,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000097,0x0070696d,0x00040005,0x00000098, + 0x63696c73,0x00000065,0x000c0005,0x000000a1,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x0000009b, + 0x00000078,0x00030005,0x0000009c,0x00000079,0x00050005,0x0000009d,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x0000009e,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x0000009f,0x0070696d,0x00040005,0x000000a0,0x63696c73,0x00000065, + 0x000c0005,0x000000a9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528345f,0x31753b31, + 0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000a3,0x00000078,0x00030005, + 0x000000a4,0x00000079,0x00050005,0x000000a5,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000a6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000a7,0x0070696d,0x00040005,0x000000a8,0x63696c73,0x00000065,0x000b0005,0x000000b0, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275,0x31753b31,0x3b31753b, + 0x00000000,0x00050005,0x000000ac,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000ad, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000ae, + 0x0070696d,0x00040005,0x000000af,0x63696c73,0x00000065,0x000b0005,0x000000b7,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000b3,0x00000078,0x00030005,0x000000b4,0x00000079,0x00040005,0x000000b5, + 0x7370696d,0x00000000,0x00040005,0x000000b6,0x63696c73,0x00000065,0x000e0005,0x000000c1, + 0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872,0x3b31753b,0x3b327576, + 0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000ba,0x00000078,0x00030005, + 0x000000bb,0x00000079,0x00050005,0x000000bc,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000bd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005, + 0x000000be,0x65736162,0x0070694d,0x00040005,0x000000bf,0x7370696d,0x00000000,0x00040005, + 0x000000c0,0x63696c73,0x00000065,0x000a0005,0x000000c9,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005,0x000000c4,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000c5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000c6,0x7370696d,0x00000000,0x00060005,0x000000c7, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000c8,0x63696c73,0x00000065, + 0x000c0005,0x000000cf,0x706d6f43,0x4f657475,0x63697470,0x6c466c61,0x6e49776f,0x50747570, + 0x6d617279,0x76286469,0x693b3269,0x00003b31,0x00050005,0x000000cd,0x6f724769,0x64497075, + 0x00000000,0x00050005,0x000000ce,0x636f4c69,0x6e496c61,0x00786564,0x00040005,0x000000e3, + 0x61726170,0x0000006d,0x00040005,0x000000e5,0x61726170,0x0000006d,0x00040005,0x000000e6, + 0x61726170,0x0000006d,0x00040005,0x000000e9,0x61726170,0x0000006d,0x00040005,0x000000ea, + 0x61726170,0x0000006d,0x00040005,0x000000ec,0x61726170,0x0000006d,0x00040005,0x000000ee, + 0x61726170,0x0000006d,0x00040005,0x000000f0,0x61726170,0x0000006d,0x00040005,0x000000f1, + 0x61726170,0x0000006d,0x00040005,0x000000f3,0x61726170,0x0000006d,0x00040005,0x000000f5, + 0x61726170,0x0000006d,0x00040005,0x000000f6,0x61726170,0x0000006d,0x00040005,0x000000f8, + 0x61726170,0x0000006d,0x00040005,0x000000f9,0x61726170,0x0000006d,0x00040005,0x000000fa, + 0x61726170,0x0000006d,0x00050005,0x000000ff,0x464f6263,0x4450535f,0x0000745f,0x00050006, + 0x000000ff,0x00000000,0x7370696d,0x00000000,0x00070006,0x000000ff,0x00000001,0x576d756e, + 0x476b726f,0x70756f72,0x00000073,0x00070006,0x000000ff,0x00000002,0x6b726f77,0x756f7247, + 0x66664f70,0x00746573,0x000c0006,0x000000ff,0x00000003,0x576d756e,0x476b726f,0x70756f72, + 0x6974704f,0x466c6163,0x49776f6c,0x7475706e,0x61727950,0x0064696d,0x00050006,0x000000ff, + 0x00000004,0x30646170,0x0000005f,0x00050006,0x000000ff,0x00000005,0x31646170,0x0000005f, + 0x00050006,0x000000ff,0x00000006,0x32646170,0x0000005f,0x00050005,0x00000101,0x464f6263, + 0x4450535f,0x00000000,0x00080005,0x0000010a,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x75706e69,0x00000074,0x00040005,0x00000114,0x756c6176,0x00003465,0x000a0005,0x00000120, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74,0x5f6c6576,0x00000031, + 0x000a0005,0x00000125,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74, + 0x5f6c6576,0x00000032,0x000a0005,0x0000012a,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x75706e69,0x656c5f74,0x5f6c6576,0x00000033,0x000a0005,0x0000012f,0x6f5f7772,0x63697470, + 0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74,0x5f6c6576,0x00000034,0x000a0005,0x00000134, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74,0x5f6c6576,0x00000035, + 0x000a0005,0x00000139,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74, + 0x5f6c6576,0x00000036,0x00040005,0x0000013f,0x616d756c,0x00000000,0x00040005,0x00000142, + 0x61726170,0x0000006d,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x0000014f, + 0x61726170,0x0000006d,0x00040005,0x00000151,0x61726170,0x0000006d,0x00070005,0x0000015c, + 0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005,0x00000162,0x49647073, + 0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x00000167,0x49647073,0x7265746e, + 0x6964656d,0x42657461,0x00000000,0x00070005,0x0000016c,0x49647073,0x7265746e,0x6964656d, + 0x41657461,0x00000000,0x00040005,0x00000199,0x61726170,0x0000006d,0x00030005,0x000001a3, + 0x00003076,0x00030005,0x000001a5,0x00003176,0x00030005,0x000001a8,0x00003276,0x00030005, + 0x000001ab,0x00003376,0x00040005,0x000001ae,0x61726170,0x0000006d,0x00040005,0x000001b0, + 0x61726170,0x0000006d,0x00040005,0x000001b2,0x61726170,0x0000006d,0x00040005,0x000001b4, + 0x61726170,0x0000006d,0x00030005,0x000001bb,0x00003076,0x00040005,0x000001be,0x61726170, + 0x0000006d,0x00040005,0x000001bf,0x61726170,0x0000006d,0x00030005,0x000001c2,0x00003176, + 0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001c6,0x61726170,0x0000006d, + 0x00030005,0x000001c9,0x00003276,0x00040005,0x000001cc,0x61726170,0x0000006d,0x00040005, + 0x000001cd,0x61726170,0x0000006d,0x00030005,0x000001d0,0x00003376,0x00040005,0x000001d3, + 0x61726170,0x0000006d,0x00040005,0x000001d4,0x61726170,0x0000006d,0x00040005,0x000001d7, + 0x61726170,0x0000006d,0x00040005,0x000001d9,0x61726170,0x0000006d,0x00040005,0x000001db, + 0x61726170,0x0000006d,0x00040005,0x000001dd,0x61726170,0x0000006d,0x00040005,0x000001ee, + 0x61726170,0x0000006d,0x00040005,0x000001ef,0x61726170,0x0000006d,0x00040005,0x000001f0, + 0x61726170,0x0000006d,0x00040005,0x000001f1,0x61726170,0x0000006d,0x00040005,0x000001f2, + 0x61726170,0x0000006d,0x00030005,0x000001f7,0x00003076,0x00040005,0x000001fb,0x61726170, + 0x0000006d,0x00040005,0x000001fc,0x61726170,0x0000006d,0x00030005,0x000001ff,0x00003176, + 0x00040005,0x00000203,0x61726170,0x0000006d,0x00040005,0x00000204,0x61726170,0x0000006d, + 0x00030005,0x00000207,0x00003276,0x00040005,0x0000020b,0x61726170,0x0000006d,0x00040005, + 0x0000020c,0x61726170,0x0000006d,0x00030005,0x0000020f,0x00003376,0x00040005,0x00000213, + 0x61726170,0x0000006d,0x00040005,0x00000214,0x61726170,0x0000006d,0x00040005,0x00000217, + 0x61726170,0x0000006d,0x00040005,0x00000219,0x61726170,0x0000006d,0x00040005,0x0000021b, + 0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d,0x00040005,0x0000022a, + 0x61726170,0x0000006d,0x00040005,0x0000022b,0x61726170,0x0000006d,0x00040005,0x0000022c, + 0x61726170,0x0000006d,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00040005,0x0000022e, + 0x61726170,0x0000006d,0x00030005,0x00000233,0x00786574,0x00030005,0x00000241,0x00786970, + 0x00030005,0x00000250,0x00000076,0x00040005,0x00000253,0x61726170,0x0000006d,0x00040005, + 0x00000254,0x61726170,0x0000006d,0x00040005,0x00000258,0x61726170,0x0000006d,0x00040005, + 0x0000025a,0x61726170,0x0000006d,0x00040005,0x0000025d,0x61726170,0x0000006d,0x00040005, + 0x0000025e,0x61726170,0x0000006d,0x00040005,0x0000027c,0x61726170,0x0000006d,0x00040005, + 0x0000027d,0x61726170,0x0000006d,0x00040005,0x00000281,0x61726170,0x0000006d,0x00040005, + 0x00000283,0x61726170,0x0000006d,0x00040005,0x00000286,0x61726170,0x0000006d,0x00040005, + 0x00000287,0x61726170,0x0000006d,0x00040005,0x000002a5,0x61726170,0x0000006d,0x00040005, + 0x000002a6,0x61726170,0x0000006d,0x00040005,0x000002aa,0x61726170,0x0000006d,0x00040005, + 0x000002ac,0x61726170,0x0000006d,0x00040005,0x000002af,0x61726170,0x0000006d,0x00040005, + 0x000002b0,0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170,0x0000006d,0x00040005, + 0x000002d0,0x61726170,0x0000006d,0x00040005,0x000002d4,0x61726170,0x0000006d,0x00040005, + 0x000002d6,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005, + 0x000002da,0x61726170,0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005, + 0x000002e7,0x61726170,0x0000006d,0x00040005,0x000002ec,0x61726170,0x0000006d,0x00040005, + 0x000002f1,0x61726170,0x0000006d,0x00040005,0x00000307,0x61726170,0x0000006d,0x00040005, + 0x00000308,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170,0x0000006d,0x00040005, + 0x0000030c,0x61726170,0x0000006d,0x00040005,0x00000313,0x61726170,0x0000006d,0x00040005, + 0x00000314,0x61726170,0x0000006d,0x00040005,0x00000315,0x61726170,0x0000006d,0x00040005, + 0x00000327,0x61726170,0x0000006d,0x00040005,0x00000328,0x61726170,0x0000006d,0x00040005, + 0x0000032b,0x61726170,0x0000006d,0x00040005,0x0000032c,0x61726170,0x0000006d,0x00040005, + 0x00000334,0x61726170,0x0000006d,0x00040005,0x00000335,0x61726170,0x0000006d,0x00040005, + 0x00000336,0x61726170,0x0000006d,0x00040005,0x00000347,0x61726170,0x0000006d,0x00040005, + 0x00000348,0x61726170,0x0000006d,0x00040005,0x0000034b,0x61726170,0x0000006d,0x00040005, + 0x0000034c,0x61726170,0x0000006d,0x00040005,0x00000354,0x61726170,0x0000006d,0x00040005, + 0x00000355,0x61726170,0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d,0x00040005, + 0x00000368,0x61726170,0x0000006d,0x00040005,0x00000369,0x61726170,0x0000006d,0x00040005, + 0x0000036c,0x61726170,0x0000006d,0x00040005,0x0000036d,0x61726170,0x0000006d,0x00040005, + 0x00000376,0x61726170,0x0000006d,0x00040005,0x00000377,0x61726170,0x0000006d,0x00040005, + 0x00000378,0x61726170,0x0000006d,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005, + 0x0000037e,0x61726170,0x0000006d,0x00040005,0x00000380,0x61726170,0x0000006d,0x00040005, + 0x00000382,0x61726170,0x0000006d,0x00040005,0x00000384,0x61726170,0x0000006d,0x00040005, + 0x00000386,0x61726170,0x0000006d,0x00030005,0x00000389,0x00000076,0x00040005,0x0000038a, + 0x61726170,0x0000006d,0x00040005,0x0000038c,0x61726170,0x0000006d,0x00040005,0x0000038f, + 0x61726170,0x0000006d,0x00040005,0x000003a3,0x61726170,0x0000006d,0x00040005,0x000003a4, + 0x61726170,0x0000006d,0x00040005,0x000003a6,0x61726170,0x0000006d,0x00040005,0x000003a8, + 0x61726170,0x0000006d,0x00040005,0x000003b0,0x61726170,0x0000006d,0x00040005,0x000003b1, + 0x61726170,0x0000006d,0x00040005,0x000003b3,0x61726170,0x0000006d,0x00030005,0x000003ba, + 0x00000076,0x00040005,0x000003c2,0x61726170,0x0000006d,0x00040005,0x000003c3,0x61726170, + 0x0000006d,0x00040005,0x000003c5,0x61726170,0x0000006d,0x00040005,0x000003d9,0x61726170, + 0x0000006d,0x00040005,0x000003da,0x61726170,0x0000006d,0x00040005,0x000003dc,0x61726170, + 0x0000006d,0x00040005,0x000003de,0x61726170,0x0000006d,0x00040005,0x000003e8,0x61726170, + 0x0000006d,0x00040005,0x000003e9,0x61726170,0x0000006d,0x00040005,0x000003ea,0x61726170, + 0x0000006d,0x00030005,0x000003f1,0x00000076,0x00040005,0x000003f8,0x61726170,0x0000006d, + 0x00040005,0x000003f9,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170,0x0000006d, + 0x00040005,0x0000040f,0x61726170,0x0000006d,0x00040005,0x00000410,0x61726170,0x0000006d, + 0x00040005,0x00000412,0x61726170,0x0000006d,0x00040005,0x00000414,0x61726170,0x0000006d, + 0x00040005,0x0000041b,0x61726170,0x0000006d,0x00040005,0x0000041c,0x61726170,0x0000006d, + 0x00040005,0x0000041d,0x61726170,0x0000006d,0x00030005,0x00000424,0x00000076,0x00040005, + 0x00000425,0x61726170,0x0000006d,0x00040005,0x00000427,0x61726170,0x0000006d,0x00040005, + 0x00000429,0x61726170,0x0000006d,0x00040005,0x00000433,0x61726170,0x0000006d,0x00040005, + 0x00000434,0x61726170,0x0000006d,0x00040005,0x00000436,0x61726170,0x0000006d,0x00040005, + 0x00000438,0x61726170,0x0000006d,0x00030005,0x0000043b,0x00786574,0x00030005,0x00000445, + 0x00786970,0x00030005,0x0000044f,0x00003076,0x00040005,0x00000452,0x61726170,0x0000006d, + 0x00040005,0x00000453,0x61726170,0x0000006d,0x00040005,0x00000457,0x61726170,0x0000006d, + 0x00040005,0x00000459,0x61726170,0x0000006d,0x00040005,0x0000045b,0x61726170,0x0000006d, + 0x00040005,0x0000045c,0x61726170,0x0000006d,0x00030005,0x00000471,0x00003176,0x00040005, + 0x00000474,0x61726170,0x0000006d,0x00040005,0x00000475,0x61726170,0x0000006d,0x00040005, + 0x00000478,0x61726170,0x0000006d,0x00040005,0x0000047a,0x61726170,0x0000006d,0x00040005, + 0x0000047c,0x61726170,0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00030005, + 0x00000492,0x00003276,0x00040005,0x00000495,0x61726170,0x0000006d,0x00040005,0x00000496, + 0x61726170,0x0000006d,0x00040005,0x00000499,0x61726170,0x0000006d,0x00040005,0x0000049b, + 0x61726170,0x0000006d,0x00040005,0x0000049d,0x61726170,0x0000006d,0x00040005,0x0000049e, + 0x61726170,0x0000006d,0x00030005,0x000004b3,0x00003376,0x00040005,0x000004b6,0x61726170, + 0x0000006d,0x00040005,0x000004b7,0x61726170,0x0000006d,0x00040005,0x000004ba,0x61726170, + 0x0000006d,0x00040005,0x000004bc,0x61726170,0x0000006d,0x00040005,0x000004be,0x61726170, + 0x0000006d,0x00040005,0x000004bf,0x61726170,0x0000006d,0x00030005,0x000004c8,0x00000076, + 0x00040005,0x000004c9,0x61726170,0x0000006d,0x00040005,0x000004cb,0x61726170,0x0000006d, + 0x00040005,0x000004cd,0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170,0x0000006d, + 0x00040005,0x000004d7,0x61726170,0x0000006d,0x00040005,0x000004d8,0x61726170,0x0000006d, + 0x00040005,0x000004da,0x61726170,0x0000006d,0x00040005,0x000004db,0x61726170,0x0000006d, + 0x00040005,0x000004de,0x61726170,0x0000006d,0x00040005,0x000004e0,0x61726170,0x0000006d, + 0x00040005,0x000004e2,0x61726170,0x0000006d,0x00040005,0x000004ec,0x61726170,0x0000006d, + 0x00040005,0x000004ee,0x61726170,0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d, + 0x00040005,0x000004f2,0x61726170,0x0000006d,0x00040005,0x000004f4,0x61726170,0x0000006d, + 0x00040005,0x000004f6,0x61726170,0x0000006d,0x00040005,0x00000503,0x61726170,0x0000006d, + 0x00040005,0x00000505,0x61726170,0x0000006d,0x00040005,0x00000507,0x61726170,0x0000006d, + 0x00040005,0x00000509,0x61726170,0x0000006d,0x00040005,0x0000050b,0x61726170,0x0000006d, + 0x00040005,0x0000050c,0x61726170,0x0000006d,0x00040005,0x00000519,0x61726170,0x0000006d, + 0x00040005,0x0000051b,0x61726170,0x0000006d,0x00040005,0x0000051d,0x61726170,0x0000006d, + 0x00040005,0x0000051f,0x61726170,0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d, + 0x00040005,0x00000522,0x61726170,0x0000006d,0x00040005,0x0000052f,0x61726170,0x0000006d, + 0x00040005,0x00000531,0x61726170,0x0000006d,0x00040005,0x00000533,0x61726170,0x0000006d, + 0x00040005,0x00000534,0x61726170,0x0000006d,0x00040005,0x00000537,0x5f627573,0x00007978, + 0x00040005,0x0000053a,0x61726170,0x0000006d,0x00030005,0x0000053c,0x00000078,0x00030005, + 0x00000545,0x00000079,0x00040005,0x0000054d,0x61726170,0x0000006d,0x00040005,0x0000054f, + 0x61726170,0x0000006d,0x00040005,0x00000551,0x61726170,0x0000006d,0x00040005,0x00000553, + 0x61726170,0x0000006d,0x00040005,0x00000555,0x61726170,0x0000006d,0x00040005,0x00000557, + 0x61726170,0x0000006d,0x00040005,0x0000055a,0x61726170,0x0000006d,0x00040005,0x0000055c, + 0x61726170,0x0000006d,0x00040005,0x0000055e,0x61726170,0x0000006d,0x00040005,0x00000560, + 0x61726170,0x0000006d,0x00040005,0x00000562,0x61726170,0x0000006d,0x00040005,0x00000563, + 0x61726170,0x0000006d,0x00040005,0x00000565,0x61726170,0x0000006d,0x00040005,0x0000056d, + 0x61726170,0x0000006d,0x00040005,0x0000056f,0x61726170,0x0000006d,0x00040005,0x00000571, + 0x61726170,0x0000006d,0x00040005,0x00000577,0x61726170,0x0000006d,0x00040005,0x0000057a, + 0x61726170,0x0000006d,0x00040005,0x0000057c,0x61726170,0x0000006d,0x00040005,0x0000057e, + 0x61726170,0x0000006d,0x00040005,0x00000580,0x61726170,0x0000006d,0x00040005,0x00000583, + 0x61726170,0x0000006d,0x00040005,0x00000585,0x61726170,0x0000006d,0x00040005,0x00000587, + 0x61726170,0x0000006d,0x00040005,0x00000588,0x61726170,0x0000006d,0x00040005,0x0000058a, + 0x61726170,0x0000006d,0x00040005,0x0000058b,0x61726170,0x0000006d,0x00040005,0x0000058d, + 0x61726170,0x0000006d,0x00040005,0x00000595,0x61726170,0x0000006d,0x00040005,0x00000596, + 0x61726170,0x0000006d,0x00040005,0x00000597,0x61726170,0x0000006d,0x00040005,0x00000598, + 0x61726170,0x0000006d,0x00040005,0x00000599,0x61726170,0x0000006d,0x00060005,0x0000059d, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x000005a2,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x000005a5,0x61726170,0x0000006d, + 0x00040005,0x000005a6,0x61726170,0x0000006d,0x00040005,0x000005ab,0x464f6263,0x0000745f, + 0x00090006,0x000005ab,0x00000000,0x706e4969,0x754c7475,0x6552616d,0x756c6f73,0x6e6f6974, + 0x00000000,0x000a0006,0x000005ab,0x00000001,0x74704f75,0x6c616369,0x776f6c46,0x61727950, + 0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x000005ab,0x00000002,0x74704f75,0x6c616369, + 0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43,0x00000074,0x00060006,0x000005ab, + 0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006,0x000005ab,0x00000004,0x6b636162, + 0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000005ab, + 0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00040005,0x000005ad,0x464f6263, + 0x00000000,0x00030047,0x000000ff,0x00000002,0x00050048,0x000000ff,0x00000000,0x00000023, + 0x00000000,0x00050048,0x000000ff,0x00000001,0x00000023,0x00000004,0x00050048,0x000000ff, + 0x00000002,0x00000023,0x00000008,0x00050048,0x000000ff,0x00000003,0x00000023,0x00000010, + 0x00050048,0x000000ff,0x00000004,0x00000023,0x00000014,0x00050048,0x000000ff,0x00000005, + 0x00000023,0x00000018,0x00050048,0x000000ff,0x00000006,0x00000023,0x0000001c,0x00040047, + 0x00000101,0x00000021,0x00000008,0x00040047,0x00000101,0x00000022,0x00000000,0x00040047, + 0x0000010a,0x00000021,0x00000000,0x00040047,0x0000010a,0x00000022,0x00000000,0x00040047, + 0x00000120,0x00000021,0x00000001,0x00040047,0x00000120,0x00000022,0x00000000,0x00040047, + 0x00000125,0x00000021,0x00000002,0x00040047,0x00000125,0x00000022,0x00000000,0x00040047, + 0x0000012a,0x00000021,0x00000003,0x00040047,0x0000012a,0x00000022,0x00000000,0x00040047, + 0x0000012f,0x00000021,0x00000004,0x00040047,0x0000012f,0x00000022,0x00000000,0x00040047, + 0x00000134,0x00000021,0x00000005,0x00040047,0x00000134,0x00000022,0x00000000,0x00040047, + 0x00000139,0x00000021,0x00000006,0x00040047,0x00000139,0x00000022,0x00000000,0x00040047, + 0x0000059d,0x0000000b,0x0000001a,0x00040047,0x000005a2,0x0000000b,0x0000001d,0x00030047, + 0x000005ab,0x00000002,0x00050048,0x000005ab,0x00000000,0x00000023,0x00000000,0x00050048, + 0x000005ab,0x00000001,0x00000023,0x00000008,0x00050048,0x000005ab,0x00000002,0x00000023, + 0x0000000c,0x00050048,0x000005ab,0x00000003,0x00000023,0x00000010,0x00050048,0x000005ab, + 0x00000004,0x00000023,0x00000014,0x00050048,0x000005ab,0x00000005,0x00000023,0x00000018, + 0x00040047,0x000005ad,0x00000021,0x00000007,0x00040047,0x000005ad,0x00000022,0x00000000, + 0x00040047,0x000005af,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00040017, + 0x00000013,0x00000006,0x00000002,0x00040021,0x00000014,0x00000013,0x00000007,0x00030021, + 0x00000018,0x00000006,0x00040015,0x0000001b,0x00000020,0x00000001,0x00040017,0x0000001c, + 0x0000001b,0x00000002,0x00040020,0x0000001d,0x00000007,0x0000001c,0x00040021,0x0000001e, + 0x00000006,0x0000001d,0x00030016,0x00000022,0x00000020,0x00040020,0x00000023,0x00000007, + 0x00000022,0x00060021,0x00000024,0x00000002,0x0000001d,0x00000007,0x00000023,0x00040017, + 0x0000002c,0x00000022,0x00000002,0x00040020,0x0000002d,0x00000007,0x0000002c,0x00040017, + 0x0000002e,0x00000022,0x00000004,0x00050021,0x0000002f,0x0000002e,0x0000002d,0x00000007, + 0x00050021,0x00000034,0x0000002e,0x0000001d,0x00000007,0x00040020,0x00000039,0x00000007, + 0x0000002e,0x00070021,0x0000003a,0x00000002,0x0000001d,0x00000039,0x00000007,0x00000007, + 0x00040021,0x00000041,0x00000002,0x00000007,0x00050021,0x0000004a,0x0000002e,0x00000007, + 0x00000007,0x00060021,0x0000004f,0x00000002,0x00000007,0x00000007,0x00000039,0x00070021, + 0x00000055,0x0000002e,0x00000039,0x00000039,0x00000039,0x00000039,0x00020014,0x0000005e, + 0x00060021,0x0000005f,0x0000005e,0x00000007,0x00000007,0x00000007,0x00040021,0x00000065, + 0x0000002e,0x00000039,0x00040020,0x00000069,0x00000007,0x00000013,0x00080021,0x0000006a, + 0x0000002e,0x00000069,0x00000069,0x00000069,0x00000069,0x00000007,0x00050021,0x00000072, + 0x0000002e,0x00000069,0x00000007,0x00090021,0x00000082,0x00000002,0x00000007,0x00000007, + 0x00000069,0x00000007,0x00000007,0x00000007,0x00070021,0x000000ab,0x00000002,0x00000069, + 0x00000007,0x00000007,0x00000007,0x00070021,0x000000b2,0x00000002,0x00000007,0x00000007, + 0x00000007,0x00000007,0x000a0021,0x000000b9,0x00000002,0x00000007,0x00000007,0x00000069, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00080021,0x000000c3,0x00000002,0x00000069, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00040020,0x000000cb,0x00000007,0x0000001b, + 0x00050021,0x000000cc,0x00000002,0x0000001d,0x000000cb,0x0004002b,0x0000001b,0x000000db, + 0x00000000,0x0004002b,0x00000006,0x000000e1,0x00000002,0x0004002b,0x00000006,0x000000e2, + 0x00000003,0x0004002b,0x00000006,0x000000e8,0x00000001,0x0009001e,0x000000ff,0x00000006, + 0x00000006,0x00000013,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000100, + 0x00000002,0x000000ff,0x0004003b,0x00000100,0x00000101,0x00000002,0x0004002b,0x0000001b, + 0x00000102,0x00000003,0x00040020,0x00000103,0x00000002,0x00000006,0x00090019,0x00000108, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000027,0x00040020, + 0x00000109,0x00000000,0x00000108,0x0004003b,0x00000109,0x0000010a,0x00000000,0x00040017, + 0x0000010d,0x00000006,0x00000004,0x0004002b,0x00000006,0x0000010f,0x00000000,0x00040020, + 0x00000113,0x00000007,0x0000010d,0x0004003b,0x00000109,0x00000120,0x00000000,0x0004003b, + 0x00000109,0x00000125,0x00000000,0x0004003b,0x00000109,0x0000012a,0x00000000,0x0004003b, + 0x00000109,0x0000012f,0x00000000,0x0004003b,0x00000109,0x00000134,0x00000000,0x0004003b, + 0x00000109,0x00000139,0x00000000,0x0004002b,0x00000022,0x00000146,0x00000000,0x0007002c, + 0x0000002e,0x0000014a,0x00000146,0x00000146,0x00000146,0x00000146,0x0004002b,0x00000006, + 0x00000158,0x00000010,0x0004001c,0x00000159,0x00000022,0x00000158,0x0004001c,0x0000015a, + 0x00000159,0x00000158,0x00040020,0x0000015b,0x00000004,0x0000015a,0x0004003b,0x0000015b, + 0x0000015c,0x00000004,0x00040020,0x0000015f,0x00000004,0x00000022,0x0004003b,0x0000015b, + 0x00000162,0x00000004,0x0004003b,0x0000015b,0x00000167,0x00000004,0x0004003b,0x0000015b, + 0x0000016c,0x00000004,0x0004002b,0x00000022,0x0000018f,0x3e800000,0x0004002b,0x00000006, + 0x00000193,0x00000d48,0x0004002b,0x00000006,0x00000194,0x00000108,0x0005002c,0x00000013, + 0x000001e3,0x0000010f,0x0000010f,0x0005002c,0x00000013,0x000001e6,0x0000010f,0x000000e8, + 0x0005002c,0x00000013,0x000001e9,0x000000e8,0x0000010f,0x0005002c,0x00000013,0x000001ec, + 0x000000e8,0x000000e8,0x0004002b,0x00000006,0x00000235,0x00000040,0x0004002b,0x00000006, + 0x00000243,0x00000020,0x0004002b,0x00000006,0x0000024d,0x00000004,0x0004001c,0x0000024e, + 0x0000002e,0x0000024d,0x00040020,0x0000024f,0x00000007,0x0000024e,0x0004002b,0x0000001b, + 0x00000279,0x00000001,0x0004002b,0x0000001b,0x000002a2,0x00000002,0x0004002b,0x00000006, + 0x0000031f,0x00000008,0x0004002b,0x00000006,0x00000456,0x00000006,0x0004002b,0x00000006, + 0x000004c3,0x00000007,0x0004002b,0x0000001b,0x00000540,0x00000006,0x0004002b,0x0000001b, + 0x00000549,0x00000007,0x00040017,0x0000059b,0x00000006,0x00000003,0x00040020,0x0000059c, + 0x00000001,0x0000059b,0x0004003b,0x0000059c,0x0000059d,0x00000001,0x00040020,0x000005a1, + 0x00000001,0x00000006,0x0004003b,0x000005a1,0x000005a2,0x00000001,0x0004002b,0x00000022, + 0x000005a8,0x387fda40,0x0004002b,0x00000022,0x000005a9,0x477fe000,0x0004002b,0x00000022, + 0x000005aa,0x37801002,0x0008001e,0x000005ab,0x0000001c,0x00000006,0x00000006,0x00000006, + 0x00000006,0x0000002c,0x00040020,0x000005ac,0x00000002,0x000005ab,0x0004003b,0x000005ac, + 0x000005ad,0x00000002,0x0004002b,0x00000006,0x000005ae,0x00000100,0x0006002c,0x0000059b, + 0x000005af,0x000005ae,0x000000e8,0x000000e8,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000001d,0x000005a5,0x00000007,0x0004003b, + 0x000000cb,0x000005a6,0x00000007,0x0004003d,0x0000059b,0x0000059e,0x0000059d,0x0007004f, + 0x00000013,0x0000059f,0x0000059e,0x0000059e,0x00000000,0x00000001,0x0004007c,0x0000001c, + 0x000005a0,0x0000059f,0x0004003d,0x00000006,0x000005a3,0x000005a2,0x0004007c,0x0000001b, + 0x000005a4,0x000005a3,0x0003003e,0x000005a5,0x000005a0,0x0003003e,0x000005a6,0x000005a4, + 0x00060039,0x00000002,0x000005a7,0x000000cf,0x000005a5,0x000005a6,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d, + 0x0004003d,0x00000006,0x000000d1,0x00000009,0x0004003d,0x00000006,0x000000d2,0x0000000a, + 0x0004007c,0x0000001b,0x000000d3,0x000000d2,0x0004003d,0x00000006,0x000000d4,0x0000000b, + 0x0004007c,0x0000001b,0x000000d5,0x000000d4,0x000600cb,0x00000006,0x000000d6,0x000000d1, + 0x000000d3,0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000006,0x00000011, + 0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000006,0x000000d9, + 0x0000000e,0x0004003d,0x00000006,0x000000da,0x0000000f,0x0004003d,0x00000006,0x000000dc, + 0x00000010,0x0004007c,0x0000001b,0x000000dd,0x000000dc,0x000700c9,0x00000006,0x000000de, + 0x000000d9,0x000000da,0x000000db,0x000000dd,0x000200fe,0x000000de,0x00010038,0x00050036, + 0x00000013,0x00000016,0x00000000,0x00000014,0x00030037,0x00000007,0x00000015,0x000200f8, + 0x00000017,0x0004003b,0x00000007,0x000000e3,0x00000007,0x0004003b,0x00000007,0x000000e5, + 0x00000007,0x0004003b,0x00000007,0x000000e6,0x00000007,0x0004003b,0x00000007,0x000000e9, + 0x00000007,0x0004003b,0x00000007,0x000000ea,0x00000007,0x0004003b,0x00000007,0x000000ec, + 0x00000007,0x0004003b,0x00000007,0x000000ee,0x00000007,0x0004003b,0x00000007,0x000000f0, + 0x00000007,0x0004003b,0x00000007,0x000000f1,0x00000007,0x0004003b,0x00000007,0x000000f3, + 0x00000007,0x0004003b,0x00000007,0x000000f5,0x00000007,0x0004003b,0x00000007,0x000000f6, + 0x00000007,0x0004003b,0x00000007,0x000000f8,0x00000007,0x0004003b,0x00000007,0x000000f9, + 0x00000007,0x0004003b,0x00000007,0x000000fa,0x00000007,0x0004003d,0x00000006,0x000000e4, + 0x00000015,0x0003003e,0x000000e3,0x000000e4,0x0003003e,0x000000e5,0x000000e1,0x0003003e, + 0x000000e6,0x000000e2,0x00070039,0x00000006,0x000000e7,0x0000000c,0x000000e3,0x000000e5, + 0x000000e6,0x0003003e,0x000000e9,0x000000e7,0x0004003d,0x00000006,0x000000eb,0x00000015, + 0x0003003e,0x000000ea,0x000000eb,0x0003003e,0x000000ec,0x000000e8,0x00070039,0x00000006, + 0x000000ed,0x00000011,0x000000e9,0x000000ea,0x000000ec,0x0004003d,0x00000006,0x000000ef, + 0x00000015,0x0003003e,0x000000ee,0x000000ef,0x0003003e,0x000000f0,0x000000e2,0x0003003e, + 0x000000f1,0x000000e2,0x00070039,0x00000006,0x000000f2,0x0000000c,0x000000ee,0x000000f0, + 0x000000f1,0x0004003d,0x00000006,0x000000f4,0x00000015,0x0003003e,0x000000f3,0x000000f4, + 0x0003003e,0x000000f5,0x000000e8,0x0003003e,0x000000f6,0x000000e1,0x00070039,0x00000006, + 0x000000f7,0x0000000c,0x000000f3,0x000000f5,0x000000f6,0x0003003e,0x000000f8,0x000000f2, + 0x0003003e,0x000000f9,0x000000f7,0x0003003e,0x000000fa,0x000000e1,0x00070039,0x00000006, + 0x000000fb,0x00000011,0x000000f8,0x000000f9,0x000000fa,0x00050050,0x00000013,0x000000fc, + 0x000000ed,0x000000fb,0x000200fe,0x000000fc,0x00010038,0x00050036,0x00000006,0x00000019, + 0x00000000,0x00000018,0x000200f8,0x0000001a,0x00050041,0x00000103,0x00000104,0x00000101, + 0x00000102,0x0004003d,0x00000006,0x00000105,0x00000104,0x000200fe,0x00000105,0x00010038, + 0x00050036,0x00000006,0x00000020,0x00000000,0x0000001e,0x00030037,0x0000001d,0x0000001f, + 0x000200f8,0x00000021,0x0004003d,0x00000108,0x0000010b,0x0000010a,0x0004003d,0x0000001c, + 0x0000010c,0x0000001f,0x00050062,0x0000010d,0x0000010e,0x0000010b,0x0000010c,0x00050051, + 0x00000006,0x00000110,0x0000010e,0x00000000,0x000200fe,0x00000110,0x00010038,0x00050036, + 0x00000002,0x00000028,0x00000000,0x00000024,0x00030037,0x0000001d,0x00000025,0x00030037, + 0x00000007,0x00000026,0x00030037,0x00000023,0x00000027,0x000200f8,0x00000029,0x0004003b, + 0x00000113,0x00000114,0x00000007,0x0004003d,0x00000022,0x00000115,0x00000027,0x0004006d, + 0x00000006,0x00000116,0x00000115,0x00070050,0x0000010d,0x00000117,0x00000116,0x0000010f, + 0x0000010f,0x0000010f,0x0003003e,0x00000114,0x00000117,0x0004003d,0x00000006,0x00000118, + 0x00000026,0x000300f7,0x0000011f,0x00000000,0x000f00fb,0x00000118,0x0000011f,0x00000000, + 0x00000119,0x00000001,0x0000011a,0x00000002,0x0000011b,0x00000003,0x0000011c,0x00000004, + 0x0000011d,0x00000005,0x0000011e,0x000200f8,0x00000119,0x0004003d,0x00000108,0x00000121, + 0x00000120,0x0004003d,0x0000001c,0x00000122,0x00000025,0x0004003d,0x0000010d,0x00000123, + 0x00000114,0x00040063,0x00000121,0x00000122,0x00000123,0x000200f9,0x0000011f,0x000200f8, + 0x0000011a,0x0004003d,0x00000108,0x00000126,0x00000125,0x0004003d,0x0000001c,0x00000127, + 0x00000025,0x0004003d,0x0000010d,0x00000128,0x00000114,0x00040063,0x00000126,0x00000127, + 0x00000128,0x000200f9,0x0000011f,0x000200f8,0x0000011b,0x0004003d,0x00000108,0x0000012b, + 0x0000012a,0x0004003d,0x0000001c,0x0000012c,0x00000025,0x0004003d,0x0000010d,0x0000012d, + 0x00000114,0x00040063,0x0000012b,0x0000012c,0x0000012d,0x000200f9,0x0000011f,0x000200f8, + 0x0000011c,0x0004003d,0x00000108,0x00000130,0x0000012f,0x0004003d,0x0000001c,0x00000131, + 0x00000025,0x0004003d,0x0000010d,0x00000132,0x00000114,0x00040063,0x00000130,0x00000131, + 0x00000132,0x000200f9,0x0000011f,0x000200f8,0x0000011d,0x0004003d,0x00000108,0x00000135, + 0x00000134,0x0004003d,0x0000001c,0x00000136,0x00000025,0x0004003d,0x0000010d,0x00000137, + 0x00000114,0x00040063,0x00000135,0x00000136,0x00000137,0x000200f9,0x0000011f,0x000200f8, + 0x0000011e,0x0004003d,0x00000108,0x0000013a,0x00000139,0x0004003d,0x0000001c,0x0000013b, + 0x00000025,0x0004003d,0x0000010d,0x0000013c,0x00000114,0x00040063,0x0000013a,0x0000013b, + 0x0000013c,0x000200f9,0x0000011f,0x000200f8,0x0000011f,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x0000002a,0x00000000,0x00000003,0x000200f8,0x0000002b,0x000100fd,0x00010038, + 0x00050036,0x0000002e,0x00000032,0x00000000,0x0000002f,0x00030037,0x0000002d,0x00000030, + 0x00030037,0x00000007,0x00000031,0x000200f8,0x00000033,0x0004003b,0x00000023,0x0000013f, + 0x00000007,0x0004003b,0x0000001d,0x00000142,0x00000007,0x0004003d,0x0000002c,0x00000140, + 0x00000030,0x0004006e,0x0000001c,0x00000141,0x00000140,0x0003003e,0x00000142,0x00000141, + 0x00050039,0x00000006,0x00000143,0x00000020,0x00000142,0x00040070,0x00000022,0x00000144, + 0x00000143,0x0003003e,0x0000013f,0x00000144,0x0004003d,0x00000022,0x00000145,0x0000013f, + 0x00070050,0x0000002e,0x00000147,0x00000145,0x00000146,0x00000146,0x00000146,0x000200fe, + 0x00000147,0x00010038,0x00050036,0x0000002e,0x00000037,0x00000000,0x00000034,0x00030037, + 0x0000001d,0x00000035,0x00030037,0x00000007,0x00000036,0x000200f8,0x00000038,0x000200fe, + 0x0000014a,0x00010038,0x00050036,0x00000002,0x0000003f,0x00000000,0x0000003a,0x00030037, + 0x0000001d,0x0000003b,0x00030037,0x00000039,0x0000003c,0x00030037,0x00000007,0x0000003d, + 0x00030037,0x00000007,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x0000001d,0x0000014d, + 0x00000007,0x0004003b,0x00000007,0x0000014f,0x00000007,0x0004003b,0x00000023,0x00000151, + 0x00000007,0x0004003d,0x0000001c,0x0000014e,0x0000003b,0x0003003e,0x0000014d,0x0000014e, + 0x0004003d,0x00000006,0x00000150,0x0000003d,0x0003003e,0x0000014f,0x00000150,0x00050041, + 0x00000023,0x00000152,0x0000003c,0x0000010f,0x0004003d,0x00000022,0x00000153,0x00000152, + 0x0003003e,0x00000151,0x00000153,0x00070039,0x00000002,0x00000154,0x00000028,0x0000014d, + 0x0000014f,0x00000151,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000043,0x00000000, + 0x00000041,0x00030037,0x00000007,0x00000042,0x000200f8,0x00000044,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x00000045,0x00000000,0x00000018,0x000200f8,0x00000046,0x000200fe, + 0x0000010f,0x00010038,0x00050036,0x00000002,0x00000048,0x00000000,0x00000041,0x00030037, + 0x00000007,0x00000047,0x000200f8,0x00000049,0x00040039,0x00000002,0x00000157,0x0000002a, + 0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000004d,0x00000000,0x0000004a,0x00030037, + 0x00000007,0x0000004b,0x00030037,0x00000007,0x0000004c,0x000200f8,0x0000004e,0x0004003d, + 0x00000006,0x0000015d,0x0000004b,0x0004003d,0x00000006,0x0000015e,0x0000004c,0x00060041, + 0x0000015f,0x00000160,0x0000015c,0x0000015d,0x0000015e,0x0004003d,0x00000022,0x00000161, + 0x00000160,0x0004003d,0x00000006,0x00000163,0x0000004b,0x0004003d,0x00000006,0x00000164, + 0x0000004c,0x00060041,0x0000015f,0x00000165,0x00000162,0x00000163,0x00000164,0x0004003d, + 0x00000022,0x00000166,0x00000165,0x0004003d,0x00000006,0x00000168,0x0000004b,0x0004003d, + 0x00000006,0x00000169,0x0000004c,0x00060041,0x0000015f,0x0000016a,0x00000167,0x00000168, + 0x00000169,0x0004003d,0x00000022,0x0000016b,0x0000016a,0x0004003d,0x00000006,0x0000016d, + 0x0000004b,0x0004003d,0x00000006,0x0000016e,0x0000004c,0x00060041,0x0000015f,0x0000016f, + 0x0000016c,0x0000016d,0x0000016e,0x0004003d,0x00000022,0x00000170,0x0000016f,0x00070050, + 0x0000002e,0x00000171,0x00000161,0x00000166,0x0000016b,0x00000170,0x000200fe,0x00000171, + 0x00010038,0x00050036,0x00000002,0x00000053,0x00000000,0x0000004f,0x00030037,0x00000007, + 0x00000050,0x00030037,0x00000007,0x00000051,0x00030037,0x00000039,0x00000052,0x000200f8, + 0x00000054,0x0004003d,0x00000006,0x00000174,0x00000050,0x0004003d,0x00000006,0x00000175, + 0x00000051,0x00050041,0x00000023,0x00000176,0x00000052,0x0000010f,0x0004003d,0x00000022, + 0x00000177,0x00000176,0x00060041,0x0000015f,0x00000178,0x0000015c,0x00000174,0x00000175, + 0x0003003e,0x00000178,0x00000177,0x0004003d,0x00000006,0x00000179,0x00000050,0x0004003d, + 0x00000006,0x0000017a,0x00000051,0x00050041,0x00000023,0x0000017b,0x00000052,0x000000e8, + 0x0004003d,0x00000022,0x0000017c,0x0000017b,0x00060041,0x0000015f,0x0000017d,0x00000162, + 0x00000179,0x0000017a,0x0003003e,0x0000017d,0x0000017c,0x0004003d,0x00000006,0x0000017e, + 0x00000050,0x0004003d,0x00000006,0x0000017f,0x00000051,0x00050041,0x00000023,0x00000180, + 0x00000052,0x000000e1,0x0004003d,0x00000022,0x00000181,0x00000180,0x00060041,0x0000015f, + 0x00000182,0x00000167,0x0000017e,0x0000017f,0x0003003e,0x00000182,0x00000181,0x0004003d, + 0x00000006,0x00000183,0x00000050,0x0004003d,0x00000006,0x00000184,0x00000051,0x00050041, + 0x00000023,0x00000185,0x00000052,0x000000e2,0x0004003d,0x00000022,0x00000186,0x00000185, + 0x00060041,0x0000015f,0x00000187,0x0000016c,0x00000183,0x00000184,0x0003003e,0x00000187, + 0x00000186,0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000005a,0x00000000,0x00000055, + 0x00030037,0x00000039,0x00000056,0x00030037,0x00000039,0x00000057,0x00030037,0x00000039, + 0x00000058,0x00030037,0x00000039,0x00000059,0x000200f8,0x0000005b,0x0004003d,0x0000002e, + 0x00000188,0x00000056,0x0004003d,0x0000002e,0x00000189,0x00000057,0x00050081,0x0000002e, + 0x0000018a,0x00000188,0x00000189,0x0004003d,0x0000002e,0x0000018b,0x00000058,0x00050081, + 0x0000002e,0x0000018c,0x0000018a,0x0000018b,0x0004003d,0x0000002e,0x0000018d,0x00000059, + 0x00050081,0x0000002e,0x0000018e,0x0000018c,0x0000018d,0x0005008e,0x0000002e,0x00000190, + 0x0000018e,0x0000018f,0x000200fe,0x00000190,0x00010038,0x00050036,0x00000002,0x0000005c, + 0x00000000,0x00000003,0x000200f8,0x0000005d,0x000300e1,0x000000e1,0x00000193,0x000400e0, + 0x000000e1,0x000000e1,0x00000194,0x000100fd,0x00010038,0x00050036,0x0000005e,0x00000063, + 0x00000000,0x0000005f,0x00030037,0x00000007,0x00000060,0x00030037,0x00000007,0x00000061, + 0x00030037,0x00000007,0x00000062,0x000200f8,0x00000064,0x0004003b,0x00000007,0x00000199, + 0x00000007,0x0004003d,0x00000006,0x00000195,0x00000061,0x000500aa,0x0000005e,0x00000196, + 0x00000195,0x0000010f,0x000300f7,0x00000198,0x00000000,0x000400fa,0x00000196,0x00000197, + 0x00000198,0x000200f8,0x00000197,0x0004003d,0x00000006,0x0000019a,0x00000062,0x0003003e, + 0x00000199,0x0000019a,0x00050039,0x00000002,0x0000019b,0x00000043,0x00000199,0x000200f9, + 0x00000198,0x000200f8,0x00000198,0x00040039,0x00000002,0x0000019c,0x0000005c,0x00040039, + 0x00000006,0x0000019d,0x00000045,0x0004003d,0x00000006,0x0000019e,0x00000060,0x00050082, + 0x00000006,0x0000019f,0x0000019e,0x000000e8,0x000500ab,0x0000005e,0x000001a0,0x0000019d, + 0x0000019f,0x000200fe,0x000001a0,0x00010038,0x00050036,0x0000002e,0x00000067,0x00000000, + 0x00000065,0x00030037,0x00000039,0x00000066,0x000200f8,0x00000068,0x0004003b,0x00000039, + 0x000001a3,0x00000007,0x0004003b,0x00000039,0x000001a5,0x00000007,0x0004003b,0x00000039, + 0x000001a8,0x00000007,0x0004003b,0x00000039,0x000001ab,0x00000007,0x0004003b,0x00000039, + 0x000001ae,0x00000007,0x0004003b,0x00000039,0x000001b0,0x00000007,0x0004003b,0x00000039, + 0x000001b2,0x00000007,0x0004003b,0x00000039,0x000001b4,0x00000007,0x0004003d,0x0000002e, + 0x000001a4,0x00000066,0x0003003e,0x000001a3,0x000001a4,0x0004003d,0x0000002e,0x000001a6, + 0x00000066,0x0006016e,0x0000002e,0x000001a7,0x000000e2,0x000001a6,0x0000010f,0x0003003e, + 0x000001a5,0x000001a7,0x0004003d,0x0000002e,0x000001a9,0x00000066,0x0006016e,0x0000002e, + 0x000001aa,0x000000e2,0x000001a9,0x000000e8,0x0003003e,0x000001a8,0x000001aa,0x0004003d, + 0x0000002e,0x000001ac,0x00000066,0x0006016e,0x0000002e,0x000001ad,0x000000e2,0x000001ac, + 0x000000e1,0x0003003e,0x000001ab,0x000001ad,0x0004003d,0x0000002e,0x000001af,0x000001a3, + 0x0003003e,0x000001ae,0x000001af,0x0004003d,0x0000002e,0x000001b1,0x000001a5,0x0003003e, + 0x000001b0,0x000001b1,0x0004003d,0x0000002e,0x000001b3,0x000001a8,0x0003003e,0x000001b2, + 0x000001b3,0x0004003d,0x0000002e,0x000001b5,0x000001ab,0x0003003e,0x000001b4,0x000001b5, + 0x00080039,0x0000002e,0x000001b6,0x0000005a,0x000001ae,0x000001b0,0x000001b2,0x000001b4, + 0x000200fe,0x000001b6,0x00010038,0x00050036,0x0000002e,0x00000070,0x00000000,0x0000006a, + 0x00030037,0x00000069,0x0000006b,0x00030037,0x00000069,0x0000006c,0x00030037,0x00000069, + 0x0000006d,0x00030037,0x00000069,0x0000006e,0x00030037,0x00000007,0x0000006f,0x000200f8, + 0x00000071,0x0004003b,0x00000039,0x000001bb,0x00000007,0x0004003b,0x0000001d,0x000001be, + 0x00000007,0x0004003b,0x00000007,0x000001bf,0x00000007,0x0004003b,0x00000039,0x000001c2, + 0x00000007,0x0004003b,0x0000001d,0x000001c5,0x00000007,0x0004003b,0x00000007,0x000001c6, + 0x00000007,0x0004003b,0x00000039,0x000001c9,0x00000007,0x0004003b,0x0000001d,0x000001cc, + 0x00000007,0x0004003b,0x00000007,0x000001cd,0x00000007,0x0004003b,0x00000039,0x000001d0, + 0x00000007,0x0004003b,0x0000001d,0x000001d3,0x00000007,0x0004003b,0x00000007,0x000001d4, + 0x00000007,0x0004003b,0x00000039,0x000001d7,0x00000007,0x0004003b,0x00000039,0x000001d9, + 0x00000007,0x0004003b,0x00000039,0x000001db,0x00000007,0x0004003b,0x00000039,0x000001dd, + 0x00000007,0x0004003d,0x00000013,0x000001bc,0x0000006b,0x0004007c,0x0000001c,0x000001bd, + 0x000001bc,0x0003003e,0x000001be,0x000001bd,0x0004003d,0x00000006,0x000001c0,0x0000006f, + 0x0003003e,0x000001bf,0x000001c0,0x00060039,0x0000002e,0x000001c1,0x00000037,0x000001be, + 0x000001bf,0x0003003e,0x000001bb,0x000001c1,0x0004003d,0x00000013,0x000001c3,0x0000006c, + 0x0004007c,0x0000001c,0x000001c4,0x000001c3,0x0003003e,0x000001c5,0x000001c4,0x0004003d, + 0x00000006,0x000001c7,0x0000006f,0x0003003e,0x000001c6,0x000001c7,0x00060039,0x0000002e, + 0x000001c8,0x00000037,0x000001c5,0x000001c6,0x0003003e,0x000001c2,0x000001c8,0x0004003d, + 0x00000013,0x000001ca,0x0000006d,0x0004007c,0x0000001c,0x000001cb,0x000001ca,0x0003003e, + 0x000001cc,0x000001cb,0x0004003d,0x00000006,0x000001ce,0x0000006f,0x0003003e,0x000001cd, + 0x000001ce,0x00060039,0x0000002e,0x000001cf,0x00000037,0x000001cc,0x000001cd,0x0003003e, + 0x000001c9,0x000001cf,0x0004003d,0x00000013,0x000001d1,0x0000006e,0x0004007c,0x0000001c, + 0x000001d2,0x000001d1,0x0003003e,0x000001d3,0x000001d2,0x0004003d,0x00000006,0x000001d5, + 0x0000006f,0x0003003e,0x000001d4,0x000001d5,0x00060039,0x0000002e,0x000001d6,0x00000037, + 0x000001d3,0x000001d4,0x0003003e,0x000001d0,0x000001d6,0x0004003d,0x0000002e,0x000001d8, + 0x000001bb,0x0003003e,0x000001d7,0x000001d8,0x0004003d,0x0000002e,0x000001da,0x000001c2, + 0x0003003e,0x000001d9,0x000001da,0x0004003d,0x0000002e,0x000001dc,0x000001c9,0x0003003e, + 0x000001db,0x000001dc,0x0004003d,0x0000002e,0x000001de,0x000001d0,0x0003003e,0x000001dd, + 0x000001de,0x00080039,0x0000002e,0x000001df,0x0000005a,0x000001d7,0x000001d9,0x000001db, + 0x000001dd,0x000200fe,0x000001df,0x00010038,0x00050036,0x0000002e,0x00000075,0x00000000, + 0x00000072,0x00030037,0x00000069,0x00000073,0x00030037,0x00000007,0x00000074,0x000200f8, + 0x00000076,0x0004003b,0x00000069,0x000001ee,0x00000007,0x0004003b,0x00000069,0x000001ef, + 0x00000007,0x0004003b,0x00000069,0x000001f0,0x00000007,0x0004003b,0x00000069,0x000001f1, + 0x00000007,0x0004003b,0x00000007,0x000001f2,0x00000007,0x0004003d,0x00000013,0x000001e2, + 0x00000073,0x00050080,0x00000013,0x000001e4,0x000001e2,0x000001e3,0x0004003d,0x00000013, + 0x000001e5,0x00000073,0x00050080,0x00000013,0x000001e7,0x000001e5,0x000001e6,0x0004003d, + 0x00000013,0x000001e8,0x00000073,0x00050080,0x00000013,0x000001ea,0x000001e8,0x000001e9, + 0x0004003d,0x00000013,0x000001eb,0x00000073,0x00050080,0x00000013,0x000001ed,0x000001eb, + 0x000001ec,0x0003003e,0x000001ee,0x000001e4,0x0003003e,0x000001ef,0x000001e7,0x0003003e, + 0x000001f0,0x000001ea,0x0003003e,0x000001f1,0x000001ed,0x0004003d,0x00000006,0x000001f3, + 0x00000074,0x0003003e,0x000001f2,0x000001f3,0x00090039,0x0000002e,0x000001f4,0x00000070, + 0x000001ee,0x000001ef,0x000001f0,0x000001f1,0x000001f2,0x000200fe,0x000001f4,0x00010038, + 0x00050036,0x0000002e,0x0000007c,0x00000000,0x0000006a,0x00030037,0x00000069,0x00000077, + 0x00030037,0x00000069,0x00000078,0x00030037,0x00000069,0x00000079,0x00030037,0x00000069, + 0x0000007a,0x00030037,0x00000007,0x0000007b,0x000200f8,0x0000007d,0x0004003b,0x00000039, + 0x000001f7,0x00000007,0x0004003b,0x0000002d,0x000001fb,0x00000007,0x0004003b,0x00000007, + 0x000001fc,0x00000007,0x0004003b,0x00000039,0x000001ff,0x00000007,0x0004003b,0x0000002d, + 0x00000203,0x00000007,0x0004003b,0x00000007,0x00000204,0x00000007,0x0004003b,0x00000039, + 0x00000207,0x00000007,0x0004003b,0x0000002d,0x0000020b,0x00000007,0x0004003b,0x00000007, + 0x0000020c,0x00000007,0x0004003b,0x00000039,0x0000020f,0x00000007,0x0004003b,0x0000002d, + 0x00000213,0x00000007,0x0004003b,0x00000007,0x00000214,0x00000007,0x0004003b,0x00000039, + 0x00000217,0x00000007,0x0004003b,0x00000039,0x00000219,0x00000007,0x0004003b,0x00000039, + 0x0000021b,0x00000007,0x0004003b,0x00000039,0x0000021d,0x00000007,0x0004003d,0x00000013, + 0x000001f8,0x00000077,0x0004007c,0x0000001c,0x000001f9,0x000001f8,0x0004006f,0x0000002c, + 0x000001fa,0x000001f9,0x0003003e,0x000001fb,0x000001fa,0x0004003d,0x00000006,0x000001fd, + 0x0000007b,0x0003003e,0x000001fc,0x000001fd,0x00060039,0x0000002e,0x000001fe,0x00000032, + 0x000001fb,0x000001fc,0x0003003e,0x000001f7,0x000001fe,0x0004003d,0x00000013,0x00000200, + 0x00000078,0x0004007c,0x0000001c,0x00000201,0x00000200,0x0004006f,0x0000002c,0x00000202, + 0x00000201,0x0003003e,0x00000203,0x00000202,0x0004003d,0x00000006,0x00000205,0x0000007b, + 0x0003003e,0x00000204,0x00000205,0x00060039,0x0000002e,0x00000206,0x00000032,0x00000203, + 0x00000204,0x0003003e,0x000001ff,0x00000206,0x0004003d,0x00000013,0x00000208,0x00000079, + 0x0004007c,0x0000001c,0x00000209,0x00000208,0x0004006f,0x0000002c,0x0000020a,0x00000209, + 0x0003003e,0x0000020b,0x0000020a,0x0004003d,0x00000006,0x0000020d,0x0000007b,0x0003003e, + 0x0000020c,0x0000020d,0x00060039,0x0000002e,0x0000020e,0x00000032,0x0000020b,0x0000020c, + 0x0003003e,0x00000207,0x0000020e,0x0004003d,0x00000013,0x00000210,0x0000007a,0x0004007c, + 0x0000001c,0x00000211,0x00000210,0x0004006f,0x0000002c,0x00000212,0x00000211,0x0003003e, + 0x00000213,0x00000212,0x0004003d,0x00000006,0x00000215,0x0000007b,0x0003003e,0x00000214, + 0x00000215,0x00060039,0x0000002e,0x00000216,0x00000032,0x00000213,0x00000214,0x0003003e, + 0x0000020f,0x00000216,0x0004003d,0x0000002e,0x00000218,0x000001f7,0x0003003e,0x00000217, + 0x00000218,0x0004003d,0x0000002e,0x0000021a,0x000001ff,0x0003003e,0x00000219,0x0000021a, + 0x0004003d,0x0000002e,0x0000021c,0x00000207,0x0003003e,0x0000021b,0x0000021c,0x0004003d, + 0x0000002e,0x0000021e,0x0000020f,0x0003003e,0x0000021d,0x0000021e,0x00080039,0x0000002e, + 0x0000021f,0x0000005a,0x00000217,0x00000219,0x0000021b,0x0000021d,0x000200fe,0x0000021f, + 0x00010038,0x00050036,0x0000002e,0x00000080,0x00000000,0x00000072,0x00030037,0x00000069, + 0x0000007e,0x00030037,0x00000007,0x0000007f,0x000200f8,0x00000081,0x0004003b,0x00000069, + 0x0000022a,0x00000007,0x0004003b,0x00000069,0x0000022b,0x00000007,0x0004003b,0x00000069, + 0x0000022c,0x00000007,0x0004003b,0x00000069,0x0000022d,0x00000007,0x0004003b,0x00000007, + 0x0000022e,0x00000007,0x0004003d,0x00000013,0x00000222,0x0000007e,0x00050080,0x00000013, + 0x00000223,0x00000222,0x000001e3,0x0004003d,0x00000013,0x00000224,0x0000007e,0x00050080, + 0x00000013,0x00000225,0x00000224,0x000001e6,0x0004003d,0x00000013,0x00000226,0x0000007e, + 0x00050080,0x00000013,0x00000227,0x00000226,0x000001e9,0x0004003d,0x00000013,0x00000228, + 0x0000007e,0x00050080,0x00000013,0x00000229,0x00000228,0x000001ec,0x0003003e,0x0000022a, + 0x00000223,0x0003003e,0x0000022b,0x00000225,0x0003003e,0x0000022c,0x00000227,0x0003003e, + 0x0000022d,0x00000229,0x0004003d,0x00000006,0x0000022f,0x0000007f,0x0003003e,0x0000022e, + 0x0000022f,0x00090039,0x0000002e,0x00000230,0x0000007c,0x0000022a,0x0000022b,0x0000022c, + 0x0000022d,0x0000022e,0x000200fe,0x00000230,0x00010038,0x00050036,0x00000002,0x00000089, + 0x00000000,0x00000082,0x00030037,0x00000007,0x00000083,0x00030037,0x00000007,0x00000084, + 0x00030037,0x00000069,0x00000085,0x00030037,0x00000007,0x00000086,0x00030037,0x00000007, + 0x00000087,0x00030037,0x00000007,0x00000088,0x000200f8,0x0000008a,0x0004003b,0x0000001d, + 0x00000233,0x00000007,0x0004003b,0x0000001d,0x00000241,0x00000007,0x0004003b,0x0000024f, + 0x00000250,0x00000007,0x0004003b,0x00000069,0x00000253,0x00000007,0x0004003b,0x00000007, + 0x00000254,0x00000007,0x0004003b,0x0000001d,0x00000258,0x00000007,0x0004003b,0x00000039, + 0x0000025a,0x00000007,0x0004003b,0x00000007,0x0000025d,0x00000007,0x0004003b,0x00000007, + 0x0000025e,0x00000007,0x0004003b,0x00000069,0x0000027c,0x00000007,0x0004003b,0x00000007, + 0x0000027d,0x00000007,0x0004003b,0x0000001d,0x00000281,0x00000007,0x0004003b,0x00000039, + 0x00000283,0x00000007,0x0004003b,0x00000007,0x00000286,0x00000007,0x0004003b,0x00000007, + 0x00000287,0x00000007,0x0004003b,0x00000069,0x000002a5,0x00000007,0x0004003b,0x00000007, + 0x000002a6,0x00000007,0x0004003b,0x0000001d,0x000002aa,0x00000007,0x0004003b,0x00000039, + 0x000002ac,0x00000007,0x0004003b,0x00000007,0x000002af,0x00000007,0x0004003b,0x00000007, + 0x000002b0,0x00000007,0x0004003b,0x00000069,0x000002cf,0x00000007,0x0004003b,0x00000007, + 0x000002d0,0x00000007,0x0004003b,0x0000001d,0x000002d4,0x00000007,0x0004003b,0x00000039, + 0x000002d6,0x00000007,0x0004003b,0x00000007,0x000002d9,0x00000007,0x0004003b,0x00000007, + 0x000002da,0x00000007,0x0004003b,0x00000039,0x000002e2,0x00000007,0x0004003b,0x00000039, + 0x000002e7,0x00000007,0x0004003b,0x00000039,0x000002ec,0x00000007,0x0004003b,0x00000039, + 0x000002f1,0x00000007,0x0004003b,0x0000001d,0x00000307,0x00000007,0x0004003b,0x00000039, + 0x00000308,0x00000007,0x0004003b,0x00000007,0x0000030b,0x00000007,0x0004003b,0x00000007, + 0x0000030c,0x00000007,0x0004003b,0x00000007,0x00000313,0x00000007,0x0004003b,0x00000007, + 0x00000314,0x00000007,0x0004003b,0x00000039,0x00000315,0x00000007,0x0004003b,0x0000001d, + 0x00000327,0x00000007,0x0004003b,0x00000039,0x00000328,0x00000007,0x0004003b,0x00000007, + 0x0000032b,0x00000007,0x0004003b,0x00000007,0x0000032c,0x00000007,0x0004003b,0x00000007, + 0x00000334,0x00000007,0x0004003b,0x00000007,0x00000335,0x00000007,0x0004003b,0x00000039, + 0x00000336,0x00000007,0x0004003b,0x0000001d,0x00000347,0x00000007,0x0004003b,0x00000039, + 0x00000348,0x00000007,0x0004003b,0x00000007,0x0000034b,0x00000007,0x0004003b,0x00000007, + 0x0000034c,0x00000007,0x0004003b,0x00000007,0x00000354,0x00000007,0x0004003b,0x00000007, + 0x00000355,0x00000007,0x0004003b,0x00000039,0x00000356,0x00000007,0x0004003b,0x0000001d, + 0x00000368,0x00000007,0x0004003b,0x00000039,0x00000369,0x00000007,0x0004003b,0x00000007, + 0x0000036c,0x00000007,0x0004003b,0x00000007,0x0000036d,0x00000007,0x0004003b,0x00000007, + 0x00000376,0x00000007,0x0004003b,0x00000007,0x00000377,0x00000007,0x0004003b,0x00000039, + 0x00000378,0x00000007,0x0004003d,0x00000013,0x00000234,0x00000085,0x00050050,0x00000013, + 0x00000236,0x00000235,0x00000235,0x00050084,0x00000013,0x00000237,0x00000234,0x00000236, + 0x0004007c,0x0000001c,0x00000238,0x00000237,0x0004003d,0x00000006,0x00000239,0x00000083, + 0x00050084,0x00000006,0x0000023a,0x00000239,0x000000e1,0x0004007c,0x0000001b,0x0000023b, + 0x0000023a,0x0004003d,0x00000006,0x0000023c,0x00000084,0x00050084,0x00000006,0x0000023d, + 0x0000023c,0x000000e1,0x0004007c,0x0000001b,0x0000023e,0x0000023d,0x00050050,0x0000001c, + 0x0000023f,0x0000023b,0x0000023e,0x00050080,0x0000001c,0x00000240,0x00000238,0x0000023f, + 0x0003003e,0x00000233,0x00000240,0x0004003d,0x00000013,0x00000242,0x00000085,0x00050050, + 0x00000013,0x00000244,0x00000243,0x00000243,0x00050084,0x00000013,0x00000245,0x00000242, + 0x00000244,0x0004007c,0x0000001c,0x00000246,0x00000245,0x0004003d,0x00000006,0x00000247, + 0x00000083,0x0004007c,0x0000001b,0x00000248,0x00000247,0x0004003d,0x00000006,0x00000249, + 0x00000084,0x0004007c,0x0000001b,0x0000024a,0x00000249,0x00050050,0x0000001c,0x0000024b, + 0x00000248,0x0000024a,0x00050080,0x0000001c,0x0000024c,0x00000246,0x0000024b,0x0003003e, + 0x00000241,0x0000024c,0x0004003d,0x0000001c,0x00000251,0x00000233,0x0004007c,0x00000013, + 0x00000252,0x00000251,0x0003003e,0x00000253,0x00000252,0x0004003d,0x00000006,0x00000255, + 0x00000088,0x0003003e,0x00000254,0x00000255,0x00060039,0x0000002e,0x00000256,0x00000080, + 0x00000253,0x00000254,0x00050041,0x00000039,0x00000257,0x00000250,0x000000db,0x0003003e, + 0x00000257,0x00000256,0x0004003d,0x0000001c,0x00000259,0x00000241,0x0003003e,0x00000258, + 0x00000259,0x00050041,0x00000039,0x0000025b,0x00000250,0x000000db,0x0004003d,0x0000002e, + 0x0000025c,0x0000025b,0x0003003e,0x0000025a,0x0000025c,0x0003003e,0x0000025d,0x0000010f, + 0x0004003d,0x00000006,0x0000025f,0x00000088,0x0003003e,0x0000025e,0x0000025f,0x00080039, + 0x00000002,0x00000260,0x0000003f,0x00000258,0x0000025a,0x0000025d,0x0000025e,0x0004003d, + 0x00000013,0x00000261,0x00000085,0x00050050,0x00000013,0x00000262,0x00000235,0x00000235, + 0x00050084,0x00000013,0x00000263,0x00000261,0x00000262,0x0004007c,0x0000001c,0x00000264, + 0x00000263,0x0004003d,0x00000006,0x00000265,0x00000083,0x00050084,0x00000006,0x00000266, + 0x00000265,0x000000e1,0x00050080,0x00000006,0x00000267,0x00000266,0x00000243,0x0004007c, + 0x0000001b,0x00000268,0x00000267,0x0004003d,0x00000006,0x00000269,0x00000084,0x00050084, + 0x00000006,0x0000026a,0x00000269,0x000000e1,0x0004007c,0x0000001b,0x0000026b,0x0000026a, + 0x00050050,0x0000001c,0x0000026c,0x00000268,0x0000026b,0x00050080,0x0000001c,0x0000026d, + 0x00000264,0x0000026c,0x0003003e,0x00000233,0x0000026d,0x0004003d,0x00000013,0x0000026e, + 0x00000085,0x00050050,0x00000013,0x0000026f,0x00000243,0x00000243,0x00050084,0x00000013, + 0x00000270,0x0000026e,0x0000026f,0x0004007c,0x0000001c,0x00000271,0x00000270,0x0004003d, + 0x00000006,0x00000272,0x00000083,0x00050080,0x00000006,0x00000273,0x00000272,0x00000158, + 0x0004007c,0x0000001b,0x00000274,0x00000273,0x0004003d,0x00000006,0x00000275,0x00000084, + 0x0004007c,0x0000001b,0x00000276,0x00000275,0x00050050,0x0000001c,0x00000277,0x00000274, + 0x00000276,0x00050080,0x0000001c,0x00000278,0x00000271,0x00000277,0x0003003e,0x00000241, + 0x00000278,0x0004003d,0x0000001c,0x0000027a,0x00000233,0x0004007c,0x00000013,0x0000027b, + 0x0000027a,0x0003003e,0x0000027c,0x0000027b,0x0004003d,0x00000006,0x0000027e,0x00000088, + 0x0003003e,0x0000027d,0x0000027e,0x00060039,0x0000002e,0x0000027f,0x00000080,0x0000027c, + 0x0000027d,0x00050041,0x00000039,0x00000280,0x00000250,0x00000279,0x0003003e,0x00000280, + 0x0000027f,0x0004003d,0x0000001c,0x00000282,0x00000241,0x0003003e,0x00000281,0x00000282, + 0x00050041,0x00000039,0x00000284,0x00000250,0x00000279,0x0004003d,0x0000002e,0x00000285, + 0x00000284,0x0003003e,0x00000283,0x00000285,0x0003003e,0x00000286,0x0000010f,0x0004003d, + 0x00000006,0x00000288,0x00000088,0x0003003e,0x00000287,0x00000288,0x00080039,0x00000002, + 0x00000289,0x0000003f,0x00000281,0x00000283,0x00000286,0x00000287,0x0004003d,0x00000013, + 0x0000028a,0x00000085,0x00050050,0x00000013,0x0000028b,0x00000235,0x00000235,0x00050084, + 0x00000013,0x0000028c,0x0000028a,0x0000028b,0x0004007c,0x0000001c,0x0000028d,0x0000028c, + 0x0004003d,0x00000006,0x0000028e,0x00000083,0x00050084,0x00000006,0x0000028f,0x0000028e, + 0x000000e1,0x0004007c,0x0000001b,0x00000290,0x0000028f,0x0004003d,0x00000006,0x00000291, + 0x00000084,0x00050084,0x00000006,0x00000292,0x00000291,0x000000e1,0x00050080,0x00000006, + 0x00000293,0x00000292,0x00000243,0x0004007c,0x0000001b,0x00000294,0x00000293,0x00050050, + 0x0000001c,0x00000295,0x00000290,0x00000294,0x00050080,0x0000001c,0x00000296,0x0000028d, + 0x00000295,0x0003003e,0x00000233,0x00000296,0x0004003d,0x00000013,0x00000297,0x00000085, + 0x00050050,0x00000013,0x00000298,0x00000243,0x00000243,0x00050084,0x00000013,0x00000299, + 0x00000297,0x00000298,0x0004007c,0x0000001c,0x0000029a,0x00000299,0x0004003d,0x00000006, + 0x0000029b,0x00000083,0x0004007c,0x0000001b,0x0000029c,0x0000029b,0x0004003d,0x00000006, + 0x0000029d,0x00000084,0x00050080,0x00000006,0x0000029e,0x0000029d,0x00000158,0x0004007c, + 0x0000001b,0x0000029f,0x0000029e,0x00050050,0x0000001c,0x000002a0,0x0000029c,0x0000029f, + 0x00050080,0x0000001c,0x000002a1,0x0000029a,0x000002a0,0x0003003e,0x00000241,0x000002a1, + 0x0004003d,0x0000001c,0x000002a3,0x00000233,0x0004007c,0x00000013,0x000002a4,0x000002a3, + 0x0003003e,0x000002a5,0x000002a4,0x0004003d,0x00000006,0x000002a7,0x00000088,0x0003003e, + 0x000002a6,0x000002a7,0x00060039,0x0000002e,0x000002a8,0x00000080,0x000002a5,0x000002a6, + 0x00050041,0x00000039,0x000002a9,0x00000250,0x000002a2,0x0003003e,0x000002a9,0x000002a8, + 0x0004003d,0x0000001c,0x000002ab,0x00000241,0x0003003e,0x000002aa,0x000002ab,0x00050041, + 0x00000039,0x000002ad,0x00000250,0x000002a2,0x0004003d,0x0000002e,0x000002ae,0x000002ad, + 0x0003003e,0x000002ac,0x000002ae,0x0003003e,0x000002af,0x0000010f,0x0004003d,0x00000006, + 0x000002b1,0x00000088,0x0003003e,0x000002b0,0x000002b1,0x00080039,0x00000002,0x000002b2, + 0x0000003f,0x000002aa,0x000002ac,0x000002af,0x000002b0,0x0004003d,0x00000013,0x000002b3, + 0x00000085,0x00050050,0x00000013,0x000002b4,0x00000235,0x00000235,0x00050084,0x00000013, + 0x000002b5,0x000002b3,0x000002b4,0x0004007c,0x0000001c,0x000002b6,0x000002b5,0x0004003d, + 0x00000006,0x000002b7,0x00000083,0x00050084,0x00000006,0x000002b8,0x000002b7,0x000000e1, + 0x00050080,0x00000006,0x000002b9,0x000002b8,0x00000243,0x0004007c,0x0000001b,0x000002ba, + 0x000002b9,0x0004003d,0x00000006,0x000002bb,0x00000084,0x00050084,0x00000006,0x000002bc, + 0x000002bb,0x000000e1,0x00050080,0x00000006,0x000002bd,0x000002bc,0x00000243,0x0004007c, + 0x0000001b,0x000002be,0x000002bd,0x00050050,0x0000001c,0x000002bf,0x000002ba,0x000002be, + 0x00050080,0x0000001c,0x000002c0,0x000002b6,0x000002bf,0x0003003e,0x00000233,0x000002c0, + 0x0004003d,0x00000013,0x000002c1,0x00000085,0x00050050,0x00000013,0x000002c2,0x00000243, + 0x00000243,0x00050084,0x00000013,0x000002c3,0x000002c1,0x000002c2,0x0004007c,0x0000001c, + 0x000002c4,0x000002c3,0x0004003d,0x00000006,0x000002c5,0x00000083,0x00050080,0x00000006, + 0x000002c6,0x000002c5,0x00000158,0x0004007c,0x0000001b,0x000002c7,0x000002c6,0x0004003d, + 0x00000006,0x000002c8,0x00000084,0x00050080,0x00000006,0x000002c9,0x000002c8,0x00000158, + 0x0004007c,0x0000001b,0x000002ca,0x000002c9,0x00050050,0x0000001c,0x000002cb,0x000002c7, + 0x000002ca,0x00050080,0x0000001c,0x000002cc,0x000002c4,0x000002cb,0x0003003e,0x00000241, + 0x000002cc,0x0004003d,0x0000001c,0x000002cd,0x00000233,0x0004007c,0x00000013,0x000002ce, + 0x000002cd,0x0003003e,0x000002cf,0x000002ce,0x0004003d,0x00000006,0x000002d1,0x00000088, + 0x0003003e,0x000002d0,0x000002d1,0x00060039,0x0000002e,0x000002d2,0x00000080,0x000002cf, + 0x000002d0,0x00050041,0x00000039,0x000002d3,0x00000250,0x00000102,0x0003003e,0x000002d3, + 0x000002d2,0x0004003d,0x0000001c,0x000002d5,0x00000241,0x0003003e,0x000002d4,0x000002d5, + 0x00050041,0x00000039,0x000002d7,0x00000250,0x00000102,0x0004003d,0x0000002e,0x000002d8, + 0x000002d7,0x0003003e,0x000002d6,0x000002d8,0x0003003e,0x000002d9,0x0000010f,0x0004003d, + 0x00000006,0x000002db,0x00000088,0x0003003e,0x000002da,0x000002db,0x00080039,0x00000002, + 0x000002dc,0x0000003f,0x000002d4,0x000002d6,0x000002d9,0x000002da,0x0004003d,0x00000006, + 0x000002dd,0x00000087,0x000500b2,0x0000005e,0x000002de,0x000002dd,0x000000e8,0x000300f7, + 0x000002e0,0x00000000,0x000400fa,0x000002de,0x000002df,0x000002e0,0x000200f8,0x000002df, + 0x000100fd,0x000200f8,0x000002e0,0x00050041,0x00000039,0x000002e3,0x00000250,0x000000db, + 0x0004003d,0x0000002e,0x000002e4,0x000002e3,0x0003003e,0x000002e2,0x000002e4,0x00050039, + 0x0000002e,0x000002e5,0x00000067,0x000002e2,0x00050041,0x00000039,0x000002e6,0x00000250, + 0x000000db,0x0003003e,0x000002e6,0x000002e5,0x00050041,0x00000039,0x000002e8,0x00000250, + 0x00000279,0x0004003d,0x0000002e,0x000002e9,0x000002e8,0x0003003e,0x000002e7,0x000002e9, + 0x00050039,0x0000002e,0x000002ea,0x00000067,0x000002e7,0x00050041,0x00000039,0x000002eb, + 0x00000250,0x00000279,0x0003003e,0x000002eb,0x000002ea,0x00050041,0x00000039,0x000002ed, + 0x00000250,0x000002a2,0x0004003d,0x0000002e,0x000002ee,0x000002ed,0x0003003e,0x000002ec, + 0x000002ee,0x00050039,0x0000002e,0x000002ef,0x00000067,0x000002ec,0x00050041,0x00000039, + 0x000002f0,0x00000250,0x000002a2,0x0003003e,0x000002f0,0x000002ef,0x00050041,0x00000039, + 0x000002f2,0x00000250,0x00000102,0x0004003d,0x0000002e,0x000002f3,0x000002f2,0x0003003e, + 0x000002f1,0x000002f3,0x00050039,0x0000002e,0x000002f4,0x00000067,0x000002f1,0x00050041, + 0x00000039,0x000002f5,0x00000250,0x00000102,0x0003003e,0x000002f5,0x000002f4,0x0004003d, + 0x00000006,0x000002f6,0x00000086,0x00050089,0x00000006,0x000002f7,0x000002f6,0x0000024d, + 0x000500aa,0x0000005e,0x000002f8,0x000002f7,0x0000010f,0x000300f7,0x000002fa,0x00000000, + 0x000400fa,0x000002f8,0x000002f9,0x000002fa,0x000200f8,0x000002f9,0x0004003d,0x00000013, + 0x000002fb,0x00000085,0x00050050,0x00000013,0x000002fc,0x00000158,0x00000158,0x00050084, + 0x00000013,0x000002fd,0x000002fb,0x000002fc,0x0004007c,0x0000001c,0x000002fe,0x000002fd, + 0x0004003d,0x00000006,0x000002ff,0x00000083,0x00050086,0x00000006,0x00000300,0x000002ff, + 0x000000e1,0x0004007c,0x0000001b,0x00000301,0x00000300,0x0004003d,0x00000006,0x00000302, + 0x00000084,0x00050086,0x00000006,0x00000303,0x00000302,0x000000e1,0x0004007c,0x0000001b, + 0x00000304,0x00000303,0x00050050,0x0000001c,0x00000305,0x00000301,0x00000304,0x00050080, + 0x0000001c,0x00000306,0x000002fe,0x00000305,0x0003003e,0x00000307,0x00000306,0x00050041, + 0x00000039,0x00000309,0x00000250,0x000000db,0x0004003d,0x0000002e,0x0000030a,0x00000309, + 0x0003003e,0x00000308,0x0000030a,0x0003003e,0x0000030b,0x000000e8,0x0004003d,0x00000006, + 0x0000030d,0x00000088,0x0003003e,0x0000030c,0x0000030d,0x00080039,0x00000002,0x0000030e, + 0x0000003f,0x00000307,0x00000308,0x0000030b,0x0000030c,0x0004003d,0x00000006,0x0000030f, + 0x00000083,0x00050086,0x00000006,0x00000310,0x0000030f,0x000000e1,0x0004003d,0x00000006, + 0x00000311,0x00000084,0x00050086,0x00000006,0x00000312,0x00000311,0x000000e1,0x0003003e, + 0x00000313,0x00000310,0x0003003e,0x00000314,0x00000312,0x00050041,0x00000039,0x00000316, + 0x00000250,0x000000db,0x0004003d,0x0000002e,0x00000317,0x00000316,0x0003003e,0x00000315, + 0x00000317,0x00070039,0x00000002,0x00000318,0x00000053,0x00000313,0x00000314,0x00000315, + 0x0004003d,0x00000013,0x00000319,0x00000085,0x00050050,0x00000013,0x0000031a,0x00000158, + 0x00000158,0x00050084,0x00000013,0x0000031b,0x00000319,0x0000031a,0x0004007c,0x0000001c, + 0x0000031c,0x0000031b,0x0004003d,0x00000006,0x0000031d,0x00000083,0x00050086,0x00000006, + 0x0000031e,0x0000031d,0x000000e1,0x00050080,0x00000006,0x00000320,0x0000031e,0x0000031f, + 0x0004007c,0x0000001b,0x00000321,0x00000320,0x0004003d,0x00000006,0x00000322,0x00000084, + 0x00050086,0x00000006,0x00000323,0x00000322,0x000000e1,0x0004007c,0x0000001b,0x00000324, + 0x00000323,0x00050050,0x0000001c,0x00000325,0x00000321,0x00000324,0x00050080,0x0000001c, + 0x00000326,0x0000031c,0x00000325,0x0003003e,0x00000327,0x00000326,0x00050041,0x00000039, + 0x00000329,0x00000250,0x00000279,0x0004003d,0x0000002e,0x0000032a,0x00000329,0x0003003e, + 0x00000328,0x0000032a,0x0003003e,0x0000032b,0x000000e8,0x0004003d,0x00000006,0x0000032d, + 0x00000088,0x0003003e,0x0000032c,0x0000032d,0x00080039,0x00000002,0x0000032e,0x0000003f, + 0x00000327,0x00000328,0x0000032b,0x0000032c,0x0004003d,0x00000006,0x0000032f,0x00000083, + 0x00050086,0x00000006,0x00000330,0x0000032f,0x000000e1,0x00050080,0x00000006,0x00000331, + 0x00000330,0x0000031f,0x0004003d,0x00000006,0x00000332,0x00000084,0x00050086,0x00000006, + 0x00000333,0x00000332,0x000000e1,0x0003003e,0x00000334,0x00000331,0x0003003e,0x00000335, + 0x00000333,0x00050041,0x00000039,0x00000337,0x00000250,0x00000279,0x0004003d,0x0000002e, + 0x00000338,0x00000337,0x0003003e,0x00000336,0x00000338,0x00070039,0x00000002,0x00000339, + 0x00000053,0x00000334,0x00000335,0x00000336,0x0004003d,0x00000013,0x0000033a,0x00000085, + 0x00050050,0x00000013,0x0000033b,0x00000158,0x00000158,0x00050084,0x00000013,0x0000033c, + 0x0000033a,0x0000033b,0x0004007c,0x0000001c,0x0000033d,0x0000033c,0x0004003d,0x00000006, + 0x0000033e,0x00000083,0x00050086,0x00000006,0x0000033f,0x0000033e,0x000000e1,0x0004007c, + 0x0000001b,0x00000340,0x0000033f,0x0004003d,0x00000006,0x00000341,0x00000084,0x00050086, + 0x00000006,0x00000342,0x00000341,0x000000e1,0x00050080,0x00000006,0x00000343,0x00000342, + 0x0000031f,0x0004007c,0x0000001b,0x00000344,0x00000343,0x00050050,0x0000001c,0x00000345, + 0x00000340,0x00000344,0x00050080,0x0000001c,0x00000346,0x0000033d,0x00000345,0x0003003e, + 0x00000347,0x00000346,0x00050041,0x00000039,0x00000349,0x00000250,0x000002a2,0x0004003d, + 0x0000002e,0x0000034a,0x00000349,0x0003003e,0x00000348,0x0000034a,0x0003003e,0x0000034b, + 0x000000e8,0x0004003d,0x00000006,0x0000034d,0x00000088,0x0003003e,0x0000034c,0x0000034d, + 0x00080039,0x00000002,0x0000034e,0x0000003f,0x00000347,0x00000348,0x0000034b,0x0000034c, + 0x0004003d,0x00000006,0x0000034f,0x00000083,0x00050086,0x00000006,0x00000350,0x0000034f, + 0x000000e1,0x0004003d,0x00000006,0x00000351,0x00000084,0x00050086,0x00000006,0x00000352, + 0x00000351,0x000000e1,0x00050080,0x00000006,0x00000353,0x00000352,0x0000031f,0x0003003e, + 0x00000354,0x00000350,0x0003003e,0x00000355,0x00000353,0x00050041,0x00000039,0x00000357, + 0x00000250,0x000002a2,0x0004003d,0x0000002e,0x00000358,0x00000357,0x0003003e,0x00000356, + 0x00000358,0x00070039,0x00000002,0x00000359,0x00000053,0x00000354,0x00000355,0x00000356, + 0x0004003d,0x00000013,0x0000035a,0x00000085,0x00050050,0x00000013,0x0000035b,0x00000158, + 0x00000158,0x00050084,0x00000013,0x0000035c,0x0000035a,0x0000035b,0x0004007c,0x0000001c, + 0x0000035d,0x0000035c,0x0004003d,0x00000006,0x0000035e,0x00000083,0x00050086,0x00000006, + 0x0000035f,0x0000035e,0x000000e1,0x00050080,0x00000006,0x00000360,0x0000035f,0x0000031f, + 0x0004007c,0x0000001b,0x00000361,0x00000360,0x0004003d,0x00000006,0x00000362,0x00000084, + 0x00050086,0x00000006,0x00000363,0x00000362,0x000000e1,0x00050080,0x00000006,0x00000364, + 0x00000363,0x0000031f,0x0004007c,0x0000001b,0x00000365,0x00000364,0x00050050,0x0000001c, + 0x00000366,0x00000361,0x00000365,0x00050080,0x0000001c,0x00000367,0x0000035d,0x00000366, + 0x0003003e,0x00000368,0x00000367,0x00050041,0x00000039,0x0000036a,0x00000250,0x00000102, + 0x0004003d,0x0000002e,0x0000036b,0x0000036a,0x0003003e,0x00000369,0x0000036b,0x0003003e, + 0x0000036c,0x000000e8,0x0004003d,0x00000006,0x0000036e,0x00000088,0x0003003e,0x0000036d, + 0x0000036e,0x00080039,0x00000002,0x0000036f,0x0000003f,0x00000368,0x00000369,0x0000036c, + 0x0000036d,0x0004003d,0x00000006,0x00000370,0x00000083,0x00050086,0x00000006,0x00000371, + 0x00000370,0x000000e1,0x00050080,0x00000006,0x00000372,0x00000371,0x0000031f,0x0004003d, + 0x00000006,0x00000373,0x00000084,0x00050086,0x00000006,0x00000374,0x00000373,0x000000e1, + 0x00050080,0x00000006,0x00000375,0x00000374,0x0000031f,0x0003003e,0x00000376,0x00000372, + 0x0003003e,0x00000377,0x00000375,0x00050041,0x00000039,0x00000379,0x00000250,0x00000102, + 0x0004003d,0x0000002e,0x0000037a,0x00000379,0x0003003e,0x00000378,0x0000037a,0x00070039, + 0x00000002,0x0000037b,0x00000053,0x00000376,0x00000377,0x00000378,0x000200f9,0x000002fa, + 0x000200f8,0x000002fa,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000091,0x00000000, + 0x00000082,0x00030037,0x00000007,0x0000008b,0x00030037,0x00000007,0x0000008c,0x00030037, + 0x00000069,0x0000008d,0x00030037,0x00000007,0x0000008e,0x00030037,0x00000007,0x0000008f, + 0x00030037,0x00000007,0x00000090,0x000200f8,0x00000092,0x0004003b,0x00000007,0x0000037c, + 0x00000007,0x0004003b,0x00000007,0x0000037e,0x00000007,0x0004003b,0x00000069,0x00000380, + 0x00000007,0x0004003b,0x00000007,0x00000382,0x00000007,0x0004003b,0x00000007,0x00000384, + 0x00000007,0x0004003b,0x00000007,0x00000386,0x00000007,0x0004003d,0x00000006,0x0000037d, + 0x0000008b,0x0003003e,0x0000037c,0x0000037d,0x0004003d,0x00000006,0x0000037f,0x0000008c, + 0x0003003e,0x0000037e,0x0000037f,0x0004003d,0x00000013,0x00000381,0x0000008d,0x0003003e, + 0x00000380,0x00000381,0x0004003d,0x00000006,0x00000383,0x0000008e,0x0003003e,0x00000382, + 0x00000383,0x0004003d,0x00000006,0x00000385,0x0000008f,0x0003003e,0x00000384,0x00000385, + 0x0004003d,0x00000006,0x00000387,0x00000090,0x0003003e,0x00000386,0x00000387,0x000a0039, + 0x00000002,0x00000388,0x00000089,0x0000037c,0x0000037e,0x00000380,0x00000382,0x00000384, + 0x00000386,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000099,0x00000000,0x00000082, + 0x00030037,0x00000007,0x00000093,0x00030037,0x00000007,0x00000094,0x00030037,0x00000069, + 0x00000095,0x00030037,0x00000007,0x00000096,0x00030037,0x00000007,0x00000097,0x00030037, + 0x00000007,0x00000098,0x000200f8,0x0000009a,0x0004003b,0x00000039,0x00000389,0x00000007, + 0x0004003b,0x00000007,0x0000038a,0x00000007,0x0004003b,0x00000007,0x0000038c,0x00000007, + 0x0004003b,0x00000039,0x0000038f,0x00000007,0x0004003b,0x0000001d,0x000003a3,0x00000007, + 0x0004003b,0x00000039,0x000003a4,0x00000007,0x0004003b,0x00000007,0x000003a6,0x00000007, + 0x0004003b,0x00000007,0x000003a8,0x00000007,0x0004003b,0x00000007,0x000003b0,0x00000007, + 0x0004003b,0x00000007,0x000003b1,0x00000007,0x0004003b,0x00000039,0x000003b3,0x00000007, + 0x0004003d,0x00000006,0x0000038b,0x00000093,0x0003003e,0x0000038a,0x0000038b,0x0004003d, + 0x00000006,0x0000038d,0x00000094,0x0003003e,0x0000038c,0x0000038d,0x00060039,0x0000002e, + 0x0000038e,0x0000004d,0x0000038a,0x0000038c,0x0003003e,0x00000389,0x0000038e,0x0004003d, + 0x0000002e,0x00000390,0x00000389,0x0003003e,0x0000038f,0x00000390,0x00050039,0x0000002e, + 0x00000391,0x00000067,0x0000038f,0x0003003e,0x00000389,0x00000391,0x0004003d,0x00000006, + 0x00000392,0x00000096,0x00050089,0x00000006,0x00000393,0x00000392,0x0000024d,0x000500aa, + 0x0000005e,0x00000394,0x00000393,0x0000010f,0x000300f7,0x00000396,0x00000000,0x000400fa, + 0x00000394,0x00000395,0x00000396,0x000200f8,0x00000395,0x0004003d,0x00000013,0x00000397, + 0x00000095,0x00050050,0x00000013,0x00000398,0x0000031f,0x0000031f,0x00050084,0x00000013, + 0x00000399,0x00000397,0x00000398,0x0004007c,0x0000001c,0x0000039a,0x00000399,0x0004003d, + 0x00000006,0x0000039b,0x00000093,0x00050086,0x00000006,0x0000039c,0x0000039b,0x000000e1, + 0x0004007c,0x0000001b,0x0000039d,0x0000039c,0x0004003d,0x00000006,0x0000039e,0x00000094, + 0x00050086,0x00000006,0x0000039f,0x0000039e,0x000000e1,0x0004007c,0x0000001b,0x000003a0, + 0x0000039f,0x00050050,0x0000001c,0x000003a1,0x0000039d,0x000003a0,0x00050080,0x0000001c, + 0x000003a2,0x0000039a,0x000003a1,0x0003003e,0x000003a3,0x000003a2,0x0004003d,0x0000002e, + 0x000003a5,0x00000389,0x0003003e,0x000003a4,0x000003a5,0x0004003d,0x00000006,0x000003a7, + 0x00000097,0x0003003e,0x000003a6,0x000003a7,0x0004003d,0x00000006,0x000003a9,0x00000098, + 0x0003003e,0x000003a8,0x000003a9,0x00080039,0x00000002,0x000003aa,0x0000003f,0x000003a3, + 0x000003a4,0x000003a6,0x000003a8,0x0004003d,0x00000006,0x000003ab,0x00000093,0x0004003d, + 0x00000006,0x000003ac,0x00000094,0x00050086,0x00000006,0x000003ad,0x000003ac,0x000000e1, + 0x00050089,0x00000006,0x000003ae,0x000003ad,0x000000e1,0x00050080,0x00000006,0x000003af, + 0x000003ab,0x000003ae,0x0003003e,0x000003b0,0x000003af,0x0004003d,0x00000006,0x000003b2, + 0x00000094,0x0003003e,0x000003b1,0x000003b2,0x0004003d,0x0000002e,0x000003b4,0x00000389, + 0x0003003e,0x000003b3,0x000003b4,0x00070039,0x00000002,0x000003b5,0x00000053,0x000003b0, + 0x000003b1,0x000003b3,0x000200f9,0x00000396,0x000200f8,0x00000396,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000a1,0x00000000,0x00000082,0x00030037,0x00000007,0x0000009b, + 0x00030037,0x00000007,0x0000009c,0x00030037,0x00000069,0x0000009d,0x00030037,0x00000007, + 0x0000009e,0x00030037,0x00000007,0x0000009f,0x00030037,0x00000007,0x000000a0,0x000200f8, + 0x000000a2,0x0004003b,0x00000039,0x000003ba,0x00000007,0x0004003b,0x00000007,0x000003c2, + 0x00000007,0x0004003b,0x00000007,0x000003c3,0x00000007,0x0004003b,0x00000039,0x000003c5, + 0x00000007,0x0004003b,0x0000001d,0x000003d9,0x00000007,0x0004003b,0x00000039,0x000003da, + 0x00000007,0x0004003b,0x00000007,0x000003dc,0x00000007,0x0004003b,0x00000007,0x000003de, + 0x00000007,0x0004003b,0x00000007,0x000003e8,0x00000007,0x0004003b,0x00000007,0x000003e9, + 0x00000007,0x0004003b,0x00000039,0x000003ea,0x00000007,0x0004003d,0x00000006,0x000003b6, + 0x0000009e,0x000500b0,0x0000005e,0x000003b7,0x000003b6,0x00000235,0x000300f7,0x000003b9, + 0x00000000,0x000400fa,0x000003b7,0x000003b8,0x000003b9,0x000200f8,0x000003b8,0x0004003d, + 0x00000006,0x000003bb,0x0000009b,0x00050084,0x00000006,0x000003bc,0x000003bb,0x000000e1, + 0x0004003d,0x00000006,0x000003bd,0x0000009c,0x00050089,0x00000006,0x000003be,0x000003bd, + 0x000000e1,0x00050080,0x00000006,0x000003bf,0x000003bc,0x000003be,0x0004003d,0x00000006, + 0x000003c0,0x0000009c,0x00050084,0x00000006,0x000003c1,0x000003c0,0x000000e1,0x0003003e, + 0x000003c2,0x000003bf,0x0003003e,0x000003c3,0x000003c1,0x00060039,0x0000002e,0x000003c4, + 0x0000004d,0x000003c2,0x000003c3,0x0003003e,0x000003ba,0x000003c4,0x0004003d,0x0000002e, + 0x000003c6,0x000003ba,0x0003003e,0x000003c5,0x000003c6,0x00050039,0x0000002e,0x000003c7, + 0x00000067,0x000003c5,0x0003003e,0x000003ba,0x000003c7,0x0004003d,0x00000006,0x000003c8, + 0x0000009e,0x00050089,0x00000006,0x000003c9,0x000003c8,0x0000024d,0x000500aa,0x0000005e, + 0x000003ca,0x000003c9,0x0000010f,0x000300f7,0x000003cc,0x00000000,0x000400fa,0x000003ca, + 0x000003cb,0x000003cc,0x000200f8,0x000003cb,0x0004003d,0x00000013,0x000003cd,0x0000009d, + 0x00050050,0x00000013,0x000003ce,0x0000024d,0x0000024d,0x00050084,0x00000013,0x000003cf, + 0x000003cd,0x000003ce,0x0004007c,0x0000001c,0x000003d0,0x000003cf,0x0004003d,0x00000006, + 0x000003d1,0x0000009b,0x00050086,0x00000006,0x000003d2,0x000003d1,0x000000e1,0x0004007c, + 0x0000001b,0x000003d3,0x000003d2,0x0004003d,0x00000006,0x000003d4,0x0000009c,0x00050086, + 0x00000006,0x000003d5,0x000003d4,0x000000e1,0x0004007c,0x0000001b,0x000003d6,0x000003d5, + 0x00050050,0x0000001c,0x000003d7,0x000003d3,0x000003d6,0x00050080,0x0000001c,0x000003d8, + 0x000003d0,0x000003d7,0x0003003e,0x000003d9,0x000003d8,0x0004003d,0x0000002e,0x000003db, + 0x000003ba,0x0003003e,0x000003da,0x000003db,0x0004003d,0x00000006,0x000003dd,0x0000009f, + 0x0003003e,0x000003dc,0x000003dd,0x0004003d,0x00000006,0x000003df,0x000000a0,0x0003003e, + 0x000003de,0x000003df,0x00080039,0x00000002,0x000003e0,0x0000003f,0x000003d9,0x000003da, + 0x000003dc,0x000003de,0x0004003d,0x00000006,0x000003e1,0x0000009b,0x00050084,0x00000006, + 0x000003e2,0x000003e1,0x000000e1,0x0004003d,0x00000006,0x000003e3,0x0000009c,0x00050086, + 0x00000006,0x000003e4,0x000003e3,0x000000e1,0x00050080,0x00000006,0x000003e5,0x000003e2, + 0x000003e4,0x0004003d,0x00000006,0x000003e6,0x0000009c,0x00050084,0x00000006,0x000003e7, + 0x000003e6,0x000000e1,0x0003003e,0x000003e8,0x000003e5,0x0003003e,0x000003e9,0x000003e7, + 0x0004003d,0x0000002e,0x000003eb,0x000003ba,0x0003003e,0x000003ea,0x000003eb,0x00070039, + 0x00000002,0x000003ec,0x00000053,0x000003e8,0x000003e9,0x000003ea,0x000200f9,0x000003cc, + 0x000200f8,0x000003cc,0x000200f9,0x000003b9,0x000200f8,0x000003b9,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000a9,0x00000000,0x00000082,0x00030037,0x00000007,0x000000a3, + 0x00030037,0x00000007,0x000000a4,0x00030037,0x00000069,0x000000a5,0x00030037,0x00000007, + 0x000000a6,0x00030037,0x00000007,0x000000a7,0x00030037,0x00000007,0x000000a8,0x000200f8, + 0x000000aa,0x0004003b,0x00000039,0x000003f1,0x00000007,0x0004003b,0x00000007,0x000003f8, + 0x00000007,0x0004003b,0x00000007,0x000003f9,0x00000007,0x0004003b,0x00000039,0x000003fb, + 0x00000007,0x0004003b,0x0000001d,0x0000040f,0x00000007,0x0004003b,0x00000039,0x00000410, + 0x00000007,0x0004003b,0x00000007,0x00000412,0x00000007,0x0004003b,0x00000007,0x00000414, + 0x00000007,0x0004003b,0x00000007,0x0000041b,0x00000007,0x0004003b,0x00000007,0x0000041c, + 0x00000007,0x0004003b,0x00000039,0x0000041d,0x00000007,0x0004003d,0x00000006,0x000003ed, + 0x000000a6,0x000500b0,0x0000005e,0x000003ee,0x000003ed,0x00000158,0x000300f7,0x000003f0, + 0x00000000,0x000400fa,0x000003ee,0x000003ef,0x000003f0,0x000200f8,0x000003ef,0x0004003d, + 0x00000006,0x000003f2,0x000000a3,0x00050084,0x00000006,0x000003f3,0x000003f2,0x0000024d, + 0x0004003d,0x00000006,0x000003f4,0x000000a4,0x00050080,0x00000006,0x000003f5,0x000003f3, + 0x000003f4,0x0004003d,0x00000006,0x000003f6,0x000000a4,0x00050084,0x00000006,0x000003f7, + 0x000003f6,0x0000024d,0x0003003e,0x000003f8,0x000003f5,0x0003003e,0x000003f9,0x000003f7, + 0x00060039,0x0000002e,0x000003fa,0x0000004d,0x000003f8,0x000003f9,0x0003003e,0x000003f1, + 0x000003fa,0x0004003d,0x0000002e,0x000003fc,0x000003f1,0x0003003e,0x000003fb,0x000003fc, + 0x00050039,0x0000002e,0x000003fd,0x00000067,0x000003fb,0x0003003e,0x000003f1,0x000003fd, + 0x0004003d,0x00000006,0x000003fe,0x000000a6,0x00050089,0x00000006,0x000003ff,0x000003fe, + 0x0000024d,0x000500aa,0x0000005e,0x00000400,0x000003ff,0x0000010f,0x000300f7,0x00000402, + 0x00000000,0x000400fa,0x00000400,0x00000401,0x00000402,0x000200f8,0x00000401,0x0004003d, + 0x00000013,0x00000403,0x000000a5,0x00050050,0x00000013,0x00000404,0x000000e1,0x000000e1, + 0x00050084,0x00000013,0x00000405,0x00000403,0x00000404,0x0004007c,0x0000001c,0x00000406, + 0x00000405,0x0004003d,0x00000006,0x00000407,0x000000a3,0x00050086,0x00000006,0x00000408, + 0x00000407,0x000000e1,0x0004007c,0x0000001b,0x00000409,0x00000408,0x0004003d,0x00000006, + 0x0000040a,0x000000a4,0x00050086,0x00000006,0x0000040b,0x0000040a,0x000000e1,0x0004007c, + 0x0000001b,0x0000040c,0x0000040b,0x00050050,0x0000001c,0x0000040d,0x00000409,0x0000040c, + 0x00050080,0x0000001c,0x0000040e,0x00000406,0x0000040d,0x0003003e,0x0000040f,0x0000040e, + 0x0004003d,0x0000002e,0x00000411,0x000003f1,0x0003003e,0x00000410,0x00000411,0x0004003d, + 0x00000006,0x00000413,0x000000a7,0x0003003e,0x00000412,0x00000413,0x0004003d,0x00000006, + 0x00000415,0x000000a8,0x0003003e,0x00000414,0x00000415,0x00080039,0x00000002,0x00000416, + 0x0000003f,0x0000040f,0x00000410,0x00000412,0x00000414,0x0004003d,0x00000006,0x00000417, + 0x000000a3,0x00050086,0x00000006,0x00000418,0x00000417,0x000000e1,0x0004003d,0x00000006, + 0x00000419,0x000000a4,0x00050080,0x00000006,0x0000041a,0x00000418,0x00000419,0x0003003e, + 0x0000041b,0x0000041a,0x0003003e,0x0000041c,0x0000010f,0x0004003d,0x0000002e,0x0000041e, + 0x000003f1,0x0003003e,0x0000041d,0x0000041e,0x00070039,0x00000002,0x0000041f,0x00000053, + 0x0000041b,0x0000041c,0x0000041d,0x000200f9,0x00000402,0x000200f8,0x00000402,0x000200f9, + 0x000003f0,0x000200f8,0x000003f0,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b0, + 0x00000000,0x000000ab,0x00030037,0x00000069,0x000000ac,0x00030037,0x00000007,0x000000ad, + 0x00030037,0x00000007,0x000000ae,0x00030037,0x00000007,0x000000af,0x000200f8,0x000000b1, + 0x0004003b,0x00000039,0x00000424,0x00000007,0x0004003b,0x00000007,0x00000425,0x00000007, + 0x0004003b,0x00000007,0x00000427,0x00000007,0x0004003b,0x00000039,0x00000429,0x00000007, + 0x0004003b,0x0000001d,0x00000433,0x00000007,0x0004003b,0x00000039,0x00000434,0x00000007, + 0x0004003b,0x00000007,0x00000436,0x00000007,0x0004003b,0x00000007,0x00000438,0x00000007, + 0x0004003d,0x00000006,0x00000420,0x000000ad,0x000500b0,0x0000005e,0x00000421,0x00000420, + 0x0000024d,0x000300f7,0x00000423,0x00000000,0x000400fa,0x00000421,0x00000422,0x00000423, + 0x000200f8,0x00000422,0x0004003d,0x00000006,0x00000426,0x000000ad,0x0003003e,0x00000425, + 0x00000426,0x0003003e,0x00000427,0x0000010f,0x00060039,0x0000002e,0x00000428,0x0000004d, + 0x00000425,0x00000427,0x0003003e,0x00000424,0x00000428,0x0004003d,0x0000002e,0x0000042a, + 0x00000424,0x0003003e,0x00000429,0x0000042a,0x00050039,0x0000002e,0x0000042b,0x00000067, + 0x00000429,0x0003003e,0x00000424,0x0000042b,0x0004003d,0x00000006,0x0000042c,0x000000ad, + 0x00050089,0x00000006,0x0000042d,0x0000042c,0x0000024d,0x000500aa,0x0000005e,0x0000042e, + 0x0000042d,0x0000010f,0x000300f7,0x00000430,0x00000000,0x000400fa,0x0000042e,0x0000042f, + 0x00000430,0x000200f8,0x0000042f,0x0004003d,0x00000013,0x00000431,0x000000ac,0x0004007c, + 0x0000001c,0x00000432,0x00000431,0x0003003e,0x00000433,0x00000432,0x0004003d,0x0000002e, + 0x00000435,0x00000424,0x0003003e,0x00000434,0x00000435,0x0004003d,0x00000006,0x00000437, + 0x000000ae,0x0003003e,0x00000436,0x00000437,0x0004003d,0x00000006,0x00000439,0x000000af, + 0x0003003e,0x00000438,0x00000439,0x00080039,0x00000002,0x0000043a,0x0000003f,0x00000433, + 0x00000434,0x00000436,0x00000438,0x000200f9,0x00000430,0x000200f8,0x00000430,0x000200f9, + 0x00000423,0x000200f8,0x00000423,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b7, + 0x00000000,0x000000b2,0x00030037,0x00000007,0x000000b3,0x00030037,0x00000007,0x000000b4, + 0x00030037,0x00000007,0x000000b5,0x00030037,0x00000007,0x000000b6,0x000200f8,0x000000b8, + 0x0004003b,0x0000001d,0x0000043b,0x00000007,0x0004003b,0x0000001d,0x00000445,0x00000007, + 0x0004003b,0x00000039,0x0000044f,0x00000007,0x0004003b,0x00000069,0x00000452,0x00000007, + 0x0004003b,0x00000007,0x00000453,0x00000007,0x0004003b,0x0000001d,0x00000457,0x00000007, + 0x0004003b,0x00000039,0x00000459,0x00000007,0x0004003b,0x00000007,0x0000045b,0x00000007, + 0x0004003b,0x00000007,0x0000045c,0x00000007,0x0004003b,0x00000039,0x00000471,0x00000007, + 0x0004003b,0x00000069,0x00000474,0x00000007,0x0004003b,0x00000007,0x00000475,0x00000007, + 0x0004003b,0x0000001d,0x00000478,0x00000007,0x0004003b,0x00000039,0x0000047a,0x00000007, + 0x0004003b,0x00000007,0x0000047c,0x00000007,0x0004003b,0x00000007,0x0000047d,0x00000007, + 0x0004003b,0x00000039,0x00000492,0x00000007,0x0004003b,0x00000069,0x00000495,0x00000007, + 0x0004003b,0x00000007,0x00000496,0x00000007,0x0004003b,0x0000001d,0x00000499,0x00000007, + 0x0004003b,0x00000039,0x0000049b,0x00000007,0x0004003b,0x00000007,0x0000049d,0x00000007, + 0x0004003b,0x00000007,0x0000049e,0x00000007,0x0004003b,0x00000039,0x000004b3,0x00000007, + 0x0004003b,0x00000069,0x000004b6,0x00000007,0x0004003b,0x00000007,0x000004b7,0x00000007, + 0x0004003b,0x0000001d,0x000004ba,0x00000007,0x0004003b,0x00000039,0x000004bc,0x00000007, + 0x0004003b,0x00000007,0x000004be,0x00000007,0x0004003b,0x00000007,0x000004bf,0x00000007, + 0x0004003b,0x00000039,0x000004c8,0x00000007,0x0004003b,0x00000039,0x000004c9,0x00000007, + 0x0004003b,0x00000039,0x000004cb,0x00000007,0x0004003b,0x00000039,0x000004cd,0x00000007, + 0x0004003b,0x00000039,0x000004cf,0x00000007,0x0004003b,0x0000001d,0x000004d7,0x00000007, + 0x0004003b,0x00000039,0x000004d8,0x00000007,0x0004003b,0x00000007,0x000004da,0x00000007, + 0x0004003b,0x00000007,0x000004db,0x00000007,0x0004003b,0x00000007,0x000004de,0x00000007, + 0x0004003b,0x00000007,0x000004e0,0x00000007,0x0004003b,0x00000039,0x000004e2,0x00000007, + 0x0004003d,0x00000006,0x0000043c,0x000000b3,0x00050084,0x00000006,0x0000043d,0x0000043c, + 0x0000024d,0x00050080,0x00000006,0x0000043e,0x0000043d,0x0000010f,0x0004007c,0x0000001b, + 0x0000043f,0x0000043e,0x0004003d,0x00000006,0x00000440,0x000000b4,0x00050084,0x00000006, + 0x00000441,0x00000440,0x0000024d,0x00050080,0x00000006,0x00000442,0x00000441,0x0000010f, + 0x0004007c,0x0000001b,0x00000443,0x00000442,0x00050050,0x0000001c,0x00000444,0x0000043f, + 0x00000443,0x0003003e,0x0000043b,0x00000444,0x0004003d,0x00000006,0x00000446,0x000000b3, + 0x00050084,0x00000006,0x00000447,0x00000446,0x000000e1,0x00050080,0x00000006,0x00000448, + 0x00000447,0x0000010f,0x0004007c,0x0000001b,0x00000449,0x00000448,0x0004003d,0x00000006, + 0x0000044a,0x000000b4,0x00050084,0x00000006,0x0000044b,0x0000044a,0x000000e1,0x00050080, + 0x00000006,0x0000044c,0x0000044b,0x0000010f,0x0004007c,0x0000001b,0x0000044d,0x0000044c, + 0x00050050,0x0000001c,0x0000044e,0x00000449,0x0000044d,0x0003003e,0x00000445,0x0000044e, + 0x0004003d,0x0000001c,0x00000450,0x0000043b,0x0004007c,0x00000013,0x00000451,0x00000450, + 0x0003003e,0x00000452,0x00000451,0x0004003d,0x00000006,0x00000454,0x000000b6,0x0003003e, + 0x00000453,0x00000454,0x00060039,0x0000002e,0x00000455,0x00000075,0x00000452,0x00000453, + 0x0003003e,0x0000044f,0x00000455,0x0004003d,0x0000001c,0x00000458,0x00000445,0x0003003e, + 0x00000457,0x00000458,0x0004003d,0x0000002e,0x0000045a,0x0000044f,0x0003003e,0x00000459, + 0x0000045a,0x0003003e,0x0000045b,0x00000456,0x0004003d,0x00000006,0x0000045d,0x000000b6, + 0x0003003e,0x0000045c,0x0000045d,0x00080039,0x00000002,0x0000045e,0x0000003f,0x00000457, + 0x00000459,0x0000045b,0x0000045c,0x0004003d,0x00000006,0x0000045f,0x000000b3,0x00050084, + 0x00000006,0x00000460,0x0000045f,0x0000024d,0x00050080,0x00000006,0x00000461,0x00000460, + 0x000000e1,0x0004007c,0x0000001b,0x00000462,0x00000461,0x0004003d,0x00000006,0x00000463, + 0x000000b4,0x00050084,0x00000006,0x00000464,0x00000463,0x0000024d,0x00050080,0x00000006, + 0x00000465,0x00000464,0x0000010f,0x0004007c,0x0000001b,0x00000466,0x00000465,0x00050050, + 0x0000001c,0x00000467,0x00000462,0x00000466,0x0003003e,0x0000043b,0x00000467,0x0004003d, + 0x00000006,0x00000468,0x000000b3,0x00050084,0x00000006,0x00000469,0x00000468,0x000000e1, + 0x00050080,0x00000006,0x0000046a,0x00000469,0x000000e8,0x0004007c,0x0000001b,0x0000046b, + 0x0000046a,0x0004003d,0x00000006,0x0000046c,0x000000b4,0x00050084,0x00000006,0x0000046d, + 0x0000046c,0x000000e1,0x00050080,0x00000006,0x0000046e,0x0000046d,0x0000010f,0x0004007c, + 0x0000001b,0x0000046f,0x0000046e,0x00050050,0x0000001c,0x00000470,0x0000046b,0x0000046f, + 0x0003003e,0x00000445,0x00000470,0x0004003d,0x0000001c,0x00000472,0x0000043b,0x0004007c, + 0x00000013,0x00000473,0x00000472,0x0003003e,0x00000474,0x00000473,0x0004003d,0x00000006, + 0x00000476,0x000000b6,0x0003003e,0x00000475,0x00000476,0x00060039,0x0000002e,0x00000477, + 0x00000075,0x00000474,0x00000475,0x0003003e,0x00000471,0x00000477,0x0004003d,0x0000001c, + 0x00000479,0x00000445,0x0003003e,0x00000478,0x00000479,0x0004003d,0x0000002e,0x0000047b, + 0x00000471,0x0003003e,0x0000047a,0x0000047b,0x0003003e,0x0000047c,0x00000456,0x0004003d, + 0x00000006,0x0000047e,0x000000b6,0x0003003e,0x0000047d,0x0000047e,0x00080039,0x00000002, + 0x0000047f,0x0000003f,0x00000478,0x0000047a,0x0000047c,0x0000047d,0x0004003d,0x00000006, + 0x00000480,0x000000b3,0x00050084,0x00000006,0x00000481,0x00000480,0x0000024d,0x00050080, + 0x00000006,0x00000482,0x00000481,0x0000010f,0x0004007c,0x0000001b,0x00000483,0x00000482, + 0x0004003d,0x00000006,0x00000484,0x000000b4,0x00050084,0x00000006,0x00000485,0x00000484, + 0x0000024d,0x00050080,0x00000006,0x00000486,0x00000485,0x000000e1,0x0004007c,0x0000001b, + 0x00000487,0x00000486,0x00050050,0x0000001c,0x00000488,0x00000483,0x00000487,0x0003003e, + 0x0000043b,0x00000488,0x0004003d,0x00000006,0x00000489,0x000000b3,0x00050084,0x00000006, + 0x0000048a,0x00000489,0x000000e1,0x00050080,0x00000006,0x0000048b,0x0000048a,0x0000010f, + 0x0004007c,0x0000001b,0x0000048c,0x0000048b,0x0004003d,0x00000006,0x0000048d,0x000000b4, + 0x00050084,0x00000006,0x0000048e,0x0000048d,0x000000e1,0x00050080,0x00000006,0x0000048f, + 0x0000048e,0x000000e8,0x0004007c,0x0000001b,0x00000490,0x0000048f,0x00050050,0x0000001c, + 0x00000491,0x0000048c,0x00000490,0x0003003e,0x00000445,0x00000491,0x0004003d,0x0000001c, + 0x00000493,0x0000043b,0x0004007c,0x00000013,0x00000494,0x00000493,0x0003003e,0x00000495, + 0x00000494,0x0004003d,0x00000006,0x00000497,0x000000b6,0x0003003e,0x00000496,0x00000497, + 0x00060039,0x0000002e,0x00000498,0x00000075,0x00000495,0x00000496,0x0003003e,0x00000492, + 0x00000498,0x0004003d,0x0000001c,0x0000049a,0x00000445,0x0003003e,0x00000499,0x0000049a, + 0x0004003d,0x0000002e,0x0000049c,0x00000492,0x0003003e,0x0000049b,0x0000049c,0x0003003e, + 0x0000049d,0x00000456,0x0004003d,0x00000006,0x0000049f,0x000000b6,0x0003003e,0x0000049e, + 0x0000049f,0x00080039,0x00000002,0x000004a0,0x0000003f,0x00000499,0x0000049b,0x0000049d, + 0x0000049e,0x0004003d,0x00000006,0x000004a1,0x000000b3,0x00050084,0x00000006,0x000004a2, + 0x000004a1,0x0000024d,0x00050080,0x00000006,0x000004a3,0x000004a2,0x000000e1,0x0004007c, + 0x0000001b,0x000004a4,0x000004a3,0x0004003d,0x00000006,0x000004a5,0x000000b4,0x00050084, + 0x00000006,0x000004a6,0x000004a5,0x0000024d,0x00050080,0x00000006,0x000004a7,0x000004a6, + 0x000000e1,0x0004007c,0x0000001b,0x000004a8,0x000004a7,0x00050050,0x0000001c,0x000004a9, + 0x000004a4,0x000004a8,0x0003003e,0x0000043b,0x000004a9,0x0004003d,0x00000006,0x000004aa, + 0x000000b3,0x00050084,0x00000006,0x000004ab,0x000004aa,0x000000e1,0x00050080,0x00000006, + 0x000004ac,0x000004ab,0x000000e8,0x0004007c,0x0000001b,0x000004ad,0x000004ac,0x0004003d, + 0x00000006,0x000004ae,0x000000b4,0x00050084,0x00000006,0x000004af,0x000004ae,0x000000e1, + 0x00050080,0x00000006,0x000004b0,0x000004af,0x000000e8,0x0004007c,0x0000001b,0x000004b1, + 0x000004b0,0x00050050,0x0000001c,0x000004b2,0x000004ad,0x000004b1,0x0003003e,0x00000445, + 0x000004b2,0x0004003d,0x0000001c,0x000004b4,0x0000043b,0x0004007c,0x00000013,0x000004b5, + 0x000004b4,0x0003003e,0x000004b6,0x000004b5,0x0004003d,0x00000006,0x000004b8,0x000000b6, + 0x0003003e,0x000004b7,0x000004b8,0x00060039,0x0000002e,0x000004b9,0x00000075,0x000004b6, + 0x000004b7,0x0003003e,0x000004b3,0x000004b9,0x0004003d,0x0000001c,0x000004bb,0x00000445, + 0x0003003e,0x000004ba,0x000004bb,0x0004003d,0x0000002e,0x000004bd,0x000004b3,0x0003003e, + 0x000004bc,0x000004bd,0x0003003e,0x000004be,0x00000456,0x0004003d,0x00000006,0x000004c0, + 0x000000b6,0x0003003e,0x000004bf,0x000004c0,0x00080039,0x00000002,0x000004c1,0x0000003f, + 0x000004ba,0x000004bc,0x000004be,0x000004bf,0x0004003d,0x00000006,0x000004c2,0x000000b5, + 0x000500b2,0x0000005e,0x000004c4,0x000004c2,0x000004c3,0x000300f7,0x000004c6,0x00000000, + 0x000400fa,0x000004c4,0x000004c5,0x000004c6,0x000200f8,0x000004c5,0x000100fd,0x000200f8, + 0x000004c6,0x0004003d,0x0000002e,0x000004ca,0x0000044f,0x0003003e,0x000004c9,0x000004ca, + 0x0004003d,0x0000002e,0x000004cc,0x00000471,0x0003003e,0x000004cb,0x000004cc,0x0004003d, + 0x0000002e,0x000004ce,0x00000492,0x0003003e,0x000004cd,0x000004ce,0x0004003d,0x0000002e, + 0x000004d0,0x000004b3,0x0003003e,0x000004cf,0x000004d0,0x00080039,0x0000002e,0x000004d1, + 0x0000005a,0x000004c9,0x000004cb,0x000004cd,0x000004cf,0x0003003e,0x000004c8,0x000004d1, + 0x0004003d,0x00000006,0x000004d2,0x000000b3,0x0004007c,0x0000001b,0x000004d3,0x000004d2, + 0x0004003d,0x00000006,0x000004d4,0x000000b4,0x0004007c,0x0000001b,0x000004d5,0x000004d4, + 0x00050050,0x0000001c,0x000004d6,0x000004d3,0x000004d5,0x0003003e,0x000004d7,0x000004d6, + 0x0004003d,0x0000002e,0x000004d9,0x000004c8,0x0003003e,0x000004d8,0x000004d9,0x0003003e, + 0x000004da,0x000004c3,0x0004003d,0x00000006,0x000004dc,0x000000b6,0x0003003e,0x000004db, + 0x000004dc,0x00080039,0x00000002,0x000004dd,0x0000003f,0x000004d7,0x000004d8,0x000004da, + 0x000004db,0x0004003d,0x00000006,0x000004df,0x000000b3,0x0003003e,0x000004de,0x000004df, + 0x0004003d,0x00000006,0x000004e1,0x000000b4,0x0003003e,0x000004e0,0x000004e1,0x0004003d, + 0x0000002e,0x000004e3,0x000004c8,0x0003003e,0x000004e2,0x000004e3,0x00070039,0x00000002, + 0x000004e4,0x00000053,0x000004de,0x000004e0,0x000004e2,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000c1,0x00000000,0x000000b9,0x00030037,0x00000007,0x000000ba,0x00030037, + 0x00000007,0x000000bb,0x00030037,0x00000069,0x000000bc,0x00030037,0x00000007,0x000000bd, + 0x00030037,0x00000007,0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007, + 0x000000c0,0x000200f8,0x000000c2,0x0004003b,0x00000007,0x000004ec,0x00000007,0x0004003b, + 0x00000007,0x000004ee,0x00000007,0x0004003b,0x00000069,0x000004f0,0x00000007,0x0004003b, + 0x00000007,0x000004f2,0x00000007,0x0004003b,0x00000007,0x000004f4,0x00000007,0x0004003b, + 0x00000007,0x000004f6,0x00000007,0x0004003b,0x00000007,0x00000503,0x00000007,0x0004003b, + 0x00000007,0x00000505,0x00000007,0x0004003b,0x00000069,0x00000507,0x00000007,0x0004003b, + 0x00000007,0x00000509,0x00000007,0x0004003b,0x00000007,0x0000050b,0x00000007,0x0004003b, + 0x00000007,0x0000050c,0x00000007,0x0004003b,0x00000007,0x00000519,0x00000007,0x0004003b, + 0x00000007,0x0000051b,0x00000007,0x0004003b,0x00000069,0x0000051d,0x00000007,0x0004003b, + 0x00000007,0x0000051f,0x00000007,0x0004003b,0x00000007,0x00000521,0x00000007,0x0004003b, + 0x00000007,0x00000522,0x00000007,0x0004003b,0x00000069,0x0000052f,0x00000007,0x0004003b, + 0x00000007,0x00000531,0x00000007,0x0004003b,0x00000007,0x00000533,0x00000007,0x0004003b, + 0x00000007,0x00000534,0x00000007,0x0004003d,0x00000006,0x000004e5,0x000000bf,0x0004003d, + 0x00000006,0x000004e6,0x000000be,0x000500b2,0x0000005e,0x000004e7,0x000004e5,0x000004e6, + 0x000300f7,0x000004e9,0x00000000,0x000400fa,0x000004e7,0x000004e8,0x000004e9,0x000200f8, + 0x000004e8,0x000100fd,0x000200f8,0x000004e9,0x00040039,0x00000002,0x000004eb,0x0000005c, + 0x0004003d,0x00000006,0x000004ed,0x000000ba,0x0003003e,0x000004ec,0x000004ed,0x0004003d, + 0x00000006,0x000004ef,0x000000bb,0x0003003e,0x000004ee,0x000004ef,0x0004003d,0x00000013, + 0x000004f1,0x000000bc,0x0003003e,0x000004f0,0x000004f1,0x0004003d,0x00000006,0x000004f3, + 0x000000bd,0x0003003e,0x000004f2,0x000004f3,0x0004003d,0x00000006,0x000004f5,0x000000be, + 0x0003003e,0x000004f4,0x000004f5,0x0004003d,0x00000006,0x000004f7,0x000000c0,0x0003003e, + 0x000004f6,0x000004f7,0x000a0039,0x00000002,0x000004f8,0x00000099,0x000004ec,0x000004ee, + 0x000004f0,0x000004f2,0x000004f4,0x000004f6,0x0004003d,0x00000006,0x000004f9,0x000000bf, + 0x0004003d,0x00000006,0x000004fa,0x000000be,0x00050080,0x00000006,0x000004fb,0x000004fa, + 0x000000e8,0x000500b2,0x0000005e,0x000004fc,0x000004f9,0x000004fb,0x000300f7,0x000004fe, + 0x00000000,0x000400fa,0x000004fc,0x000004fd,0x000004fe,0x000200f8,0x000004fd,0x000100fd, + 0x000200f8,0x000004fe,0x00040039,0x00000002,0x00000500,0x0000005c,0x0004003d,0x00000006, + 0x00000501,0x000000be,0x00050080,0x00000006,0x00000502,0x00000501,0x000000e8,0x0004003d, + 0x00000006,0x00000504,0x000000ba,0x0003003e,0x00000503,0x00000504,0x0004003d,0x00000006, + 0x00000506,0x000000bb,0x0003003e,0x00000505,0x00000506,0x0004003d,0x00000013,0x00000508, + 0x000000bc,0x0003003e,0x00000507,0x00000508,0x0004003d,0x00000006,0x0000050a,0x000000bd, + 0x0003003e,0x00000509,0x0000050a,0x0003003e,0x0000050b,0x00000502,0x0004003d,0x00000006, + 0x0000050d,0x000000c0,0x0003003e,0x0000050c,0x0000050d,0x000a0039,0x00000002,0x0000050e, + 0x000000a1,0x00000503,0x00000505,0x00000507,0x00000509,0x0000050b,0x0000050c,0x0004003d, + 0x00000006,0x0000050f,0x000000bf,0x0004003d,0x00000006,0x00000510,0x000000be,0x00050080, + 0x00000006,0x00000511,0x00000510,0x000000e1,0x000500b2,0x0000005e,0x00000512,0x0000050f, + 0x00000511,0x000300f7,0x00000514,0x00000000,0x000400fa,0x00000512,0x00000513,0x00000514, + 0x000200f8,0x00000513,0x000100fd,0x000200f8,0x00000514,0x00040039,0x00000002,0x00000516, + 0x0000005c,0x0004003d,0x00000006,0x00000517,0x000000be,0x00050080,0x00000006,0x00000518, + 0x00000517,0x000000e1,0x0004003d,0x00000006,0x0000051a,0x000000ba,0x0003003e,0x00000519, + 0x0000051a,0x0004003d,0x00000006,0x0000051c,0x000000bb,0x0003003e,0x0000051b,0x0000051c, + 0x0004003d,0x00000013,0x0000051e,0x000000bc,0x0003003e,0x0000051d,0x0000051e,0x0004003d, + 0x00000006,0x00000520,0x000000bd,0x0003003e,0x0000051f,0x00000520,0x0003003e,0x00000521, + 0x00000518,0x0004003d,0x00000006,0x00000523,0x000000c0,0x0003003e,0x00000522,0x00000523, + 0x000a0039,0x00000002,0x00000524,0x000000a9,0x00000519,0x0000051b,0x0000051d,0x0000051f, + 0x00000521,0x00000522,0x0004003d,0x00000006,0x00000525,0x000000bf,0x0004003d,0x00000006, + 0x00000526,0x000000be,0x00050080,0x00000006,0x00000527,0x00000526,0x000000e2,0x000500b2, + 0x0000005e,0x00000528,0x00000525,0x00000527,0x000300f7,0x0000052a,0x00000000,0x000400fa, + 0x00000528,0x00000529,0x0000052a,0x000200f8,0x00000529,0x000100fd,0x000200f8,0x0000052a, + 0x00040039,0x00000002,0x0000052c,0x0000005c,0x0004003d,0x00000006,0x0000052d,0x000000be, + 0x00050080,0x00000006,0x0000052e,0x0000052d,0x000000e2,0x0004003d,0x00000013,0x00000530, + 0x000000bc,0x0003003e,0x0000052f,0x00000530,0x0004003d,0x00000006,0x00000532,0x000000bd, + 0x0003003e,0x00000531,0x00000532,0x0003003e,0x00000533,0x0000052e,0x0004003d,0x00000006, + 0x00000535,0x000000c0,0x0003003e,0x00000534,0x00000535,0x00080039,0x00000002,0x00000536, + 0x000000b0,0x0000052f,0x00000531,0x00000533,0x00000534,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000c9,0x00000000,0x000000c3,0x00030037,0x00000069,0x000000c4,0x00030037, + 0x00000007,0x000000c5,0x00030037,0x00000007,0x000000c6,0x00030037,0x00000007,0x000000c7, + 0x00030037,0x00000007,0x000000c8,0x000200f8,0x000000ca,0x0004003b,0x00000069,0x00000537, + 0x00000007,0x0004003b,0x00000007,0x0000053a,0x00000007,0x0004003b,0x00000007,0x0000053c, + 0x00000007,0x0004003b,0x00000007,0x00000545,0x00000007,0x0004003b,0x00000007,0x0000054d, + 0x00000007,0x0004003b,0x00000007,0x0000054f,0x00000007,0x0004003b,0x00000069,0x00000551, + 0x00000007,0x0004003b,0x00000007,0x00000553,0x00000007,0x0004003b,0x00000007,0x00000555, + 0x00000007,0x0004003b,0x00000007,0x00000557,0x00000007,0x0004003b,0x00000007,0x0000055a, + 0x00000007,0x0004003b,0x00000007,0x0000055c,0x00000007,0x0004003b,0x00000069,0x0000055e, + 0x00000007,0x0004003b,0x00000007,0x00000560,0x00000007,0x0004003b,0x00000007,0x00000562, + 0x00000007,0x0004003b,0x00000007,0x00000563,0x00000007,0x0004003b,0x00000007,0x00000565, + 0x00000007,0x0004003b,0x00000007,0x0000056d,0x00000007,0x0004003b,0x00000007,0x0000056f, + 0x00000007,0x0004003b,0x00000007,0x00000571,0x00000007,0x0004003b,0x00000007,0x00000577, + 0x00000007,0x0004003b,0x00000007,0x0000057a,0x00000007,0x0004003b,0x00000007,0x0000057c, + 0x00000007,0x0004003b,0x00000007,0x0000057e,0x00000007,0x0004003b,0x00000007,0x00000580, + 0x00000007,0x0004003b,0x00000007,0x00000583,0x00000007,0x0004003b,0x00000007,0x00000585, + 0x00000007,0x0004003b,0x00000069,0x00000587,0x00000007,0x0004003b,0x00000007,0x00000588, + 0x00000007,0x0004003b,0x00000007,0x0000058a,0x00000007,0x0004003b,0x00000007,0x0000058b, + 0x00000007,0x0004003b,0x00000007,0x0000058d,0x00000007,0x0004003d,0x00000006,0x00000538, + 0x000000c5,0x00050089,0x00000006,0x00000539,0x00000538,0x00000235,0x0003003e,0x0000053a, + 0x00000539,0x00050039,0x00000013,0x0000053b,0x00000016,0x0000053a,0x0003003e,0x00000537, + 0x0000053b,0x00050041,0x00000007,0x0000053d,0x00000537,0x0000010f,0x0004003d,0x00000006, + 0x0000053e,0x0000053d,0x0004003d,0x00000006,0x0000053f,0x000000c5,0x000500c2,0x00000006, + 0x00000541,0x0000053f,0x00000540,0x00050089,0x00000006,0x00000542,0x00000541,0x000000e1, + 0x00050084,0x00000006,0x00000543,0x0000031f,0x00000542,0x00050080,0x00000006,0x00000544, + 0x0000053e,0x00000543,0x0003003e,0x0000053c,0x00000544,0x00050041,0x00000007,0x00000546, + 0x00000537,0x000000e8,0x0004003d,0x00000006,0x00000547,0x00000546,0x0004003d,0x00000006, + 0x00000548,0x000000c5,0x000500c2,0x00000006,0x0000054a,0x00000548,0x00000549,0x00050084, + 0x00000006,0x0000054b,0x0000031f,0x0000054a,0x00050080,0x00000006,0x0000054c,0x00000547, + 0x0000054b,0x0003003e,0x00000545,0x0000054c,0x0004003d,0x00000006,0x0000054e,0x0000053c, + 0x0003003e,0x0000054d,0x0000054e,0x0004003d,0x00000006,0x00000550,0x00000545,0x0003003e, + 0x0000054f,0x00000550,0x0004003d,0x00000013,0x00000552,0x000000c4,0x0003003e,0x00000551, + 0x00000552,0x0004003d,0x00000006,0x00000554,0x000000c5,0x0003003e,0x00000553,0x00000554, + 0x0004003d,0x00000006,0x00000556,0x000000c6,0x0003003e,0x00000555,0x00000556,0x0004003d, + 0x00000006,0x00000558,0x000000c8,0x0003003e,0x00000557,0x00000558,0x000a0039,0x00000002, + 0x00000559,0x00000091,0x0000054d,0x0000054f,0x00000551,0x00000553,0x00000555,0x00000557, + 0x0004003d,0x00000006,0x0000055b,0x0000053c,0x0003003e,0x0000055a,0x0000055b,0x0004003d, + 0x00000006,0x0000055d,0x00000545,0x0003003e,0x0000055c,0x0000055d,0x0004003d,0x00000013, + 0x0000055f,0x000000c4,0x0003003e,0x0000055e,0x0000055f,0x0004003d,0x00000006,0x00000561, + 0x000000c5,0x0003003e,0x00000560,0x00000561,0x0003003e,0x00000562,0x000000e1,0x0004003d, + 0x00000006,0x00000564,0x000000c6,0x0003003e,0x00000563,0x00000564,0x0004003d,0x00000006, + 0x00000566,0x000000c8,0x0003003e,0x00000565,0x00000566,0x000b0039,0x00000002,0x00000567, + 0x000000c1,0x0000055a,0x0000055c,0x0000055e,0x00000560,0x00000562,0x00000563,0x00000565, + 0x0004003d,0x00000006,0x00000568,0x000000c6,0x000500b2,0x0000005e,0x00000569,0x00000568, + 0x00000456,0x000300f7,0x0000056b,0x00000000,0x000400fa,0x00000569,0x0000056a,0x0000056b, + 0x000200f8,0x0000056a,0x000100fd,0x000200f8,0x0000056b,0x0004003d,0x00000006,0x0000056e, + 0x000000c7,0x0003003e,0x0000056d,0x0000056e,0x0004003d,0x00000006,0x00000570,0x000000c5, + 0x0003003e,0x0000056f,0x00000570,0x0004003d,0x00000006,0x00000572,0x000000c8,0x0003003e, + 0x00000571,0x00000572,0x00070039,0x0000005e,0x00000573,0x00000063,0x0000056d,0x0000056f, + 0x00000571,0x000300f7,0x00000575,0x00000000,0x000400fa,0x00000573,0x00000574,0x00000575, + 0x000200f8,0x00000574,0x000100fd,0x000200f8,0x00000575,0x0004003d,0x00000006,0x00000578, + 0x000000c8,0x0003003e,0x00000577,0x00000578,0x00050039,0x00000002,0x00000579,0x00000048, + 0x00000577,0x0004003d,0x00000006,0x0000057b,0x0000053c,0x0003003e,0x0000057a,0x0000057b, + 0x0004003d,0x00000006,0x0000057d,0x00000545,0x0003003e,0x0000057c,0x0000057d,0x0004003d, + 0x00000006,0x0000057f,0x000000c6,0x0003003e,0x0000057e,0x0000057f,0x0004003d,0x00000006, + 0x00000581,0x000000c8,0x0003003e,0x00000580,0x00000581,0x00080039,0x00000002,0x00000582, + 0x000000b7,0x0000057a,0x0000057c,0x0000057e,0x00000580,0x0004003d,0x00000006,0x00000584, + 0x0000053c,0x0003003e,0x00000583,0x00000584,0x0004003d,0x00000006,0x00000586,0x00000545, + 0x0003003e,0x00000585,0x00000586,0x0003003e,0x00000587,0x000001e3,0x0004003d,0x00000006, + 0x00000589,0x000000c5,0x0003003e,0x00000588,0x00000589,0x0003003e,0x0000058a,0x0000031f, + 0x0004003d,0x00000006,0x0000058c,0x000000c6,0x0003003e,0x0000058b,0x0000058c,0x0004003d, + 0x00000006,0x0000058e,0x000000c8,0x0003003e,0x0000058d,0x0000058e,0x000b0039,0x00000002, + 0x0000058f,0x000000c1,0x00000583,0x00000585,0x00000587,0x00000588,0x0000058a,0x0000058b, + 0x0000058d,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000cf,0x00000000,0x000000cc, + 0x00030037,0x0000001d,0x000000cd,0x00030037,0x000000cb,0x000000ce,0x000200f8,0x000000d0, + 0x0004003b,0x00000069,0x00000595,0x00000007,0x0004003b,0x00000007,0x00000596,0x00000007, + 0x0004003b,0x00000007,0x00000597,0x00000007,0x0004003b,0x00000007,0x00000598,0x00000007, + 0x0004003b,0x00000007,0x00000599,0x00000007,0x0004003d,0x0000001c,0x00000590,0x000000cd, + 0x0004007c,0x00000013,0x00000591,0x00000590,0x0004003d,0x0000001b,0x00000592,0x000000ce, + 0x0004007c,0x00000006,0x00000593,0x00000592,0x00040039,0x00000006,0x00000594,0x00000019, + 0x0003003e,0x00000595,0x00000591,0x0003003e,0x00000596,0x00000593,0x0003003e,0x00000597, + 0x00000456,0x0003003e,0x00000598,0x00000594,0x0003003e,0x00000599,0x000000e8,0x00090039, + 0x00000002,0x0000059a,0x000000c9,0x00000595,0x00000596,0x00000597,0x00000598,0x00000599, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h b/gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h new file mode 100644 index 000000000..a9508a90f --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h @@ -0,0 +1,302 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_PREPARE_LUMA_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000017a,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000016a, + 0x0000016f,0x00060010,0x00000004,0x00000011,0x00000010,0x00000010,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000b, + 0x42786666,0x64616f72,0x74736163,0x31662833,0x0000003b,0x00040005,0x0000000a,0x756c6176, + 0x00000065,0x00070005,0x00000010,0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000, + 0x00030005,0x0000000f,0x00000078,0x00060005,0x00000015,0x50786666,0x6628776f,0x31663b31, + 0x0000003b,0x00030005,0x00000013,0x00000078,0x00030005,0x00000014,0x00000079,0x00080005, + 0x00000018,0x4c786666,0x61656e69,0x6f724672,0x2851506d,0x3b336676,0x00000000,0x00040005, + 0x00000017,0x756c6176,0x00000065,0x00090005,0x0000001c,0x6b636142,0x66667562,0x72547265, + 0x66736e61,0x75467265,0x6974636e,0x00286e6f,0x00070005,0x00000020,0x4d6e694d,0x754c7861, + 0x616e696d,0x2865636e,0x00000000,0x00070005,0x00000027,0x64616f4c,0x75706e49,0x6c6f4374, + 0x7628726f,0x003b3275,0x00050005,0x00000026,0x48785069,0x6f747369,0x00007972,0x000a0005, + 0x00000030,0x726f7453,0x74704f65,0x6c616369,0x776f6c46,0x75706e49,0x69762874,0x31753b32, + 0x0000003b,0x00040005,0x0000002e,0x50785069,0x0000736f,0x00040005,0x0000002f,0x6d754c66, + 0x00000061,0x000b0005,0x00000034,0x696d754c,0x636e616e,0x506f5465,0x65637265,0x64657669, + 0x696d754c,0x636e616e,0x31662865,0x0000003b,0x00050005,0x00000033,0x6d754c66,0x6e616e69, + 0x00006563,0x00090005,0x00000038,0x656e694c,0x644c7261,0x4c6f5472,0x6e696d75,0x65636e61, + 0x33667628,0x0000003b,0x00060005,0x00000037,0x656e696c,0x65527261,0x39303763,0x00424752, + 0x000a0005,0x0000003b,0x656e694c,0x65527261,0x32303263,0x4c6f5430,0x6e696d75,0x65636e61, + 0x33667628,0x0000003b,0x00070005,0x0000003a,0x656e696c,0x65527261,0x32303263,0x42475230, + 0x00000000,0x000b0005,0x00000040,0x6f435150,0x63657272,0x48646574,0x6f547264,0x696d754c, + 0x636e616e,0x66762865,0x31663b33,0x0000003b,0x00030005,0x0000003e,0x00007170,0x00060005, + 0x0000003f,0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x00090005,0x00000046,0x73786666, + 0x42475263,0x694c6f54,0x7261656e,0x33667628,0x3b31663b,0x003b3166,0x00040005,0x00000043, + 0x756c6176,0x00000065,0x00060005,0x00000044,0x4c6e696d,0x6e696d75,0x65636e61,0x00000000, + 0x00060005,0x00000045,0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x000c0005,0x0000004c, + 0x47524353,0x726f4342,0x74636572,0x64486465,0x4c6f5472,0x6e696d75,0x65636e61,0x33667628, + 0x3b31663b,0x003b3166,0x00040005,0x00000049,0x47526373,0x00000042,0x00060005,0x0000004a, + 0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x0000004b,0x4c78616d,0x6e696d75, + 0x65636e61,0x00000000,0x00070005,0x00000052,0x70657250,0x4c657261,0x28616d75,0x3b326976, + 0x003b3169,0x00050005,0x00000050,0x6f6c4769,0x496c6162,0x00000064,0x00050005,0x00000051, + 0x636f4c69,0x6e496c61,0x00786564,0x00040005,0x0000005a,0x61726170,0x0000006d,0x00040005, + 0x0000005d,0x61726170,0x0000006d,0x00030005,0x00000067,0x00000070,0x00040005,0x0000006a, + 0x61726170,0x0000006d,0x00040005,0x0000006f,0x61726170,0x0000006d,0x00040005,0x00000072, + 0x61726170,0x0000006d,0x00040005,0x00000075,0x61726170,0x0000006d,0x00040005,0x00000078, + 0x61726170,0x0000006d,0x00040005,0x0000007f,0x61726170,0x0000006d,0x00040005,0x00000084, + 0x464f6263,0x0000745f,0x00090006,0x00000084,0x00000000,0x706e4969,0x754c7475,0x6552616d, + 0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x00000084,0x00000001,0x74704f75,0x6c616369, + 0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x00000084,0x00000002, + 0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43,0x00000074, + 0x00060006,0x00000084,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006,0x00000084, + 0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f, + 0x00070006,0x00000084,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00040005, + 0x00000086,0x464f6263,0x00000000,0x00060005,0x00000095,0x6e695f72,0x5f747570,0x6f6c6f63, + 0x00000072,0x00080005,0x0000009f,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69, + 0x00000074,0x00070005,0x000000a6,0x72655066,0x76656963,0x754c6465,0x616e696d,0x0065636e, + 0x00040005,0x000000b2,0x61726170,0x0000006d,0x00040005,0x000000b4,0x61726170,0x0000006d, + 0x00030005,0x000000bf,0x00005966,0x00030005,0x000000d3,0x00005966,0x00030005,0x000000e5, + 0x00005966,0x00040005,0x000000e6,0x61726170,0x0000006d,0x00040005,0x000000ed,0x61726170, + 0x0000006d,0x00030005,0x000000f2,0x00000070,0x00040005,0x000000f7,0x61726170,0x0000006d, + 0x00040005,0x000000ff,0x61726170,0x0000006d,0x00030005,0x00000104,0x00005966,0x00040005, + 0x00000105,0x61726170,0x0000006d,0x00040005,0x00000107,0x61726170,0x0000006d,0x00040005, + 0x00000109,0x61726170,0x0000006d,0x00040005,0x0000010c,0x61726170,0x0000006d,0x00030005, + 0x00000111,0x00000079,0x00030005,0x0000011a,0x00000078,0x00030005,0x00000122,0x00736f70, + 0x00050005,0x0000012a,0x48785069,0x736f5072,0x00000000,0x00030005,0x0000012c,0x00005966, + 0x00050005,0x0000012d,0x75706e69,0x6c6f4374,0x0000726f,0x00040005,0x00000130,0x61726170, + 0x0000006d,0x00090005,0x00000133,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265, + 0x6974636e,0x00006e6f,0x00040005,0x00000139,0x61726170,0x0000006d,0x00040005,0x00000142, + 0x61726170,0x0000006d,0x00040005,0x00000144,0x61726170,0x0000006d,0x00040005,0x00000147, + 0x61726170,0x0000006d,0x00040005,0x00000151,0x61726170,0x0000006d,0x00040005,0x00000153, + 0x61726170,0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d,0x00040005,0x00000158, + 0x61726170,0x0000006d,0x00040005,0x0000015f,0x61726170,0x0000006d,0x00040005,0x00000161, + 0x61726170,0x0000006d,0x00080005,0x0000016a,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00080005,0x0000016f,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163, + 0x6e496e6f,0x00786564,0x00040005,0x00000172,0x61726170,0x0000006d,0x00040005,0x00000173, + 0x61726170,0x0000006d,0x00030047,0x00000084,0x00000002,0x00050048,0x00000084,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000084,0x00000001,0x00000023,0x00000008,0x00050048, + 0x00000084,0x00000002,0x00000023,0x0000000c,0x00050048,0x00000084,0x00000003,0x00000023, + 0x00000010,0x00050048,0x00000084,0x00000004,0x00000023,0x00000014,0x00050048,0x00000084, + 0x00000005,0x00000023,0x00000018,0x00040047,0x00000086,0x00000021,0x00000002,0x00040047, + 0x00000086,0x00000022,0x00000000,0x00040047,0x00000095,0x00000021,0x00000000,0x00040047, + 0x00000095,0x00000022,0x00000000,0x00040047,0x0000009f,0x00000021,0x00000001,0x00040047, + 0x0000009f,0x00000022,0x00000000,0x00040047,0x0000016a,0x0000000b,0x0000001c,0x00040047, + 0x0000016f,0x0000000b,0x0000001d,0x00040047,0x00000179,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020, + 0x00000007,0x00000007,0x00000006,0x00040017,0x00000008,0x00000006,0x00000003,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040020,0x0000000d,0x00000007,0x00000008,0x00040021, + 0x0000000e,0x00000008,0x0000000d,0x00050021,0x00000012,0x00000006,0x00000007,0x00000007, + 0x00040015,0x0000001a,0x00000020,0x00000000,0x00030021,0x0000001b,0x0000001a,0x00040017, + 0x0000001e,0x00000006,0x00000002,0x00030021,0x0000001f,0x0000001e,0x00040017,0x00000022, + 0x0000001a,0x00000002,0x00040020,0x00000023,0x00000007,0x00000022,0x00040017,0x00000024, + 0x00000006,0x00000004,0x00040021,0x00000025,0x00000024,0x00000023,0x00040015,0x00000029, + 0x00000020,0x00000001,0x00040017,0x0000002a,0x00000029,0x00000002,0x00040020,0x0000002b, + 0x00000007,0x0000002a,0x00040020,0x0000002c,0x00000007,0x0000001a,0x00050021,0x0000002d, + 0x00000002,0x0000002b,0x0000002c,0x00040021,0x00000032,0x00000006,0x00000007,0x00040021, + 0x00000036,0x00000006,0x0000000d,0x00050021,0x0000003d,0x00000006,0x0000000d,0x00000007, + 0x00060021,0x00000042,0x00000008,0x0000000d,0x00000007,0x00000007,0x00060021,0x00000048, + 0x00000006,0x0000000d,0x00000007,0x00000007,0x00040020,0x0000004e,0x00000007,0x00000029, + 0x00050021,0x0000004f,0x00000002,0x0000002b,0x0000004e,0x0004002b,0x00000006,0x00000059, + 0x00000000,0x0004002b,0x00000006,0x0000005c,0x3f800000,0x0004002b,0x00000006,0x00000069, + 0x3c4fcd9e,0x0004002b,0x00000006,0x0000006e,0x3f560008,0x0004002b,0x00000006,0x00000074, + 0x4196d014,0x0004002b,0x00000006,0x00000077,0x41958000,0x0004002b,0x00000006,0x0000007e, + 0x40c8e061,0x0008001e,0x00000084,0x0000002a,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001e,0x00040020,0x00000085,0x00000002,0x00000084,0x0004003b,0x00000085,0x00000086, + 0x00000002,0x0004002b,0x00000029,0x00000087,0x00000004,0x00040020,0x00000088,0x00000002, + 0x0000001a,0x0004002b,0x00000029,0x0000008d,0x00000005,0x00040020,0x0000008e,0x00000002, + 0x0000001e,0x00090019,0x00000093,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x00000094,0x00000000,0x00000093,0x0004003b,0x00000094, + 0x00000095,0x00000000,0x0004002b,0x00000029,0x00000099,0x00000000,0x00090019,0x0000009d, + 0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000027,0x00040020, + 0x0000009e,0x00000000,0x0000009d,0x0004003b,0x0000009e,0x0000009f,0x00000000,0x0004002b, + 0x0000001a,0x000000a3,0x00000000,0x00040017,0x000000a4,0x0000001a,0x00000004,0x0004002b, + 0x00000006,0x000000a8,0x3c111aa7,0x00020014,0x000000a9,0x0004002b,0x00000006,0x000000ae, + 0x4461d2f7,0x0004002b,0x00000006,0x000000b1,0x3eaaaaab,0x0004002b,0x00000006,0x000000b6, + 0x42e80000,0x0004002b,0x00000006,0x000000b8,0x41800000,0x0004002b,0x00000006,0x000000bb, + 0x3c23d70a,0x0004002b,0x00000006,0x000000c0,0x3e59b3d0,0x0004002b,0x00000006,0x000000c4, + 0x3f371759,0x0004002b,0x0000001a,0x000000c5,0x00000001,0x0004002b,0x00000006,0x000000ca, + 0x3d93dd98,0x0004002b,0x0000001a,0x000000cb,0x00000002,0x0004002b,0x00000006,0x000000d4, + 0x3e86809d,0x0004002b,0x00000006,0x000000d8,0x3f2d9168,0x0004002b,0x00000006,0x000000dd, + 0x3d72e48f,0x0004002b,0x00000006,0x000000e9,0x461c4000,0x0004002b,0x00000006,0x000000f5, + 0x42a00000,0x0004002b,0x00000029,0x00000118,0x00000002,0x0005002c,0x0000002a,0x00000124, + 0x00000118,0x00000118,0x0004002b,0x00000006,0x0000015c,0x437f0000,0x0004002b,0x00000029, + 0x00000164,0x00000001,0x00040017,0x00000168,0x0000001a,0x00000003,0x00040020,0x00000169, + 0x00000001,0x00000168,0x0004003b,0x00000169,0x0000016a,0x00000001,0x00040020,0x0000016e, + 0x00000001,0x0000001a,0x0004003b,0x0000016e,0x0000016f,0x00000001,0x0004002b,0x00000006, + 0x00000175,0x387fda40,0x0004002b,0x00000006,0x00000176,0x477fe000,0x0004002b,0x00000006, + 0x00000177,0x37801002,0x0004002b,0x0000001a,0x00000178,0x00000010,0x0006002c,0x00000168, + 0x00000179,0x00000178,0x00000178,0x000000c5,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000002b,0x00000172,0x00000007,0x0004003b, + 0x0000004e,0x00000173,0x00000007,0x0004003d,0x00000168,0x0000016b,0x0000016a,0x0007004f, + 0x00000022,0x0000016c,0x0000016b,0x0000016b,0x00000000,0x00000001,0x0004007c,0x0000002a, + 0x0000016d,0x0000016c,0x0004003d,0x0000001a,0x00000170,0x0000016f,0x0004007c,0x00000029, + 0x00000171,0x00000170,0x0003003e,0x00000172,0x0000016d,0x0003003e,0x00000173,0x00000171, + 0x00060039,0x00000002,0x00000174,0x00000052,0x00000172,0x00000173,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000054,0x0000000a,0x00060050,0x00000008, + 0x00000055,0x00000054,0x00000054,0x00000054,0x000200fe,0x00000055,0x00010038,0x00050036, + 0x00000008,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8, + 0x00000011,0x0004003b,0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x0000005d, + 0x00000007,0x0004003d,0x00000008,0x00000058,0x0000000f,0x0003003e,0x0000005a,0x00000059, + 0x00050039,0x00000008,0x0000005b,0x0000000b,0x0000005a,0x0003003e,0x0000005d,0x0000005c, + 0x00050039,0x00000008,0x0000005e,0x0000000b,0x0000005d,0x0008000c,0x00000008,0x0000005f, + 0x00000001,0x0000002b,0x00000058,0x0000005b,0x0000005e,0x000200fe,0x0000005f,0x00010038, + 0x00050036,0x00000006,0x00000015,0x00000000,0x00000012,0x00030037,0x00000007,0x00000013, + 0x00030037,0x00000007,0x00000014,0x000200f8,0x00000016,0x0004003d,0x00000006,0x00000062, + 0x00000013,0x0004003d,0x00000006,0x00000063,0x00000014,0x0007000c,0x00000006,0x00000064, + 0x00000001,0x0000001a,0x00000062,0x00000063,0x000200fe,0x00000064,0x00010038,0x00050036, + 0x00000008,0x00000018,0x00000000,0x0000000e,0x00030037,0x0000000d,0x00000017,0x000200f8, + 0x00000019,0x0004003b,0x0000000d,0x00000067,0x00000007,0x0004003b,0x00000007,0x0000006a, + 0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x0000000d,0x00000072, + 0x00000007,0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,0x00000078, + 0x00000007,0x0004003b,0x00000007,0x0000007f,0x00000007,0x0004003d,0x00000008,0x00000068, + 0x00000017,0x0003003e,0x0000006a,0x00000069,0x00050039,0x00000008,0x0000006b,0x0000000b, + 0x0000006a,0x0007000c,0x00000008,0x0000006c,0x00000001,0x0000001a,0x00000068,0x0000006b, + 0x0003003e,0x00000067,0x0000006c,0x0004003d,0x00000008,0x0000006d,0x00000067,0x0003003e, + 0x0000006f,0x0000006e,0x00050039,0x00000008,0x00000070,0x0000000b,0x0000006f,0x00050083, + 0x00000008,0x00000071,0x0000006d,0x00000070,0x0003003e,0x00000072,0x00000071,0x00050039, + 0x00000008,0x00000073,0x00000010,0x00000072,0x0003003e,0x00000075,0x00000074,0x00050039, + 0x00000008,0x00000076,0x0000000b,0x00000075,0x0003003e,0x00000078,0x00000077,0x00050039, + 0x00000008,0x00000079,0x0000000b,0x00000078,0x0004003d,0x00000008,0x0000007a,0x00000067, + 0x00050085,0x00000008,0x0000007b,0x00000079,0x0000007a,0x00050083,0x00000008,0x0000007c, + 0x00000076,0x0000007b,0x00050088,0x00000008,0x0000007d,0x00000073,0x0000007c,0x0003003e, + 0x0000007f,0x0000007e,0x00050039,0x00000008,0x00000080,0x0000000b,0x0000007f,0x0007000c, + 0x00000008,0x00000081,0x00000001,0x0000001a,0x0000007d,0x00000080,0x000200fe,0x00000081, + 0x00010038,0x00050036,0x0000001a,0x0000001c,0x00000000,0x0000001b,0x000200f8,0x0000001d, + 0x00050041,0x00000088,0x00000089,0x00000086,0x00000087,0x0004003d,0x0000001a,0x0000008a, + 0x00000089,0x000200fe,0x0000008a,0x00010038,0x00050036,0x0000001e,0x00000020,0x00000000, + 0x0000001f,0x000200f8,0x00000021,0x00050041,0x0000008e,0x0000008f,0x00000086,0x0000008d, + 0x0004003d,0x0000001e,0x00000090,0x0000008f,0x000200fe,0x00000090,0x00010038,0x00050036, + 0x00000024,0x00000027,0x00000000,0x00000025,0x00030037,0x00000023,0x00000026,0x000200f8, + 0x00000028,0x0004003d,0x00000093,0x00000096,0x00000095,0x0004003d,0x00000022,0x00000097, + 0x00000026,0x0004007c,0x0000002a,0x00000098,0x00000097,0x0007005f,0x00000024,0x0000009a, + 0x00000096,0x00000098,0x00000002,0x00000099,0x000200fe,0x0000009a,0x00010038,0x00050036, + 0x00000002,0x00000030,0x00000000,0x0000002d,0x00030037,0x0000002b,0x0000002e,0x00030037, + 0x0000002c,0x0000002f,0x000200f8,0x00000031,0x0004003d,0x0000009d,0x000000a0,0x0000009f, + 0x0004003d,0x0000002a,0x000000a1,0x0000002e,0x0004003d,0x0000001a,0x000000a2,0x0000002f, + 0x00070050,0x000000a4,0x000000a5,0x000000a2,0x000000a3,0x000000a3,0x000000a3,0x00040063, + 0x000000a0,0x000000a1,0x000000a5,0x000100fd,0x00010038,0x00050036,0x00000006,0x00000034, + 0x00000000,0x00000032,0x00030037,0x00000007,0x00000033,0x000200f8,0x00000035,0x0004003b, + 0x00000007,0x000000a6,0x00000007,0x0004003b,0x00000007,0x000000b2,0x00000007,0x0004003b, + 0x00000007,0x000000b4,0x00000007,0x0003003e,0x000000a6,0x00000059,0x0004003d,0x00000006, + 0x000000a7,0x00000033,0x000500bc,0x000000a9,0x000000aa,0x000000a7,0x000000a8,0x000300f7, + 0x000000ac,0x00000000,0x000400fa,0x000000aa,0x000000ab,0x000000b0,0x000200f8,0x000000ab, + 0x0004003d,0x00000006,0x000000ad,0x00000033,0x00050085,0x00000006,0x000000af,0x000000ad, + 0x000000ae,0x0003003e,0x000000a6,0x000000af,0x000200f9,0x000000ac,0x000200f8,0x000000b0, + 0x0004003d,0x00000006,0x000000b3,0x00000033,0x0003003e,0x000000b2,0x000000b3,0x0003003e, + 0x000000b4,0x000000b1,0x00060039,0x00000006,0x000000b5,0x00000015,0x000000b2,0x000000b4, + 0x00050085,0x00000006,0x000000b7,0x000000b5,0x000000b6,0x00050083,0x00000006,0x000000b9, + 0x000000b7,0x000000b8,0x0003003e,0x000000a6,0x000000b9,0x000200f9,0x000000ac,0x000200f8, + 0x000000ac,0x0004003d,0x00000006,0x000000ba,0x000000a6,0x00050085,0x00000006,0x000000bc, + 0x000000ba,0x000000bb,0x000200fe,0x000000bc,0x00010038,0x00050036,0x00000006,0x00000038, + 0x00000000,0x00000036,0x00030037,0x0000000d,0x00000037,0x000200f8,0x00000039,0x0004003b, + 0x00000007,0x000000bf,0x00000007,0x00050041,0x00000007,0x000000c1,0x00000037,0x000000a3, + 0x0004003d,0x00000006,0x000000c2,0x000000c1,0x00050085,0x00000006,0x000000c3,0x000000c0, + 0x000000c2,0x00050041,0x00000007,0x000000c6,0x00000037,0x000000c5,0x0004003d,0x00000006, + 0x000000c7,0x000000c6,0x00050085,0x00000006,0x000000c8,0x000000c4,0x000000c7,0x00050081, + 0x00000006,0x000000c9,0x000000c3,0x000000c8,0x00050041,0x00000007,0x000000cc,0x00000037, + 0x000000cb,0x0004003d,0x00000006,0x000000cd,0x000000cc,0x00050085,0x00000006,0x000000ce, + 0x000000ca,0x000000cd,0x00050081,0x00000006,0x000000cf,0x000000c9,0x000000ce,0x0003003e, + 0x000000bf,0x000000cf,0x0004003d,0x00000006,0x000000d0,0x000000bf,0x000200fe,0x000000d0, + 0x00010038,0x00050036,0x00000006,0x0000003b,0x00000000,0x00000036,0x00030037,0x0000000d, + 0x0000003a,0x000200f8,0x0000003c,0x0004003b,0x00000007,0x000000d3,0x00000007,0x00050041, + 0x00000007,0x000000d5,0x0000003a,0x000000a3,0x0004003d,0x00000006,0x000000d6,0x000000d5, + 0x00050085,0x00000006,0x000000d7,0x000000d4,0x000000d6,0x00050041,0x00000007,0x000000d9, + 0x0000003a,0x000000c5,0x0004003d,0x00000006,0x000000da,0x000000d9,0x00050085,0x00000006, + 0x000000db,0x000000d8,0x000000da,0x00050081,0x00000006,0x000000dc,0x000000d7,0x000000db, + 0x00050041,0x00000007,0x000000de,0x0000003a,0x000000cb,0x0004003d,0x00000006,0x000000df, + 0x000000de,0x00050085,0x00000006,0x000000e0,0x000000dd,0x000000df,0x00050081,0x00000006, + 0x000000e1,0x000000dc,0x000000e0,0x0003003e,0x000000d3,0x000000e1,0x0004003d,0x00000006, + 0x000000e2,0x000000d3,0x000200fe,0x000000e2,0x00010038,0x00050036,0x00000006,0x00000040, + 0x00000000,0x0000003d,0x00030037,0x0000000d,0x0000003e,0x00030037,0x00000007,0x0000003f, + 0x000200f8,0x00000041,0x0004003b,0x00000007,0x000000e5,0x00000007,0x0004003b,0x0000000d, + 0x000000e6,0x00000007,0x0004003b,0x0000000d,0x000000ed,0x00000007,0x0004003d,0x00000008, + 0x000000e7,0x0000003e,0x0003003e,0x000000e6,0x000000e7,0x00050039,0x00000008,0x000000e8, + 0x00000018,0x000000e6,0x0004003d,0x00000006,0x000000ea,0x0000003f,0x00050088,0x00000006, + 0x000000eb,0x000000e9,0x000000ea,0x0005008e,0x00000008,0x000000ec,0x000000e8,0x000000eb, + 0x0003003e,0x000000ed,0x000000ec,0x00050039,0x00000006,0x000000ee,0x0000003b,0x000000ed, + 0x0003003e,0x000000e5,0x000000ee,0x0004003d,0x00000006,0x000000ef,0x000000e5,0x000200fe, + 0x000000ef,0x00010038,0x00050036,0x00000008,0x00000046,0x00000000,0x00000042,0x00030037, + 0x0000000d,0x00000043,0x00030037,0x00000007,0x00000044,0x00030037,0x00000007,0x00000045, + 0x000200f8,0x00000047,0x0004003b,0x0000000d,0x000000f2,0x00000007,0x0004003b,0x00000007, + 0x000000f7,0x00000007,0x0004003b,0x00000007,0x000000ff,0x00000007,0x0004003d,0x00000008, + 0x000000f3,0x00000043,0x0004003d,0x00000006,0x000000f4,0x00000044,0x00050088,0x00000006, + 0x000000f6,0x000000f4,0x000000f5,0x0003003e,0x000000f7,0x000000f6,0x00050039,0x00000008, + 0x000000f8,0x0000000b,0x000000f7,0x00050083,0x00000008,0x000000f9,0x000000f3,0x000000f8, + 0x0003003e,0x000000f2,0x000000f9,0x0004003d,0x00000008,0x000000fa,0x000000f2,0x0004003d, + 0x00000006,0x000000fb,0x00000045,0x0004003d,0x00000006,0x000000fc,0x00000044,0x00050083, + 0x00000006,0x000000fd,0x000000fb,0x000000fc,0x00050088,0x00000006,0x000000fe,0x000000fd, + 0x000000f5,0x0003003e,0x000000ff,0x000000fe,0x00050039,0x00000008,0x00000100,0x0000000b, + 0x000000ff,0x00050088,0x00000008,0x00000101,0x000000fa,0x00000100,0x000200fe,0x00000101, + 0x00010038,0x00050036,0x00000006,0x0000004c,0x00000000,0x00000048,0x00030037,0x0000000d, + 0x00000049,0x00030037,0x00000007,0x0000004a,0x00030037,0x00000007,0x0000004b,0x000200f8, + 0x0000004d,0x0004003b,0x00000007,0x00000104,0x00000007,0x0004003b,0x0000000d,0x00000105, + 0x00000007,0x0004003b,0x00000007,0x00000107,0x00000007,0x0004003b,0x00000007,0x00000109, + 0x00000007,0x0004003b,0x0000000d,0x0000010c,0x00000007,0x0004003d,0x00000008,0x00000106, + 0x00000049,0x0003003e,0x00000105,0x00000106,0x0004003d,0x00000006,0x00000108,0x0000004a, + 0x0003003e,0x00000107,0x00000108,0x0004003d,0x00000006,0x0000010a,0x0000004b,0x0003003e, + 0x00000109,0x0000010a,0x00070039,0x00000008,0x0000010b,0x00000046,0x00000105,0x00000107, + 0x00000109,0x0003003e,0x0000010c,0x0000010b,0x00050039,0x00000006,0x0000010d,0x00000038, + 0x0000010c,0x0003003e,0x00000104,0x0000010d,0x0004003d,0x00000006,0x0000010e,0x00000104, + 0x000200fe,0x0000010e,0x00010038,0x00050036,0x00000002,0x00000052,0x00000000,0x0000004f, + 0x00030037,0x0000002b,0x00000050,0x00030037,0x0000004e,0x00000051,0x000200f8,0x00000053, + 0x0004003b,0x0000004e,0x00000111,0x00000007,0x0004003b,0x0000004e,0x0000011a,0x00000007, + 0x0004003b,0x0000002b,0x00000122,0x00000007,0x0004003b,0x0000002b,0x0000012a,0x00000007, + 0x0004003b,0x00000007,0x0000012c,0x00000007,0x0004003b,0x0000000d,0x0000012d,0x00000007, + 0x0004003b,0x00000023,0x00000130,0x00000007,0x0004003b,0x0000002c,0x00000133,0x00000007, + 0x0004003b,0x0000000d,0x00000139,0x00000007,0x0004003b,0x0000000d,0x00000142,0x00000007, + 0x0004003b,0x00000007,0x00000144,0x00000007,0x0004003b,0x00000007,0x00000147,0x00000007, + 0x0004003b,0x0000000d,0x00000151,0x00000007,0x0004003b,0x00000007,0x00000153,0x00000007, + 0x0004003b,0x00000007,0x00000155,0x00000007,0x0004003b,0x00000007,0x00000158,0x00000007, + 0x0004003b,0x0000002b,0x0000015f,0x00000007,0x0004003b,0x0000002c,0x00000161,0x00000007, + 0x0003003e,0x00000111,0x00000099,0x000200f9,0x00000112,0x000200f8,0x00000112,0x000400f6, + 0x00000114,0x00000115,0x00000000,0x000200f9,0x00000116,0x000200f8,0x00000116,0x0004003d, + 0x00000029,0x00000117,0x00000111,0x000500b1,0x000000a9,0x00000119,0x00000117,0x00000118, + 0x000400fa,0x00000119,0x00000113,0x00000114,0x000200f8,0x00000113,0x0003003e,0x0000011a, + 0x00000099,0x000200f9,0x0000011b,0x000200f8,0x0000011b,0x000400f6,0x0000011d,0x0000011e, + 0x00000000,0x000200f9,0x0000011f,0x000200f8,0x0000011f,0x0004003d,0x00000029,0x00000120, + 0x0000011a,0x000500b1,0x000000a9,0x00000121,0x00000120,0x00000118,0x000400fa,0x00000121, + 0x0000011c,0x0000011d,0x000200f8,0x0000011c,0x0004003d,0x0000002a,0x00000123,0x00000050, + 0x00050084,0x0000002a,0x00000125,0x00000123,0x00000124,0x0004003d,0x00000029,0x00000126, + 0x0000011a,0x0004003d,0x00000029,0x00000127,0x00000111,0x00050050,0x0000002a,0x00000128, + 0x00000126,0x00000127,0x00050080,0x0000002a,0x00000129,0x00000125,0x00000128,0x0003003e, + 0x00000122,0x00000129,0x0004003d,0x0000002a,0x0000012b,0x00000122,0x0003003e,0x0000012a, + 0x0000012b,0x0003003e,0x0000012c,0x00000059,0x0004003d,0x0000002a,0x0000012e,0x0000012a, + 0x0004007c,0x00000022,0x0000012f,0x0000012e,0x0003003e,0x00000130,0x0000012f,0x00050039, + 0x00000024,0x00000131,0x00000027,0x00000130,0x0008004f,0x00000008,0x00000132,0x00000131, + 0x00000131,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000012d,0x00000132,0x00040039, + 0x0000001a,0x00000134,0x0000001c,0x0003003e,0x00000133,0x00000134,0x0004003d,0x0000001a, + 0x00000135,0x00000133,0x000500aa,0x000000a9,0x00000136,0x00000135,0x000000a3,0x000300f7, + 0x00000138,0x00000000,0x000400fa,0x00000136,0x00000137,0x0000013c,0x000200f8,0x00000137, + 0x0004003d,0x00000008,0x0000013a,0x0000012d,0x0003003e,0x00000139,0x0000013a,0x00050039, + 0x00000006,0x0000013b,0x00000038,0x00000139,0x0003003e,0x0000012c,0x0000013b,0x000200f9, + 0x00000138,0x000200f8,0x0000013c,0x0004003d,0x0000001a,0x0000013d,0x00000133,0x000500aa, + 0x000000a9,0x0000013e,0x0000013d,0x000000c5,0x000300f7,0x00000140,0x00000000,0x000400fa, + 0x0000013e,0x0000013f,0x0000014a,0x000200f8,0x0000013f,0x00040039,0x0000001e,0x00000141, + 0x00000020,0x0004003d,0x00000008,0x00000143,0x0000012d,0x0003003e,0x00000142,0x00000143, + 0x00050051,0x00000006,0x00000145,0x00000141,0x00000001,0x0003003e,0x00000144,0x00000145, + 0x00060039,0x00000006,0x00000146,0x00000040,0x00000142,0x00000144,0x0003003e,0x0000012c, + 0x00000146,0x0004003d,0x00000006,0x00000148,0x0000012c,0x0003003e,0x00000147,0x00000148, + 0x00050039,0x00000006,0x00000149,0x00000034,0x00000147,0x0003003e,0x0000012c,0x00000149, + 0x000200f9,0x00000140,0x000200f8,0x0000014a,0x0004003d,0x0000001a,0x0000014b,0x00000133, + 0x000500aa,0x000000a9,0x0000014c,0x0000014b,0x000000cb,0x000300f7,0x0000014e,0x00000000, + 0x000400fa,0x0000014c,0x0000014d,0x0000014e,0x000200f8,0x0000014d,0x00040039,0x0000001e, + 0x0000014f,0x00000020,0x00040039,0x0000001e,0x00000150,0x00000020,0x0004003d,0x00000008, + 0x00000152,0x0000012d,0x0003003e,0x00000151,0x00000152,0x00050051,0x00000006,0x00000154, + 0x0000014f,0x00000000,0x0003003e,0x00000153,0x00000154,0x00050051,0x00000006,0x00000156, + 0x00000150,0x00000001,0x0003003e,0x00000155,0x00000156,0x00070039,0x00000006,0x00000157, + 0x0000004c,0x00000151,0x00000153,0x00000155,0x0003003e,0x0000012c,0x00000157,0x0004003d, + 0x00000006,0x00000159,0x0000012c,0x0003003e,0x00000158,0x00000159,0x00050039,0x00000006, + 0x0000015a,0x00000034,0x00000158,0x0003003e,0x0000012c,0x0000015a,0x000200f9,0x0000014e, + 0x000200f8,0x0000014e,0x000200f9,0x00000140,0x000200f8,0x00000140,0x000200f9,0x00000138, + 0x000200f8,0x00000138,0x0004003d,0x00000006,0x0000015b,0x0000012c,0x00050085,0x00000006, + 0x0000015d,0x0000015b,0x0000015c,0x0004006d,0x0000001a,0x0000015e,0x0000015d,0x0004003d, + 0x0000002a,0x00000160,0x00000122,0x0003003e,0x0000015f,0x00000160,0x0003003e,0x00000161, + 0x0000015e,0x00060039,0x00000002,0x00000162,0x00000030,0x0000015f,0x00000161,0x000200f9, + 0x0000011e,0x000200f8,0x0000011e,0x0004003d,0x00000029,0x00000163,0x0000011a,0x00050080, + 0x00000029,0x00000165,0x00000163,0x00000164,0x0003003e,0x0000011a,0x00000165,0x000200f9, + 0x0000011b,0x000200f8,0x0000011d,0x000200f9,0x00000115,0x000200f8,0x00000115,0x0004003d, + 0x00000029,0x00000166,0x00000111,0x00050080,0x00000029,0x00000167,0x00000166,0x00000164, + 0x0003003e,0x00000111,0x00000167,0x000200f9,0x00000112,0x000200f8,0x00000114,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h b/gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h new file mode 100644 index 000000000..dcd4c90e7 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h @@ -0,0 +1,522 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_SCALE_OPTICAL_FLOW_V5_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000002a7,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000029a, + 0x0000029d,0x00060010,0x00000004,0x00000011,0x00000004,0x00000004,0x00000004,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b, + 0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000009,0x00000078,0x00030005, + 0x0000000a,0x00000079,0x00060005,0x0000000f,0x4d786666,0x69287861,0x31693b31,0x0000003b, + 0x00030005,0x0000000d,0x00000078,0x00030005,0x0000000e,0x00000079,0x000b0005,0x0000001a, + 0x50746547,0x656b6361,0x6d754c64,0x31692861,0x3b31693b,0x753b3175,0x31753b31,0x3b31753b, + 0x00000000,0x00040005,0x00000014,0x74646977,0x00000068,0x00030005,0x00000015,0x00000078, + 0x00040005,0x00000016,0x616d756c,0x00000030,0x00040005,0x00000017,0x616d756c,0x00000031, + 0x00040005,0x00000018,0x616d756c,0x00000032,0x00040005,0x00000019,0x616d756c,0x00000033, + 0x00050005,0x0000001f,0x28646153,0x753b3175,0x00003b31,0x00030005,0x0000001d,0x00000061, + 0x00030005,0x0000001e,0x00000062,0x00060005,0x00000023,0x70736944,0x5379616c,0x28657a69, + 0x00000000,0x00050005,0x00000026,0x6d617246,0x646e4965,0x00287865,0x00090005,0x00000028, + 0x6974704f,0x466c6163,0x50776f6c,0x6d617279,0x654c6469,0x286c6576,0x00000000,0x00090005, + 0x0000002d,0x64616f4c,0x6974704f,0x466c6163,0x49776f6c,0x7475706e,0x32697628,0x0000003b, + 0x00040005,0x0000002c,0x50785069,0x0000736f,0x000b0005,0x00000030,0x64616f4c,0x6974704f, + 0x466c6163,0x50776f6c,0x69766572,0x4973756f,0x7475706e,0x32697628,0x0000003b,0x00040005, + 0x0000002f,0x50785069,0x0000736f,0x00080005,0x00000034,0x64616f4c,0x6974704f,0x466c6163, + 0x28776f6c,0x3b326976,0x00000000,0x00040005,0x00000033,0x50785069,0x0000736f,0x000b0005, + 0x00000039,0x726f7453,0x74704f65,0x6c616369,0x776f6c46,0x7478654e,0x6576654c,0x6976286c, + 0x69763b32,0x00003b32,0x00040005,0x00000037,0x50785069,0x0000736f,0x00060005,0x00000038, + 0x69746f6d,0x65566e6f,0x726f7463,0x00000000,0x00070005,0x0000003d,0x64616f4c,0x43537752, + 0x74754f44,0x28747570,0x003b3169,0x00040005,0x0000003c,0x646e4969,0x00007865,0x00060005, + 0x00000041,0x63537349,0x43656e65,0x676e6168,0x00286465,0x000a0005,0x00000044,0x64616f4c, + 0x73726946,0x616d4974,0x61506567,0x64656b63,0x616d754c,0x32697628,0x0000003b,0x00040005, + 0x00000043,0x50785069,0x0000736f,0x000a0005,0x00000047,0x64616f4c,0x6f636553,0x6d49646e, + 0x50656761,0x656b6361,0x6d754c64,0x69762861,0x00003b32,0x00040005,0x00000046,0x50785069, + 0x0000736f,0x000b0005,0x0000004e,0x6c616353,0x74704f65,0x6c616369,0x776f6c46,0x61766441, + 0x6465636e,0x33697628,0x3369763b,0x0000003b,0x00050005,0x0000004c,0x6f6c4769,0x496c6162, + 0x00000064,0x00050005,0x0000004d,0x636f4c69,0x64496c61,0x00000000,0x00050005,0x0000005a, + 0x6b636170,0x754c6465,0x0000616d,0x00070005,0x0000006d,0x4f74756f,0x72635366,0x466e6565, + 0x656c6c69,0x00000072,0x00070005,0x00000094,0x4f74756f,0x72635366,0x466e6565,0x656c6c69, + 0x00000072,0x00040005,0x000000ec,0x464f6263,0x0000745f,0x00090006,0x000000ec,0x00000000, + 0x706e4969,0x754c7475,0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x000000ec, + 0x00000001,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000, + 0x000b0006,0x000000ec,0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d, + 0x6c657665,0x6e756f43,0x00000074,0x00060006,0x000000ec,0x00000003,0x61724669,0x6e49656d, + 0x00786564,0x000a0006,0x000000ec,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000000ec,0x00000005,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00040005,0x000000ee,0x464f6263,0x00000000,0x00080005,0x000000ff, + 0x706f5f72,0x61636974,0x6c665f6c,0x695f776f,0x7475706e,0x00000000,0x000a0005,0x00000108, + 0x706f5f72,0x61636974,0x6c665f6c,0x705f776f,0x69766572,0x5f73756f,0x75706e69,0x00000074, + 0x00060005,0x00000111,0x706f5f72,0x61636974,0x6c665f6c,0x0000776f,0x00090005,0x0000011b, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x7478656e,0x76656c5f,0x00006c65,0x00090005, + 0x00000124,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x5f646373,0x7074756f,0x00007475, + 0x00040005,0x00000134,0x61726170,0x0000006d,0x00070005,0x0000013b,0x616d756c,0x74786554, + 0x57657275,0x68746469,0x00000000,0x00070005,0x00000140,0x616d756c,0x74786554,0x48657275, + 0x68676965,0x00000074,0x00050005,0x00000146,0x756a6461,0x64657473,0x00736f50,0x00040005, + 0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005, + 0x0000014e,0x61726170,0x0000006d,0x00040005,0x0000014f,0x61726170,0x0000006d,0x00040005, + 0x00000153,0x61726170,0x0000006d,0x00040005,0x00000154,0x61726170,0x0000006d,0x00040005, + 0x00000158,0x61726170,0x0000006d,0x00040005,0x00000159,0x61726170,0x0000006d,0x00040005, + 0x0000015c,0x616d756c,0x00000030,0x00040005,0x00000160,0x61726170,0x0000006d,0x00040005, + 0x00000162,0x616d756c,0x00000031,0x00040005,0x00000166,0x61726170,0x0000006d,0x00040005, + 0x00000168,0x616d756c,0x00000032,0x00040005,0x0000016c,0x61726170,0x0000006d,0x00040005, + 0x0000016e,0x616d756c,0x00000033,0x00040005,0x00000172,0x61726170,0x0000006d,0x00040005, + 0x00000174,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005, + 0x00000179,0x61726170,0x0000006d,0x00040005,0x0000017b,0x61726170,0x0000006d,0x00040005, + 0x0000017d,0x61726170,0x0000006d,0x00040005,0x0000017f,0x61726170,0x0000006d,0x00070005, + 0x00000184,0x616d756c,0x74786554,0x57657275,0x68746469,0x00000000,0x00070005,0x00000189, + 0x616d756c,0x74786554,0x48657275,0x68676965,0x00000074,0x00050005,0x0000018e,0x756a6461, + 0x64657473,0x00736f50,0x00040005,0x00000191,0x61726170,0x0000006d,0x00040005,0x00000192, + 0x61726170,0x0000006d,0x00040005,0x00000196,0x61726170,0x0000006d,0x00040005,0x00000197, + 0x61726170,0x0000006d,0x00040005,0x0000019b,0x61726170,0x0000006d,0x00040005,0x0000019c, + 0x61726170,0x0000006d,0x00040005,0x000001a0,0x61726170,0x0000006d,0x00040005,0x000001a1, + 0x61726170,0x0000006d,0x00040005,0x000001a4,0x616d756c,0x00000030,0x00040005,0x000001a7, + 0x61726170,0x0000006d,0x00040005,0x000001a9,0x616d756c,0x00000031,0x00040005,0x000001ac, + 0x61726170,0x0000006d,0x00040005,0x000001ae,0x616d756c,0x00000032,0x00040005,0x000001b1, + 0x61726170,0x0000006d,0x00040005,0x000001b3,0x616d756c,0x00000033,0x00040005,0x000001b6, + 0x61726170,0x0000006d,0x00040005,0x000001b8,0x61726170,0x0000006d,0x00040005,0x000001ba, + 0x61726170,0x0000006d,0x00040005,0x000001bd,0x61726170,0x0000006d,0x00040005,0x000001bf, + 0x61726170,0x0000006d,0x00040005,0x000001c1,0x61726170,0x0000006d,0x00040005,0x000001c3, + 0x61726170,0x0000006d,0x00040005,0x000001cb,0x61726170,0x0000006d,0x00040005,0x000001ce, + 0x61726170,0x0000006d,0x00040005,0x000001d1,0x66664f78,0x00746573,0x00040005,0x000001db, + 0x66664f79,0x00746573,0x00050005,0x000001e4,0x4f637273,0x736f5046,0x00000000,0x00060005, + 0x000001f0,0x7261656e,0x56747365,0x6f746365,0x00000072,0x00040005,0x000001f1,0x61726170, + 0x0000006d,0x00060005,0x000001f9,0x7261656e,0x56747365,0x6f746365,0x00007372,0x00040005, + 0x00000205,0x5978616d,0x00000000,0x00030005,0x00000206,0x0000006e,0x00040005,0x00000211, + 0x616d756c,0x00736f50,0x00050005,0x0000021c,0x73726966,0x78695074,0x00006c65,0x00040005, + 0x0000021d,0x61726170,0x0000006d,0x00050005,0x00000224,0x61636f6c,0x6765526c,0x006e6f69, + 0x00030005,0x00000231,0x00646173,0x00030005,0x00000232,0x0000006e,0x00040005,0x0000023b, + 0x616d756c,0x00736f50,0x00050005,0x00000248,0x6f636573,0x6950646e,0x006c6578,0x00040005, + 0x00000249,0x61726170,0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005, + 0x00000254,0x61726170,0x0000006d,0x00040005,0x0000025b,0x73646173,0x00000000,0x00040005, + 0x00000269,0x74736562,0x00646153,0x00040005,0x0000026b,0x74736562,0x00006449,0x00030005, + 0x0000026c,0x0000006e,0x00060005,0x0000028a,0x7074756f,0x65567475,0x726f7463,0x00000000, + 0x00040005,0x00000292,0x61726170,0x0000006d,0x00040005,0x00000295,0x61726170,0x0000006d, + 0x00080005,0x0000029a,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044, + 0x00080005,0x0000029d,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000, + 0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005,0x000002a1,0x61726170,0x0000006d, + 0x00030047,0x000000ec,0x00000002,0x00050048,0x000000ec,0x00000000,0x00000023,0x00000000, + 0x00050048,0x000000ec,0x00000001,0x00000023,0x00000008,0x00050048,0x000000ec,0x00000002, + 0x00000023,0x0000000c,0x00050048,0x000000ec,0x00000003,0x00000023,0x00000010,0x00050048, + 0x000000ec,0x00000004,0x00000023,0x00000014,0x00050048,0x000000ec,0x00000005,0x00000023, + 0x00000018,0x00040047,0x000000ee,0x00000021,0x00000005,0x00040047,0x000000ee,0x00000022, + 0x00000000,0x00040047,0x000000ff,0x00000021,0x00000000,0x00040047,0x000000ff,0x00000022, + 0x00000000,0x00040047,0x00000108,0x00000021,0x00000001,0x00040047,0x00000108,0x00000022, + 0x00000000,0x00040047,0x00000111,0x00000021,0x00000002,0x00040047,0x00000111,0x00000022, + 0x00000000,0x00040047,0x0000011b,0x00000021,0x00000003,0x00040047,0x0000011b,0x00000022, + 0x00000000,0x00040047,0x00000124,0x00000021,0x00000004,0x00040047,0x00000124,0x00000022, + 0x00000000,0x00040047,0x0000029a,0x0000000b,0x0000001c,0x00040047,0x0000029d,0x0000000b, + 0x0000001b,0x00040047,0x000002a6,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00050021,0x00000008,0x00000006,0x00000007,0x00000007,0x00040015, + 0x00000011,0x00000020,0x00000000,0x00040020,0x00000012,0x00000007,0x00000011,0x00090021, + 0x00000013,0x00000011,0x00000007,0x00000007,0x00000012,0x00000012,0x00000012,0x00000012, + 0x00050021,0x0000001c,0x00000011,0x00000012,0x00000012,0x00040017,0x00000021,0x00000006, + 0x00000002,0x00030021,0x00000022,0x00000021,0x00030021,0x00000025,0x00000011,0x00040020, + 0x0000002a,0x00000007,0x00000021,0x00040021,0x0000002b,0x00000011,0x0000002a,0x00040021, + 0x00000032,0x00000021,0x0000002a,0x00050021,0x00000036,0x00000002,0x0000002a,0x0000002a, + 0x00040021,0x0000003b,0x00000011,0x00000007,0x00020014,0x0000003f,0x00030021,0x00000040, + 0x0000003f,0x00040017,0x00000049,0x00000006,0x00000003,0x00040020,0x0000004a,0x00000007, + 0x00000049,0x00050021,0x0000004b,0x00000002,0x0000004a,0x0000004a,0x0004002b,0x00000006, + 0x0000005d,0x00000008,0x0004002b,0x00000006,0x00000061,0x00000010,0x0004002b,0x00000006, + 0x00000065,0x00000018,0x0004002b,0x00000006,0x00000069,0x00000000,0x0004002b,0x00000011, + 0x0000006f,0x000000ff,0x0004002b,0x00000006,0x00000072,0xffffffff,0x0004002b,0x00000006, + 0x0000007b,0xfffffffe,0x0004002b,0x00000006,0x00000084,0xfffffffd,0x0004002b,0x00000006, + 0x0000008f,0x00000004,0x0004002b,0x00000011,0x00000096,0xff000000,0x0004002b,0x00000006, + 0x0000009a,0x00000003,0x0004002b,0x00000006,0x000000a5,0x00000002,0x0004002b,0x00000006, + 0x000000b0,0x00000001,0x00030016,0x000000ea,0x00000020,0x00040017,0x000000eb,0x000000ea, + 0x00000002,0x0008001e,0x000000ec,0x00000021,0x00000011,0x00000011,0x00000011,0x00000011, + 0x000000eb,0x00040020,0x000000ed,0x00000002,0x000000ec,0x0004003b,0x000000ed,0x000000ee, + 0x00000002,0x00040020,0x000000ef,0x00000002,0x00000021,0x00040020,0x000000f4,0x00000002, + 0x00000011,0x00090019,0x000000fd,0x00000011,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x000000fe,0x00000000,0x000000fd,0x0004003b,0x000000fe, + 0x000000ff,0x00000000,0x00040017,0x00000102,0x00000011,0x00000004,0x0004002b,0x00000011, + 0x00000104,0x00000000,0x0004003b,0x000000fe,0x00000108,0x00000000,0x00090019,0x0000010f, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000110,0x00000000,0x0000010f,0x0004003b,0x00000110,0x00000111,0x00000000,0x00040017, + 0x00000114,0x00000006,0x00000004,0x00090019,0x00000119,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x0000001a,0x00040020,0x0000011a,0x00000000,0x00000119, + 0x0004003b,0x0000011a,0x0000011b,0x00000000,0x00090019,0x00000122,0x00000011,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000123,0x00000000, + 0x00000122,0x0004003b,0x00000123,0x00000124,0x00000000,0x0004002b,0x00000011,0x0000012d, + 0x00000005,0x00030029,0x0000003f,0x00000131,0x0004002b,0x00000011,0x00000136,0x0000000f, + 0x0004002b,0x00000011,0x00000142,0x00000001,0x0005002c,0x00000021,0x0000015e,0x00000069, + 0x00000069,0x0005002c,0x00000021,0x00000164,0x000000b0,0x00000069,0x0005002c,0x00000021, + 0x0000016a,0x000000a5,0x00000069,0x0005002c,0x00000021,0x00000170,0x0000009a,0x00000069, + 0x0004002b,0x00000011,0x000001d2,0x00000002,0x0004002b,0x00000011,0x000001f4,0x00000004, + 0x0004001c,0x000001f5,0x00000021,0x000001f4,0x0004001c,0x000001f6,0x000001f5,0x000001f4, + 0x0004001c,0x000001f7,0x000001f6,0x000001f4,0x00040020,0x000001f8,0x00000004,0x000001f7, + 0x0004003b,0x000001f8,0x000001f9,0x00000004,0x00040020,0x00000203,0x00000004,0x00000021, + 0x0004001c,0x00000220,0x00000011,0x000001f4,0x0004001c,0x00000221,0x00000220,0x000001f4, + 0x0004001c,0x00000222,0x00000221,0x000001f4,0x00040020,0x00000223,0x00000004,0x00000222, + 0x0004003b,0x00000223,0x00000224,0x00000004,0x00040020,0x0000022b,0x00000004,0x00000011, + 0x0004002b,0x00000011,0x0000022f,0x00000d48,0x0004002b,0x00000011,0x00000230,0x00000108, + 0x0004003b,0x00000223,0x0000025b,0x00000004,0x0004002b,0x00000011,0x0000026a,0xffffffff, + 0x00040017,0x00000298,0x00000011,0x00000003,0x00040020,0x00000299,0x00000001,0x00000298, + 0x0004003b,0x00000299,0x0000029a,0x00000001,0x0004003b,0x00000299,0x0000029d,0x00000001, + 0x0004002b,0x000000ea,0x000002a3,0x387fda40,0x0004002b,0x000000ea,0x000002a4,0x477fe000, + 0x0004002b,0x000000ea,0x000002a5,0x37801002,0x0006002c,0x00000298,0x000002a6,0x000001f4, + 0x000001f4,0x000001f4,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x0000004a,0x000002a0,0x00000007,0x0004003b,0x0000004a,0x000002a1, + 0x00000007,0x0004003d,0x00000298,0x0000029b,0x0000029a,0x0004007c,0x00000049,0x0000029c, + 0x0000029b,0x0004003d,0x00000298,0x0000029e,0x0000029d,0x0004007c,0x00000049,0x0000029f, + 0x0000029e,0x0003003e,0x000002a0,0x0000029c,0x0003003e,0x000002a1,0x0000029f,0x00060039, + 0x00000002,0x000002a2,0x0000004e,0x000002a0,0x000002a1,0x000100fd,0x00010038,0x00050036, + 0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037, + 0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000050,0x00000009, + 0x0004003d,0x00000006,0x00000051,0x0000000a,0x0007000c,0x00000006,0x00000052,0x00000001, + 0x00000027,0x00000050,0x00000051,0x000200fe,0x00000052,0x00010038,0x00050036,0x00000006, + 0x0000000f,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007, + 0x0000000e,0x000200f8,0x00000010,0x0004003d,0x00000006,0x00000055,0x0000000d,0x0004003d, + 0x00000006,0x00000056,0x0000000e,0x0007000c,0x00000006,0x00000057,0x00000001,0x0000002a, + 0x00000055,0x00000056,0x000200fe,0x00000057,0x00010038,0x00050036,0x00000011,0x0000001a, + 0x00000000,0x00000013,0x00030037,0x00000007,0x00000014,0x00030037,0x00000007,0x00000015, + 0x00030037,0x00000012,0x00000016,0x00030037,0x00000012,0x00000017,0x00030037,0x00000012, + 0x00000018,0x00030037,0x00000012,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x00000012, + 0x0000005a,0x00000007,0x0004003b,0x00000012,0x0000006d,0x00000007,0x0004003b,0x00000012, + 0x00000094,0x00000007,0x0004003d,0x00000011,0x0000005b,0x00000016,0x0004003d,0x00000011, + 0x0000005c,0x00000017,0x000500c4,0x00000011,0x0000005e,0x0000005c,0x0000005d,0x000500c5, + 0x00000011,0x0000005f,0x0000005b,0x0000005e,0x0004003d,0x00000011,0x00000060,0x00000018, + 0x000500c4,0x00000011,0x00000062,0x00000060,0x00000061,0x000500c5,0x00000011,0x00000063, + 0x0000005f,0x00000062,0x0004003d,0x00000011,0x00000064,0x00000019,0x000500c4,0x00000011, + 0x00000066,0x00000064,0x00000065,0x000500c5,0x00000011,0x00000067,0x00000063,0x00000066, + 0x0003003e,0x0000005a,0x00000067,0x0004003d,0x00000006,0x00000068,0x00000015,0x000500b1, + 0x0000003f,0x0000006a,0x00000068,0x00000069,0x000300f7,0x0000006c,0x00000000,0x000400fa, + 0x0000006a,0x0000006b,0x0000008c,0x000200f8,0x0000006b,0x0004003d,0x00000011,0x0000006e, + 0x0000005a,0x000500c7,0x00000011,0x00000070,0x0000006e,0x0000006f,0x0003003e,0x0000006d, + 0x00000070,0x0004003d,0x00000006,0x00000071,0x00000015,0x000500b3,0x0000003f,0x00000073, + 0x00000071,0x00000072,0x000300f7,0x00000075,0x00000000,0x000400fa,0x00000073,0x00000074, + 0x00000075,0x000200f8,0x00000074,0x0004003d,0x00000011,0x00000076,0x0000005a,0x000500c4, + 0x00000011,0x00000077,0x00000076,0x0000005d,0x0004003d,0x00000011,0x00000078,0x0000006d, + 0x000500c5,0x00000011,0x00000079,0x00000077,0x00000078,0x0003003e,0x0000005a,0x00000079, + 0x000200f9,0x00000075,0x000200f8,0x00000075,0x0004003d,0x00000006,0x0000007a,0x00000015, + 0x000500b3,0x0000003f,0x0000007c,0x0000007a,0x0000007b,0x000300f7,0x0000007e,0x00000000, + 0x000400fa,0x0000007c,0x0000007d,0x0000007e,0x000200f8,0x0000007d,0x0004003d,0x00000011, + 0x0000007f,0x0000005a,0x000500c4,0x00000011,0x00000080,0x0000007f,0x0000005d,0x0004003d, + 0x00000011,0x00000081,0x0000006d,0x000500c5,0x00000011,0x00000082,0x00000080,0x00000081, + 0x0003003e,0x0000005a,0x00000082,0x000200f9,0x0000007e,0x000200f8,0x0000007e,0x0004003d, + 0x00000006,0x00000083,0x00000015,0x000500b3,0x0000003f,0x00000085,0x00000083,0x00000084, + 0x000300f7,0x00000087,0x00000000,0x000400fa,0x00000085,0x00000086,0x00000087,0x000200f8, + 0x00000086,0x0004003d,0x00000011,0x00000088,0x0000005a,0x000500c4,0x00000011,0x00000089, + 0x00000088,0x0000005d,0x0004003d,0x00000011,0x0000008a,0x0000006d,0x000500c5,0x00000011, + 0x0000008b,0x00000089,0x0000008a,0x0003003e,0x0000005a,0x0000008b,0x000200f9,0x00000087, + 0x000200f8,0x00000087,0x000200f9,0x0000006c,0x000200f8,0x0000008c,0x0004003d,0x00000006, + 0x0000008d,0x00000015,0x0004003d,0x00000006,0x0000008e,0x00000014,0x00050082,0x00000006, + 0x00000090,0x0000008e,0x0000008f,0x000500ad,0x0000003f,0x00000091,0x0000008d,0x00000090, + 0x000300f7,0x00000093,0x00000000,0x000400fa,0x00000091,0x00000092,0x00000093,0x000200f8, + 0x00000092,0x0004003d,0x00000011,0x00000095,0x0000005a,0x000500c7,0x00000011,0x00000097, + 0x00000095,0x00000096,0x0003003e,0x00000094,0x00000097,0x0004003d,0x00000006,0x00000098, + 0x00000015,0x0004003d,0x00000006,0x00000099,0x00000014,0x00050082,0x00000006,0x0000009b, + 0x00000099,0x0000009a,0x000500af,0x0000003f,0x0000009c,0x00000098,0x0000009b,0x000300f7, + 0x0000009e,0x00000000,0x000400fa,0x0000009c,0x0000009d,0x0000009e,0x000200f8,0x0000009d, + 0x0004003d,0x00000011,0x0000009f,0x0000005a,0x000500c2,0x00000011,0x000000a0,0x0000009f, + 0x0000005d,0x0004003d,0x00000011,0x000000a1,0x00000094,0x000500c5,0x00000011,0x000000a2, + 0x000000a0,0x000000a1,0x0003003e,0x0000005a,0x000000a2,0x000200f9,0x0000009e,0x000200f8, + 0x0000009e,0x0004003d,0x00000006,0x000000a3,0x00000015,0x0004003d,0x00000006,0x000000a4, + 0x00000014,0x00050082,0x00000006,0x000000a6,0x000000a4,0x000000a5,0x000500af,0x0000003f, + 0x000000a7,0x000000a3,0x000000a6,0x000300f7,0x000000a9,0x00000000,0x000400fa,0x000000a7, + 0x000000a8,0x000000a9,0x000200f8,0x000000a8,0x0004003d,0x00000011,0x000000aa,0x0000005a, + 0x000500c2,0x00000011,0x000000ab,0x000000aa,0x0000005d,0x0004003d,0x00000011,0x000000ac, + 0x00000094,0x000500c5,0x00000011,0x000000ad,0x000000ab,0x000000ac,0x0003003e,0x0000005a, + 0x000000ad,0x000200f9,0x000000a9,0x000200f8,0x000000a9,0x0004003d,0x00000006,0x000000ae, + 0x00000015,0x0004003d,0x00000006,0x000000af,0x00000014,0x00050082,0x00000006,0x000000b1, + 0x000000af,0x000000b0,0x000500af,0x0000003f,0x000000b2,0x000000ae,0x000000b1,0x000300f7, + 0x000000b4,0x00000000,0x000400fa,0x000000b2,0x000000b3,0x000000b4,0x000200f8,0x000000b3, + 0x0004003d,0x00000011,0x000000b5,0x0000005a,0x000500c2,0x00000011,0x000000b6,0x000000b5, + 0x0000005d,0x0004003d,0x00000011,0x000000b7,0x00000094,0x000500c5,0x00000011,0x000000b8, + 0x000000b6,0x000000b7,0x0003003e,0x0000005a,0x000000b8,0x000200f9,0x000000b4,0x000200f8, + 0x000000b4,0x000200f9,0x00000093,0x000200f8,0x00000093,0x000200f9,0x0000006c,0x000200f8, + 0x0000006c,0x0004003d,0x00000011,0x000000b9,0x0000005a,0x000200fe,0x000000b9,0x00010038, + 0x00050036,0x00000011,0x0000001f,0x00000000,0x0000001c,0x00030037,0x00000012,0x0000001d, + 0x00030037,0x00000012,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000011,0x000000bc, + 0x0000001d,0x000500c2,0x00000011,0x000000bd,0x000000bc,0x00000069,0x000500c7,0x00000011, + 0x000000be,0x000000bd,0x0000006f,0x0004007c,0x00000006,0x000000bf,0x000000be,0x0004003d, + 0x00000011,0x000000c0,0x0000001e,0x000500c2,0x00000011,0x000000c1,0x000000c0,0x00000069, + 0x000500c7,0x00000011,0x000000c2,0x000000c1,0x0000006f,0x0004007c,0x00000006,0x000000c3, + 0x000000c2,0x00050082,0x00000006,0x000000c4,0x000000bf,0x000000c3,0x0006000c,0x00000006, + 0x000000c5,0x00000001,0x00000005,0x000000c4,0x0004003d,0x00000011,0x000000c6,0x0000001d, + 0x000500c2,0x00000011,0x000000c7,0x000000c6,0x0000005d,0x000500c7,0x00000011,0x000000c8, + 0x000000c7,0x0000006f,0x0004007c,0x00000006,0x000000c9,0x000000c8,0x0004003d,0x00000011, + 0x000000ca,0x0000001e,0x000500c2,0x00000011,0x000000cb,0x000000ca,0x0000005d,0x000500c7, + 0x00000011,0x000000cc,0x000000cb,0x0000006f,0x0004007c,0x00000006,0x000000cd,0x000000cc, + 0x00050082,0x00000006,0x000000ce,0x000000c9,0x000000cd,0x0006000c,0x00000006,0x000000cf, + 0x00000001,0x00000005,0x000000ce,0x00050080,0x00000006,0x000000d0,0x000000c5,0x000000cf, + 0x0004003d,0x00000011,0x000000d1,0x0000001d,0x000500c2,0x00000011,0x000000d2,0x000000d1, + 0x00000061,0x000500c7,0x00000011,0x000000d3,0x000000d2,0x0000006f,0x0004007c,0x00000006, + 0x000000d4,0x000000d3,0x0004003d,0x00000011,0x000000d5,0x0000001e,0x000500c2,0x00000011, + 0x000000d6,0x000000d5,0x00000061,0x000500c7,0x00000011,0x000000d7,0x000000d6,0x0000006f, + 0x0004007c,0x00000006,0x000000d8,0x000000d7,0x00050082,0x00000006,0x000000d9,0x000000d4, + 0x000000d8,0x0006000c,0x00000006,0x000000da,0x00000001,0x00000005,0x000000d9,0x00050080, + 0x00000006,0x000000db,0x000000d0,0x000000da,0x0004003d,0x00000011,0x000000dc,0x0000001d, + 0x000500c2,0x00000011,0x000000dd,0x000000dc,0x00000065,0x000500c7,0x00000011,0x000000de, + 0x000000dd,0x0000006f,0x0004007c,0x00000006,0x000000df,0x000000de,0x0004003d,0x00000011, + 0x000000e0,0x0000001e,0x000500c2,0x00000011,0x000000e1,0x000000e0,0x00000065,0x000500c7, + 0x00000011,0x000000e2,0x000000e1,0x0000006f,0x0004007c,0x00000006,0x000000e3,0x000000e2, + 0x00050082,0x00000006,0x000000e4,0x000000df,0x000000e3,0x0006000c,0x00000006,0x000000e5, + 0x00000001,0x00000005,0x000000e4,0x00050080,0x00000006,0x000000e6,0x000000db,0x000000e5, + 0x0004007c,0x00000011,0x000000e7,0x000000e6,0x000200fe,0x000000e7,0x00010038,0x00050036, + 0x00000021,0x00000023,0x00000000,0x00000022,0x000200f8,0x00000024,0x00050041,0x000000ef, + 0x000000f0,0x000000ee,0x00000069,0x0004003d,0x00000021,0x000000f1,0x000000f0,0x000200fe, + 0x000000f1,0x00010038,0x00050036,0x00000011,0x00000026,0x00000000,0x00000025,0x000200f8, + 0x00000027,0x00050041,0x000000f4,0x000000f5,0x000000ee,0x0000009a,0x0004003d,0x00000011, + 0x000000f6,0x000000f5,0x000200fe,0x000000f6,0x00010038,0x00050036,0x00000011,0x00000028, + 0x00000000,0x00000025,0x000200f8,0x00000029,0x00050041,0x000000f4,0x000000f9,0x000000ee, + 0x000000b0,0x0004003d,0x00000011,0x000000fa,0x000000f9,0x000200fe,0x000000fa,0x00010038, + 0x00050036,0x00000011,0x0000002d,0x00000000,0x0000002b,0x00030037,0x0000002a,0x0000002c, + 0x000200f8,0x0000002e,0x0004003d,0x000000fd,0x00000100,0x000000ff,0x0004003d,0x00000021, + 0x00000101,0x0000002c,0x0007005f,0x00000102,0x00000103,0x00000100,0x00000101,0x00000002, + 0x00000069,0x00050051,0x00000011,0x00000105,0x00000103,0x00000000,0x000200fe,0x00000105, + 0x00010038,0x00050036,0x00000011,0x00000030,0x00000000,0x0000002b,0x00030037,0x0000002a, + 0x0000002f,0x000200f8,0x00000031,0x0004003d,0x000000fd,0x00000109,0x00000108,0x0004003d, + 0x00000021,0x0000010a,0x0000002f,0x0007005f,0x00000102,0x0000010b,0x00000109,0x0000010a, + 0x00000002,0x00000069,0x00050051,0x00000011,0x0000010c,0x0000010b,0x00000000,0x000200fe, + 0x0000010c,0x00010038,0x00050036,0x00000021,0x00000034,0x00000000,0x00000032,0x00030037, + 0x0000002a,0x00000033,0x000200f8,0x00000035,0x0004003d,0x0000010f,0x00000112,0x00000111, + 0x0004003d,0x00000021,0x00000113,0x00000033,0x0007005f,0x00000114,0x00000115,0x00000112, + 0x00000113,0x00000002,0x00000069,0x0007004f,0x00000021,0x00000116,0x00000115,0x00000115, + 0x00000000,0x00000001,0x000200fe,0x00000116,0x00010038,0x00050036,0x00000002,0x00000039, + 0x00000000,0x00000036,0x00030037,0x0000002a,0x00000037,0x00030037,0x0000002a,0x00000038, + 0x000200f8,0x0000003a,0x0004003d,0x00000119,0x0000011c,0x0000011b,0x0004003d,0x00000021, + 0x0000011d,0x00000037,0x0004003d,0x00000021,0x0000011e,0x00000038,0x00050051,0x00000006, + 0x0000011f,0x0000011e,0x00000000,0x00050051,0x00000006,0x00000120,0x0000011e,0x00000001, + 0x00070050,0x00000114,0x00000121,0x0000011f,0x00000120,0x00000069,0x00000069,0x00040063, + 0x0000011c,0x0000011d,0x00000121,0x000100fd,0x00010038,0x00050036,0x00000011,0x0000003d, + 0x00000000,0x0000003b,0x00030037,0x00000007,0x0000003c,0x000200f8,0x0000003e,0x0004003d, + 0x00000122,0x00000125,0x00000124,0x0004003d,0x00000006,0x00000126,0x0000003c,0x00050050, + 0x00000021,0x00000127,0x00000126,0x00000069,0x00050062,0x00000102,0x00000128,0x00000125, + 0x00000127,0x00050051,0x00000011,0x00000129,0x00000128,0x00000000,0x000200fe,0x00000129, + 0x00010038,0x00050036,0x0000003f,0x00000041,0x00000000,0x00000040,0x000200f8,0x00000042, + 0x0004003b,0x00000007,0x00000134,0x00000007,0x00040039,0x00000011,0x0000012c,0x00000026, + 0x000500b2,0x0000003f,0x0000012e,0x0000012c,0x0000012d,0x000300f7,0x00000130,0x00000000, + 0x000400fa,0x0000012e,0x0000012f,0x00000133,0x000200f8,0x0000012f,0x000200fe,0x00000131, + 0x000200f8,0x00000133,0x0003003e,0x00000134,0x000000b0,0x00050039,0x00000011,0x00000135, + 0x0000003d,0x00000134,0x000500c7,0x00000011,0x00000137,0x00000135,0x00000136,0x000500ab, + 0x0000003f,0x00000138,0x00000137,0x00000104,0x000200fe,0x00000138,0x000200f8,0x00000130, + 0x000100ff,0x00010038,0x00050036,0x00000011,0x00000044,0x00000000,0x0000002b,0x00030037, + 0x0000002a,0x00000043,0x000200f8,0x00000045,0x0004003b,0x00000007,0x0000013b,0x00000007, + 0x0004003b,0x00000007,0x00000140,0x00000007,0x0004003b,0x0000002a,0x00000146,0x00000007, + 0x0004003b,0x00000007,0x00000149,0x00000007,0x0004003b,0x00000007,0x0000014a,0x00000007, + 0x0004003b,0x00000007,0x0000014e,0x00000007,0x0004003b,0x00000007,0x0000014f,0x00000007, + 0x0004003b,0x00000007,0x00000153,0x00000007,0x0004003b,0x00000007,0x00000154,0x00000007, + 0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007,0x00000159,0x00000007, + 0x0004003b,0x00000012,0x0000015c,0x00000007,0x0004003b,0x0000002a,0x00000160,0x00000007, + 0x0004003b,0x00000012,0x00000162,0x00000007,0x0004003b,0x0000002a,0x00000166,0x00000007, + 0x0004003b,0x00000012,0x00000168,0x00000007,0x0004003b,0x0000002a,0x0000016c,0x00000007, + 0x0004003b,0x00000012,0x0000016e,0x00000007,0x0004003b,0x0000002a,0x00000172,0x00000007, + 0x0004003b,0x00000007,0x00000174,0x00000007,0x0004003b,0x00000007,0x00000176,0x00000007, + 0x0004003b,0x00000012,0x00000179,0x00000007,0x0004003b,0x00000012,0x0000017b,0x00000007, + 0x0004003b,0x00000012,0x0000017d,0x00000007,0x0004003b,0x00000012,0x0000017f,0x00000007, + 0x00040039,0x00000021,0x0000013c,0x00000023,0x00050051,0x00000006,0x0000013d,0x0000013c, + 0x00000000,0x00040039,0x00000011,0x0000013e,0x00000028,0x000500c3,0x00000006,0x0000013f, + 0x0000013d,0x0000013e,0x0003003e,0x0000013b,0x0000013f,0x00040039,0x00000021,0x00000141, + 0x00000023,0x00050051,0x00000006,0x00000143,0x00000141,0x00000001,0x00040039,0x00000011, + 0x00000144,0x00000028,0x000500c3,0x00000006,0x00000145,0x00000143,0x00000144,0x0003003e, + 0x00000140,0x00000145,0x0004003d,0x00000006,0x00000147,0x0000013b,0x00050082,0x00000006, + 0x00000148,0x00000147,0x0000008f,0x0003003e,0x00000149,0x00000148,0x00050041,0x00000007, + 0x0000014b,0x00000043,0x00000104,0x0004003d,0x00000006,0x0000014c,0x0000014b,0x0003003e, + 0x0000014a,0x0000014c,0x00060039,0x00000006,0x0000014d,0x0000000b,0x00000149,0x0000014a, + 0x0003003e,0x0000014e,0x00000069,0x0003003e,0x0000014f,0x0000014d,0x00060039,0x00000006, + 0x00000150,0x0000000f,0x0000014e,0x0000014f,0x0004003d,0x00000006,0x00000151,0x00000140, + 0x00050082,0x00000006,0x00000152,0x00000151,0x000000b0,0x0003003e,0x00000153,0x00000152, + 0x00050041,0x00000007,0x00000155,0x00000043,0x00000142,0x0004003d,0x00000006,0x00000156, + 0x00000155,0x0003003e,0x00000154,0x00000156,0x00060039,0x00000006,0x00000157,0x0000000b, + 0x00000153,0x00000154,0x0003003e,0x00000158,0x00000069,0x0003003e,0x00000159,0x00000157, + 0x00060039,0x00000006,0x0000015a,0x0000000f,0x00000158,0x00000159,0x00050050,0x00000021, + 0x0000015b,0x00000150,0x0000015a,0x0003003e,0x00000146,0x0000015b,0x0004003d,0x00000021, + 0x0000015d,0x00000146,0x00050080,0x00000021,0x0000015f,0x0000015d,0x0000015e,0x0003003e, + 0x00000160,0x0000015f,0x00050039,0x00000011,0x00000161,0x0000002d,0x00000160,0x0003003e, + 0x0000015c,0x00000161,0x0004003d,0x00000021,0x00000163,0x00000146,0x00050080,0x00000021, + 0x00000165,0x00000163,0x00000164,0x0003003e,0x00000166,0x00000165,0x00050039,0x00000011, + 0x00000167,0x0000002d,0x00000166,0x0003003e,0x00000162,0x00000167,0x0004003d,0x00000021, + 0x00000169,0x00000146,0x00050080,0x00000021,0x0000016b,0x00000169,0x0000016a,0x0003003e, + 0x0000016c,0x0000016b,0x00050039,0x00000011,0x0000016d,0x0000002d,0x0000016c,0x0003003e, + 0x00000168,0x0000016d,0x0004003d,0x00000021,0x0000016f,0x00000146,0x00050080,0x00000021, + 0x00000171,0x0000016f,0x00000170,0x0003003e,0x00000172,0x00000171,0x00050039,0x00000011, + 0x00000173,0x0000002d,0x00000172,0x0003003e,0x0000016e,0x00000173,0x0004003d,0x00000006, + 0x00000175,0x0000013b,0x0003003e,0x00000174,0x00000175,0x00050041,0x00000007,0x00000177, + 0x00000043,0x00000104,0x0004003d,0x00000006,0x00000178,0x00000177,0x0003003e,0x00000176, + 0x00000178,0x0004003d,0x00000011,0x0000017a,0x0000015c,0x0003003e,0x00000179,0x0000017a, + 0x0004003d,0x00000011,0x0000017c,0x00000162,0x0003003e,0x0000017b,0x0000017c,0x0004003d, + 0x00000011,0x0000017e,0x00000168,0x0003003e,0x0000017d,0x0000017e,0x0004003d,0x00000011, + 0x00000180,0x0000016e,0x0003003e,0x0000017f,0x00000180,0x000a0039,0x00000011,0x00000181, + 0x0000001a,0x00000174,0x00000176,0x00000179,0x0000017b,0x0000017d,0x0000017f,0x000200fe, + 0x00000181,0x00010038,0x00050036,0x00000011,0x00000047,0x00000000,0x0000002b,0x00030037, + 0x0000002a,0x00000046,0x000200f8,0x00000048,0x0004003b,0x00000007,0x00000184,0x00000007, + 0x0004003b,0x00000007,0x00000189,0x00000007,0x0004003b,0x0000002a,0x0000018e,0x00000007, + 0x0004003b,0x00000007,0x00000191,0x00000007,0x0004003b,0x00000007,0x00000192,0x00000007, + 0x0004003b,0x00000007,0x00000196,0x00000007,0x0004003b,0x00000007,0x00000197,0x00000007, + 0x0004003b,0x00000007,0x0000019b,0x00000007,0x0004003b,0x00000007,0x0000019c,0x00000007, + 0x0004003b,0x00000007,0x000001a0,0x00000007,0x0004003b,0x00000007,0x000001a1,0x00000007, + 0x0004003b,0x00000012,0x000001a4,0x00000007,0x0004003b,0x0000002a,0x000001a7,0x00000007, + 0x0004003b,0x00000012,0x000001a9,0x00000007,0x0004003b,0x0000002a,0x000001ac,0x00000007, + 0x0004003b,0x00000012,0x000001ae,0x00000007,0x0004003b,0x0000002a,0x000001b1,0x00000007, + 0x0004003b,0x00000012,0x000001b3,0x00000007,0x0004003b,0x0000002a,0x000001b6,0x00000007, + 0x0004003b,0x00000007,0x000001b8,0x00000007,0x0004003b,0x00000007,0x000001ba,0x00000007, + 0x0004003b,0x00000012,0x000001bd,0x00000007,0x0004003b,0x00000012,0x000001bf,0x00000007, + 0x0004003b,0x00000012,0x000001c1,0x00000007,0x0004003b,0x00000012,0x000001c3,0x00000007, + 0x00040039,0x00000021,0x00000185,0x00000023,0x00050051,0x00000006,0x00000186,0x00000185, + 0x00000000,0x00040039,0x00000011,0x00000187,0x00000028,0x000500c3,0x00000006,0x00000188, + 0x00000186,0x00000187,0x0003003e,0x00000184,0x00000188,0x00040039,0x00000021,0x0000018a, + 0x00000023,0x00050051,0x00000006,0x0000018b,0x0000018a,0x00000001,0x00040039,0x00000011, + 0x0000018c,0x00000028,0x000500c3,0x00000006,0x0000018d,0x0000018b,0x0000018c,0x0003003e, + 0x00000189,0x0000018d,0x0004003d,0x00000006,0x0000018f,0x00000184,0x00050082,0x00000006, + 0x00000190,0x0000018f,0x0000008f,0x0003003e,0x00000191,0x00000190,0x00050041,0x00000007, + 0x00000193,0x00000046,0x00000104,0x0004003d,0x00000006,0x00000194,0x00000193,0x0003003e, + 0x00000192,0x00000194,0x00060039,0x00000006,0x00000195,0x0000000b,0x00000191,0x00000192, + 0x0003003e,0x00000196,0x00000069,0x0003003e,0x00000197,0x00000195,0x00060039,0x00000006, + 0x00000198,0x0000000f,0x00000196,0x00000197,0x0004003d,0x00000006,0x00000199,0x00000189, + 0x00050082,0x00000006,0x0000019a,0x00000199,0x000000b0,0x0003003e,0x0000019b,0x0000019a, + 0x00050041,0x00000007,0x0000019d,0x00000046,0x00000142,0x0004003d,0x00000006,0x0000019e, + 0x0000019d,0x0003003e,0x0000019c,0x0000019e,0x00060039,0x00000006,0x0000019f,0x0000000b, + 0x0000019b,0x0000019c,0x0003003e,0x000001a0,0x00000069,0x0003003e,0x000001a1,0x0000019f, + 0x00060039,0x00000006,0x000001a2,0x0000000f,0x000001a0,0x000001a1,0x00050050,0x00000021, + 0x000001a3,0x00000198,0x000001a2,0x0003003e,0x0000018e,0x000001a3,0x0004003d,0x00000021, + 0x000001a5,0x0000018e,0x00050080,0x00000021,0x000001a6,0x000001a5,0x0000015e,0x0003003e, + 0x000001a7,0x000001a6,0x00050039,0x00000011,0x000001a8,0x00000030,0x000001a7,0x0003003e, + 0x000001a4,0x000001a8,0x0004003d,0x00000021,0x000001aa,0x0000018e,0x00050080,0x00000021, + 0x000001ab,0x000001aa,0x00000164,0x0003003e,0x000001ac,0x000001ab,0x00050039,0x00000011, + 0x000001ad,0x00000030,0x000001ac,0x0003003e,0x000001a9,0x000001ad,0x0004003d,0x00000021, + 0x000001af,0x0000018e,0x00050080,0x00000021,0x000001b0,0x000001af,0x0000016a,0x0003003e, + 0x000001b1,0x000001b0,0x00050039,0x00000011,0x000001b2,0x00000030,0x000001b1,0x0003003e, + 0x000001ae,0x000001b2,0x0004003d,0x00000021,0x000001b4,0x0000018e,0x00050080,0x00000021, + 0x000001b5,0x000001b4,0x00000170,0x0003003e,0x000001b6,0x000001b5,0x00050039,0x00000011, + 0x000001b7,0x00000030,0x000001b6,0x0003003e,0x000001b3,0x000001b7,0x0004003d,0x00000006, + 0x000001b9,0x00000184,0x0003003e,0x000001b8,0x000001b9,0x00050041,0x00000007,0x000001bb, + 0x00000046,0x00000104,0x0004003d,0x00000006,0x000001bc,0x000001bb,0x0003003e,0x000001ba, + 0x000001bc,0x0004003d,0x00000011,0x000001be,0x000001a4,0x0003003e,0x000001bd,0x000001be, + 0x0004003d,0x00000011,0x000001c0,0x000001a9,0x0003003e,0x000001bf,0x000001c0,0x0004003d, + 0x00000011,0x000001c2,0x000001ae,0x0003003e,0x000001c1,0x000001c2,0x0004003d,0x00000011, + 0x000001c4,0x000001b3,0x0003003e,0x000001c3,0x000001c4,0x000a0039,0x00000011,0x000001c5, + 0x0000001a,0x000001b8,0x000001ba,0x000001bd,0x000001bf,0x000001c1,0x000001c3,0x000200fe, + 0x000001c5,0x00010038,0x00050036,0x00000002,0x0000004e,0x00000000,0x0000004b,0x00030037, + 0x0000004a,0x0000004c,0x00030037,0x0000004a,0x0000004d,0x000200f8,0x0000004f,0x0004003b, + 0x0000002a,0x000001cb,0x00000007,0x0004003b,0x0000002a,0x000001ce,0x00000007,0x0004003b, + 0x00000007,0x000001d1,0x00000007,0x0004003b,0x00000007,0x000001db,0x00000007,0x0004003b, + 0x0000002a,0x000001e4,0x00000007,0x0004003b,0x0000002a,0x000001f0,0x00000007,0x0004003b, + 0x0000002a,0x000001f1,0x00000007,0x0004003b,0x00000007,0x00000205,0x00000007,0x0004003b, + 0x00000007,0x00000206,0x00000007,0x0004003b,0x0000002a,0x00000211,0x00000007,0x0004003b, + 0x00000012,0x0000021c,0x00000007,0x0004003b,0x0000002a,0x0000021d,0x00000007,0x0004003b, + 0x00000012,0x00000231,0x00000007,0x0004003b,0x00000007,0x00000232,0x00000007,0x0004003b, + 0x0000002a,0x0000023b,0x00000007,0x0004003b,0x00000012,0x00000248,0x00000007,0x0004003b, + 0x0000002a,0x00000249,0x00000007,0x0004003b,0x00000012,0x00000251,0x00000007,0x0004003b, + 0x00000012,0x00000254,0x00000007,0x0004003b,0x00000012,0x00000269,0x00000007,0x0004003b, + 0x00000012,0x0000026b,0x00000007,0x0004003b,0x00000007,0x0000026c,0x00000007,0x0004003b, + 0x0000002a,0x0000028a,0x00000007,0x0004003b,0x0000002a,0x00000292,0x00000007,0x0004003b, + 0x0000002a,0x00000295,0x00000007,0x00040039,0x0000003f,0x000001c8,0x00000041,0x000300f7, + 0x000001ca,0x00000000,0x000400fa,0x000001c8,0x000001c9,0x000001ca,0x000200f8,0x000001c9, + 0x0004003d,0x00000049,0x000001cc,0x0000004c,0x0007004f,0x00000021,0x000001cd,0x000001cc, + 0x000001cc,0x00000000,0x00000001,0x0003003e,0x000001cb,0x000001cd,0x0003003e,0x000001ce, + 0x0000015e,0x00060039,0x00000002,0x000001cf,0x00000039,0x000001cb,0x000001ce,0x000100fd, + 0x000200f8,0x000001ca,0x00050041,0x00000007,0x000001d3,0x0000004d,0x000001d2,0x0004003d, + 0x00000006,0x000001d4,0x000001d3,0x0005008b,0x00000006,0x000001d5,0x000001d4,0x000000a5, + 0x00050082,0x00000006,0x000001d6,0x000001d5,0x000000b0,0x00050041,0x00000007,0x000001d7, + 0x0000004c,0x00000104,0x0004003d,0x00000006,0x000001d8,0x000001d7,0x0005008b,0x00000006, + 0x000001d9,0x000001d8,0x000000a5,0x00050080,0x00000006,0x000001da,0x000001d6,0x000001d9, + 0x0003003e,0x000001d1,0x000001da,0x00050041,0x00000007,0x000001dc,0x0000004d,0x000001d2, + 0x0004003d,0x00000006,0x000001dd,0x000001dc,0x00050087,0x00000006,0x000001de,0x000001dd, + 0x000000a5,0x00050082,0x00000006,0x000001df,0x000001de,0x000000b0,0x00050041,0x00000007, + 0x000001e0,0x0000004c,0x00000142,0x0004003d,0x00000006,0x000001e1,0x000001e0,0x0005008b, + 0x00000006,0x000001e2,0x000001e1,0x000000a5,0x00050080,0x00000006,0x000001e3,0x000001df, + 0x000001e2,0x0003003e,0x000001db,0x000001e3,0x00050041,0x00000007,0x000001e5,0x0000004c, + 0x00000104,0x0004003d,0x00000006,0x000001e6,0x000001e5,0x00050087,0x00000006,0x000001e7, + 0x000001e6,0x000000a5,0x0004003d,0x00000006,0x000001e8,0x000001d1,0x00050080,0x00000006, + 0x000001e9,0x000001e7,0x000001e8,0x00050041,0x00000007,0x000001ea,0x0000004c,0x00000142, + 0x0004003d,0x00000006,0x000001eb,0x000001ea,0x00050087,0x00000006,0x000001ec,0x000001eb, + 0x000000a5,0x0004003d,0x00000006,0x000001ed,0x000001db,0x00050080,0x00000006,0x000001ee, + 0x000001ec,0x000001ed,0x00050050,0x00000021,0x000001ef,0x000001e9,0x000001ee,0x0003003e, + 0x000001e4,0x000001ef,0x0004003d,0x00000021,0x000001f2,0x000001e4,0x0003003e,0x000001f1, + 0x000001f2,0x00050039,0x00000021,0x000001f3,0x00000034,0x000001f1,0x0003003e,0x000001f0, + 0x000001f3,0x00050041,0x00000007,0x000001fa,0x0000004d,0x000001d2,0x0004003d,0x00000006, + 0x000001fb,0x000001fa,0x00050041,0x00000007,0x000001fc,0x0000004d,0x00000142,0x0004003d, + 0x00000006,0x000001fd,0x000001fc,0x00050041,0x00000007,0x000001fe,0x0000004d,0x00000104, + 0x0004003d,0x00000006,0x000001ff,0x000001fe,0x0004003d,0x00000021,0x00000200,0x000001f0, + 0x00050050,0x00000021,0x00000201,0x000000a5,0x000000a5,0x00050084,0x00000021,0x00000202, + 0x00000200,0x00000201,0x00070041,0x00000203,0x00000204,0x000001f9,0x000001fb,0x000001fd, + 0x000001ff,0x0003003e,0x00000204,0x00000202,0x0003003e,0x00000205,0x0000008f,0x00050041, + 0x00000007,0x00000207,0x0000004d,0x000001d2,0x0004003d,0x00000006,0x00000208,0x00000207, + 0x0003003e,0x00000206,0x00000208,0x000200f9,0x00000209,0x000200f8,0x00000209,0x000400f6, + 0x0000020b,0x0000020c,0x00000000,0x000200f9,0x0000020d,0x000200f8,0x0000020d,0x0004003d, + 0x00000006,0x0000020e,0x00000206,0x0004003d,0x00000006,0x0000020f,0x00000205,0x000500b1, + 0x0000003f,0x00000210,0x0000020e,0x0000020f,0x000400fa,0x00000210,0x0000020a,0x0000020b, + 0x000200f8,0x0000020a,0x00050041,0x00000007,0x00000212,0x0000004c,0x00000104,0x0004003d, + 0x00000006,0x00000213,0x00000212,0x00050084,0x00000006,0x00000214,0x00000213,0x0000008f, + 0x00050041,0x00000007,0x00000215,0x0000004c,0x00000142,0x0004003d,0x00000006,0x00000216, + 0x00000215,0x0004003d,0x00000006,0x00000217,0x00000205,0x00050084,0x00000006,0x00000218, + 0x00000216,0x00000217,0x0004003d,0x00000006,0x00000219,0x00000206,0x00050080,0x00000006, + 0x0000021a,0x00000218,0x00000219,0x00050050,0x00000021,0x0000021b,0x00000214,0x0000021a, + 0x0003003e,0x00000211,0x0000021b,0x0004003d,0x00000021,0x0000021e,0x00000211,0x0003003e, + 0x0000021d,0x0000021e,0x00050039,0x00000011,0x0000021f,0x00000044,0x0000021d,0x0003003e, + 0x0000021c,0x0000021f,0x0004003d,0x00000006,0x00000225,0x00000206,0x00050041,0x00000007, + 0x00000226,0x0000004d,0x00000142,0x0004003d,0x00000006,0x00000227,0x00000226,0x00050041, + 0x00000007,0x00000228,0x0000004d,0x00000104,0x0004003d,0x00000006,0x00000229,0x00000228, + 0x0004003d,0x00000011,0x0000022a,0x0000021c,0x00070041,0x0000022b,0x0000022c,0x00000224, + 0x00000225,0x00000227,0x00000229,0x0003003e,0x0000022c,0x0000022a,0x000200f9,0x0000020c, + 0x000200f8,0x0000020c,0x0004003d,0x00000006,0x0000022d,0x00000206,0x00050080,0x00000006, + 0x0000022e,0x0000022d,0x0000008f,0x0003003e,0x00000206,0x0000022e,0x000200f9,0x00000209, + 0x000200f8,0x0000020b,0x000300e1,0x000001d2,0x0000022f,0x000400e0,0x000001d2,0x000001d2, + 0x00000230,0x0003003e,0x00000231,0x00000104,0x0003003e,0x00000232,0x00000069,0x000200f9, + 0x00000233,0x000200f8,0x00000233,0x000400f6,0x00000235,0x00000236,0x00000000,0x000200f9, + 0x00000237,0x000200f8,0x00000237,0x0004003d,0x00000006,0x00000238,0x00000232,0x0004003d, + 0x00000006,0x00000239,0x00000205,0x000500b1,0x0000003f,0x0000023a,0x00000238,0x00000239, + 0x000400fa,0x0000023a,0x00000234,0x00000235,0x000200f8,0x00000234,0x00050041,0x00000007, + 0x0000023c,0x0000004c,0x00000104,0x0004003d,0x00000006,0x0000023d,0x0000023c,0x00050084, + 0x00000006,0x0000023e,0x0000023d,0x0000008f,0x00050041,0x00000007,0x0000023f,0x0000004c, + 0x00000142,0x0004003d,0x00000006,0x00000240,0x0000023f,0x0004003d,0x00000006,0x00000241, + 0x00000205,0x00050084,0x00000006,0x00000242,0x00000240,0x00000241,0x0004003d,0x00000006, + 0x00000243,0x00000232,0x00050080,0x00000006,0x00000244,0x00000242,0x00000243,0x00050050, + 0x00000021,0x00000245,0x0000023e,0x00000244,0x0004003d,0x00000021,0x00000246,0x000001f0, + 0x00050080,0x00000021,0x00000247,0x00000245,0x00000246,0x0003003e,0x0000023b,0x00000247, + 0x0004003d,0x00000021,0x0000024a,0x0000023b,0x0003003e,0x00000249,0x0000024a,0x00050039, + 0x00000011,0x0000024b,0x00000047,0x00000249,0x0003003e,0x00000248,0x0000024b,0x0004003d, + 0x00000006,0x0000024c,0x00000232,0x00050041,0x00000007,0x0000024d,0x0000004d,0x00000142, + 0x0004003d,0x00000006,0x0000024e,0x0000024d,0x00050041,0x00000007,0x0000024f,0x0000004d, + 0x00000104,0x0004003d,0x00000006,0x00000250,0x0000024f,0x00070041,0x0000022b,0x00000252, + 0x00000224,0x0000024c,0x0000024e,0x00000250,0x0004003d,0x00000011,0x00000253,0x00000252, + 0x0003003e,0x00000251,0x00000253,0x0004003d,0x00000011,0x00000255,0x00000248,0x0003003e, + 0x00000254,0x00000255,0x00060039,0x00000011,0x00000256,0x0000001f,0x00000251,0x00000254, + 0x0004003d,0x00000011,0x00000257,0x00000231,0x00050080,0x00000011,0x00000258,0x00000257, + 0x00000256,0x0003003e,0x00000231,0x00000258,0x000200f9,0x00000236,0x000200f8,0x00000236, + 0x0004003d,0x00000006,0x00000259,0x00000232,0x00050080,0x00000006,0x0000025a,0x00000259, + 0x000000b0,0x0003003e,0x00000232,0x0000025a,0x000200f9,0x00000233,0x000200f8,0x00000235, + 0x00050041,0x00000007,0x0000025c,0x0000004d,0x000001d2,0x0004003d,0x00000006,0x0000025d, + 0x0000025c,0x00050041,0x00000007,0x0000025e,0x0000004d,0x00000142,0x0004003d,0x00000006, + 0x0000025f,0x0000025e,0x00050041,0x00000007,0x00000260,0x0000004d,0x00000104,0x0004003d, + 0x00000006,0x00000261,0x00000260,0x0004003d,0x00000011,0x00000262,0x00000231,0x00070041, + 0x0000022b,0x00000263,0x0000025b,0x0000025d,0x0000025f,0x00000261,0x0003003e,0x00000263, + 0x00000262,0x000300e1,0x000001d2,0x0000022f,0x000400e0,0x000001d2,0x000001d2,0x00000230, + 0x00050041,0x00000007,0x00000264,0x0000004d,0x000001d2,0x0004003d,0x00000006,0x00000265, + 0x00000264,0x000500aa,0x0000003f,0x00000266,0x00000265,0x00000069,0x000300f7,0x00000268, + 0x00000000,0x000400fa,0x00000266,0x00000267,0x00000268,0x000200f8,0x00000267,0x0003003e, + 0x00000269,0x0000026a,0x0003003e,0x0000026b,0x00000104,0x0003003e,0x0000026c,0x00000069, + 0x000200f9,0x0000026d,0x000200f8,0x0000026d,0x000400f6,0x0000026f,0x00000270,0x00000000, + 0x000200f9,0x00000271,0x000200f8,0x00000271,0x0004003d,0x00000006,0x00000272,0x0000026c, + 0x000500b1,0x0000003f,0x00000273,0x00000272,0x0000008f,0x000400fa,0x00000273,0x0000026e, + 0x0000026f,0x000200f8,0x0000026e,0x0004003d,0x00000006,0x00000274,0x0000026c,0x00050041, + 0x00000007,0x00000275,0x0000004d,0x00000142,0x0004003d,0x00000006,0x00000276,0x00000275, + 0x00050041,0x00000007,0x00000277,0x0000004d,0x00000104,0x0004003d,0x00000006,0x00000278, + 0x00000277,0x00070041,0x0000022b,0x00000279,0x0000025b,0x00000274,0x00000276,0x00000278, + 0x0004003d,0x00000011,0x0000027a,0x00000279,0x0004003d,0x00000011,0x0000027b,0x00000269, + 0x000500b0,0x0000003f,0x0000027c,0x0000027a,0x0000027b,0x000300f7,0x0000027e,0x00000000, + 0x000400fa,0x0000027c,0x0000027d,0x0000027e,0x000200f8,0x0000027d,0x0004003d,0x00000006, + 0x0000027f,0x0000026c,0x00050041,0x00000007,0x00000280,0x0000004d,0x00000142,0x0004003d, + 0x00000006,0x00000281,0x00000280,0x00050041,0x00000007,0x00000282,0x0000004d,0x00000104, + 0x0004003d,0x00000006,0x00000283,0x00000282,0x00070041,0x0000022b,0x00000284,0x0000025b, + 0x0000027f,0x00000281,0x00000283,0x0004003d,0x00000011,0x00000285,0x00000284,0x0003003e, + 0x00000269,0x00000285,0x0004003d,0x00000006,0x00000286,0x0000026c,0x0004007c,0x00000011, + 0x00000287,0x00000286,0x0003003e,0x0000026b,0x00000287,0x000200f9,0x0000027e,0x000200f8, + 0x0000027e,0x000200f9,0x00000270,0x000200f8,0x00000270,0x0004003d,0x00000006,0x00000288, + 0x0000026c,0x00050080,0x00000006,0x00000289,0x00000288,0x000000b0,0x0003003e,0x0000026c, + 0x00000289,0x000200f9,0x0000026d,0x000200f8,0x0000026f,0x0004003d,0x00000011,0x0000028b, + 0x0000026b,0x00050041,0x00000007,0x0000028c,0x0000004d,0x00000142,0x0004003d,0x00000006, + 0x0000028d,0x0000028c,0x00050041,0x00000007,0x0000028e,0x0000004d,0x00000104,0x0004003d, + 0x00000006,0x0000028f,0x0000028e,0x00070041,0x00000203,0x00000290,0x000001f9,0x0000028b, + 0x0000028d,0x0000028f,0x0004003d,0x00000021,0x00000291,0x00000290,0x0003003e,0x0000028a, + 0x00000291,0x0004003d,0x00000049,0x00000293,0x0000004c,0x0007004f,0x00000021,0x00000294, + 0x00000293,0x00000293,0x00000000,0x00000001,0x0003003e,0x00000292,0x00000294,0x0004003d, + 0x00000021,0x00000296,0x0000028a,0x0003003e,0x00000295,0x00000296,0x00060039,0x00000002, + 0x00000297,0x00000039,0x00000292,0x00000295,0x000200f9,0x00000268,0x000200f8,0x00000268, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h b/gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h new file mode 100644 index 000000000..d03156242 --- /dev/null +++ b/gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h @@ -0,0 +1,562 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_PREPARE_INPUTS_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000028f,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000027a, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000c,0x4c786666, + 0x28707265,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000009,0x00000078,0x00030005, + 0x0000000a,0x00000079,0x00030005,0x0000000b,0x00000074,0x00060005,0x00000010,0x53786666, + 0x72757461,0x28657461,0x003b3166,0x00030005,0x0000000f,0x00000078,0x00060005,0x00000016, + 0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000015,0x00000078,0x00060005, + 0x0000001b,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000019,0x00000078, + 0x00030005,0x0000001a,0x00000079,0x00060005,0x00000022,0x4d786666,0x76287861,0x763b3366, + 0x003b3366,0x00030005,0x00000020,0x00000078,0x00030005,0x00000021,0x00000079,0x00050005, + 0x00000027,0x646e6552,0x69537265,0x0028657a,0x000b0005,0x0000002b,0x69766544,0x6f546563, + 0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72,0x726f7463,0x00002873,0x00070005, + 0x0000002e,0x69746f4d,0x65566e6f,0x726f7463,0x6c616353,0x00002865,0x00090005,0x00000031, + 0x77656956,0x63617053,0x4d6f5465,0x72657465,0x63614673,0x28726f74,0x00000000,0x00070005, + 0x00000036,0x64616f4c,0x75706e49,0x70654474,0x76286874,0x003b3269,0x00040005,0x00000035, + 0x50785069,0x0000736f,0x00070005,0x0000003a,0x64616f4c,0x75706e49,0x6c6f4374,0x7628726f, + 0x003b3269,0x00040005,0x00000039,0x50785069,0x0000736f,0x00090005,0x0000003e,0x64616f4c, + 0x75706e49,0x746f4d74,0x566e6f69,0x6f746365,0x69762872,0x00003b32,0x00090005,0x0000003d, + 0x44785069,0x74616c69,0x6f4d6465,0x6e6f6974,0x74636556,0x6f50726f,0x00000073,0x00090005, + 0x00000043,0x726f7453,0x72614665,0x73656874,0x70654474,0x76286874,0x663b3269,0x00003b31, + 0x00040005,0x00000041,0x50785069,0x0000736f,0x00040005,0x00000042,0x70654466,0x00006874, + 0x00090005,0x00000047,0x726f7453,0x72754365,0x746e6572,0x616d754c,0x32697628,0x3b31663b, + 0x00000000,0x00040005,0x00000045,0x50785069,0x0000736f,0x00040005,0x00000046,0x6d754c66, + 0x00000061,0x000a0005,0x0000004b,0x726f7453,0x63655265,0x74736e6f,0x74637572,0x65446465, + 0x28687470,0x3b326976,0x003b3166,0x00050005,0x00000049,0x53785069,0x6c706d61,0x00000065, + 0x00040005,0x0000004a,0x70654466,0x00006874,0x00090005,0x0000004f,0x726f7453,0x6c694465, + 0x64657461,0x74706544,0x69762868,0x31663b32,0x0000003b,0x00040005,0x0000004d,0x50785069, + 0x0000736f,0x00040005,0x0000004e,0x70654466,0x00006874,0x000b0005,0x00000054,0x726f7453, + 0x6c694465,0x64657461,0x69746f4d,0x65566e6f,0x726f7463,0x32697628,0x3266763b,0x0000003b, + 0x00040005,0x00000052,0x50785069,0x0000736f,0x00060005,0x00000053,0x746f4d66,0x566e6f69, + 0x6f746365,0x00000072,0x000b0005,0x00000057,0x6f636552,0x7274736e,0x65746375,0x70654464, + 0x764d6874,0x68547850,0x68736572,0x28646c6f,0x003b3166,0x00080005,0x00000056,0x61654e66, + 0x74736572,0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00070005,0x0000005b,0x34746547, + 0x6c65564b,0x7469636f,0x66762879,0x00003b32,0x00060005,0x0000005a,0x746f4d66,0x566e6f69, + 0x6f746365,0x00000072,0x00060005,0x0000005f,0x54424752,0x6d754c6f,0x66762861,0x00003b33, + 0x00050005,0x0000005e,0x6e694c66,0x52726165,0x00006267,0x00070005,0x00000065,0x6e4f7349, + 0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x00000063,0x00736f70,0x00040005, + 0x00000064,0x657a6973,0x00000000,0x00080005,0x00000068,0x56746547,0x53776569,0x65636170, + 0x74706544,0x31662868,0x0000003b,0x00060005,0x00000067,0x76654466,0x44656369,0x68747065, + 0x00000000,0x000a0005,0x0000006b,0x56746547,0x53776569,0x65636170,0x74706544,0x4d6e4968, + 0x72657465,0x31662873,0x0000003b,0x00060005,0x0000006a,0x76654466,0x44656369,0x68747065, + 0x00000000,0x00080005,0x00000071,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144, + 0x00000000,0x00060006,0x00000071,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006, + 0x00000071,0x00000001,0x69655766,0x73746867,0x00000000,0x00060006,0x00000071,0x00000002, + 0x73614269,0x736f5065,0x00000000,0x000b0005,0x00000075,0x42746547,0x6e696c69,0x53726165, + 0x6c706d61,0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x00000073, + 0x00765566,0x00040005,0x00000074,0x7a695369,0x00000065,0x000b0005,0x0000007b,0x6f636552, + 0x7274736e,0x50746375,0x44766572,0x68747065,0x32697628,0x3b31663b,0x3b326676,0x00000000, + 0x00040005,0x00000078,0x50785069,0x0000736f,0x00040005,0x00000079,0x70654466,0x00006874, + 0x00060005,0x0000007a,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00060005,0x0000007d, + 0x74706544,0x74784568,0x73746e65,0x00000000,0x00060006,0x0000007d,0x00000000,0x61654e66, + 0x74736572,0x00000000,0x00070006,0x0000007d,0x00000001,0x61654e66,0x74736572,0x726f6f43, + 0x00000064,0x00060006,0x0000007d,0x00000002,0x72614666,0x73656874,0x00000074,0x00080005, + 0x00000080,0x646e6946,0x74706544,0x74784568,0x73746e65,0x32697628,0x0000003b,0x00040005, + 0x0000007f,0x50785069,0x0000736f,0x00100005,0x00000085,0x616c6944,0x6f4d6574,0x6e6f6974, + 0x74636556,0x7628726f,0x733b3269,0x63757274,0x65442d74,0x45687470,0x6e657478,0x662d7374, + 0x69762d31,0x31662d32,0x00003b31,0x00040005,0x00000083,0x50785069,0x0000736f,0x00060005, + 0x00000084,0x74706564,0x74784568,0x73746e65,0x00000000,0x00090005,0x00000088,0x43746547, + 0x65727275,0x7246746e,0x4c656d61,0x28616d75,0x3b326976,0x00000000,0x00040005,0x00000087, + 0x50785069,0x0000736f,0x00070005,0x0000008c,0x70657250,0x49657261,0x7475706e,0x69762873, + 0x00003b32,0x00040005,0x0000008b,0x50785069,0x0000736f,0x00070005,0x000000a8,0x53466263, + 0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x000000a8,0x00000000,0x6e655269, + 0x53726564,0x00657a69,0x000a0006,0x000000a8,0x00000001,0x65725069,0x756f6976,0x61724673, + 0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x000000a8,0x00000002,0x73705569, + 0x656c6163,0x657a6953,0x00000000,0x000a0006,0x000000a8,0x00000003,0x65725069,0x756f6976, + 0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x000000a8,0x00000004, + 0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x000000a8,0x00000005,0x78614d69, + 0x63737055,0x53656c61,0x00657a69,0x00080006,0x000000a8,0x00000006,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00050006,0x000000a8,0x00000007,0x74694a66,0x00726574, + 0x00090006,0x000000a8,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474, + 0x00000000,0x00080006,0x000000a8,0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372, + 0x0000656c,0x00080006,0x000000a8,0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463, + 0x00000000,0x000b0006,0x000000a8,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72, + 0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x000000a8,0x0000000c,0x6e615466, + 0x666c6148,0x00564f46,0x00090006,0x000000a8,0x0000000d,0x74694a66,0x53726574,0x65757165, + 0x4c65636e,0x74676e65,0x00000068,0x00060006,0x000000a8,0x0000000e,0x6c654466,0x69546174, + 0x0000656d,0x00080006,0x000000a8,0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f, + 0x00000065,0x000a0006,0x000000a8,0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d, + 0x61467372,0x726f7463,0x00000000,0x00060006,0x000000a8,0x00000011,0x61724666,0x6e49656d, + 0x00786564,0x00070006,0x000000a8,0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74, + 0x00080006,0x000000a8,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c, + 0x00080006,0x000000a8,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61, + 0x000a0006,0x000000a8,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465, + 0x61724672,0x0000656d,0x000b0006,0x000000a8,0x00000016,0x6e694d66,0x6f736944,0x756c6363, + 0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x000000aa,0x53466263, + 0x70553352,0x6c616373,0x00007265,0x00060005,0x000000c5,0x6e695f72,0x5f747570,0x74706564, + 0x00000068,0x00080005,0x000000cd,0x6e695f72,0x5f747570,0x6f6c6f63,0x696a5f72,0x72657474, + 0x00006465,0x00070005,0x000000d4,0x63725366,0x69746f4d,0x65566e6f,0x726f7463,0x00000000, + 0x00080005,0x000000d5,0x6e695f72,0x5f747570,0x69746f6d,0x765f6e6f,0x6f746365,0x00007372, + 0x00060005,0x000000da,0x4d765566,0x6f69746f,0x6365566e,0x00726f74,0x00070005,0x000000e3, + 0x665f7772,0x68747261,0x5f747365,0x74706564,0x00000068,0x00060005,0x000000e8,0x635f7772, + 0x65727275,0x6c5f746e,0x00616d75,0x00040005,0x000000ee,0x70654475,0x00006874,0x000c0005, + 0x000000f3,0x725f7772,0x6e6f6365,0x75727473,0x64657463,0x6572705f,0x756f6976,0x656e5f73, + 0x73657261,0x65645f74,0x00687470,0x00070005,0x000000fc,0x645f7772,0x74616c69,0x645f6465, + 0x68747065,0x00000000,0x00090005,0x00000103,0x645f7772,0x74616c69,0x6d5f6465,0x6f69746f, + 0x65765f6e,0x726f7463,0x00000073,0x00040005,0x0000010f,0x61726170,0x0000006d,0x00040005, + 0x00000111,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170,0x0000006d,0x00040005, + 0x00000113,0x61726170,0x0000006d,0x00070005,0x00000132,0x76654466,0x54656369,0x6569566f, + 0x70654477,0x00006874,0x00040005,0x0000013d,0x61726170,0x0000006d,0x00050005,0x00000144, + 0x53785066,0x6c706d61,0x00000065,0x00040005,0x0000014d,0x61746164,0x00000000,0x00040005, + 0x00000153,0x46785066,0x00636172,0x00040005,0x00000154,0x61726170,0x0000006d,0x00080005, + 0x00000180,0x61654e66,0x74736572,0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00040005, + 0x00000181,0x61726170,0x0000006d,0x00040005,0x00000185,0x61726170,0x0000006d,0x00040005, + 0x00000186,0x61726170,0x0000006d,0x000a0005,0x00000188,0x63655266,0x74736e6f,0x74637572, + 0x65446465,0x764d7470,0x65726854,0x6c6f6873,0x00000064,0x00040005,0x00000189,0x61726170, + 0x0000006d,0x00040005,0x0000018c,0x61726170,0x0000006d,0x00030005,0x00000194,0x00765566, + 0x00060005,0x0000019c,0x70655266,0x656a6f72,0x64657463,0x00007655,0x00060005,0x000001a0, + 0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000001a2,0x61726170,0x0000006d, + 0x00040005,0x000001a4,0x61726170,0x0000006d,0x00060005,0x000001a7,0x6d615369,0x49656c70, + 0x7865646e,0x00000000,0x00040005,0x000001b0,0x66664f69,0x00746573,0x00040005,0x000001b4, + 0x69655766,0x00746867,0x00050005,0x000001bd,0x6f745369,0x6f506572,0x00000073,0x00040005, + 0x000001c3,0x61726170,0x0000006d,0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005, + 0x000001c9,0x61726170,0x0000006d,0x00040005,0x000001cb,0x61726170,0x0000006d,0x00060005, + 0x000001d0,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x000001d8,0x736f5069, + 0x00000000,0x00050005,0x000001e5,0x65646e69,0x6c626178,0x00000065,0x00040005,0x000001eb, + 0x74706564,0x00000068,0x00040005,0x000001ed,0x61726170,0x0000006d,0x00040005,0x000001f4, + 0x65747865,0x0073746e,0x00040005,0x00000204,0x736f5069,0x00000000,0x00050005,0x00000207, + 0x65646e69,0x6c626178,0x00000065,0x00040005,0x0000020c,0x61726170,0x0000006d,0x00040005, + 0x0000020e,0x61726170,0x0000006d,0x00050005,0x00000212,0x44644e66,0x68747065,0x00000000, + 0x00040005,0x0000021c,0x61726170,0x0000006d,0x00040005,0x0000021f,0x61726170,0x0000006d, + 0x00050005,0x0000022c,0x6d615369,0x50656c70,0x0000736f,0x00070005,0x0000022e,0x746f4d69, + 0x566e6f69,0x6f746365,0x736f5072,0x00000000,0x00080005,0x00000230,0x6c694466,0x64657461, + 0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005,0x00000231,0x61726170,0x0000006d, + 0x00040005,0x00000237,0x62675266,0x00000000,0x00040005,0x00000239,0x61726170,0x0000006d, + 0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005,0x0000023d,0x61726170,0x0000006d, + 0x00040005,0x0000023f,0x6d754c66,0x00000061,0x00040005,0x00000240,0x61726170,0x0000006d, + 0x00060005,0x00000246,0x74706564,0x74784568,0x73746e65,0x00000000,0x00040005,0x00000247, + 0x61726170,0x0000006d,0x00080005,0x0000024a,0x6c694466,0x64657461,0x69746f4d,0x65566e6f, + 0x726f7463,0x00000000,0x00040005,0x0000024c,0x61726170,0x0000006d,0x00040005,0x0000024f, + 0x61726170,0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005,0x00000254, + 0x61726170,0x0000006d,0x00040005,0x00000257,0x61726170,0x0000006d,0x00040005,0x00000259, + 0x61726170,0x0000006d,0x00040005,0x0000025c,0x61726170,0x0000006d,0x00040005,0x0000025e, + 0x61726170,0x0000006d,0x00080005,0x00000262,0x72614666,0x73656874,0x70654474,0x6e496874, + 0x6574654d,0x00007372,0x00040005,0x00000263,0x61726170,0x0000006d,0x00040005,0x00000267, + 0x61726170,0x0000006d,0x00040005,0x00000268,0x61726170,0x0000006d,0x00040005,0x0000026a, + 0x61726170,0x0000006d,0x00040005,0x0000026c,0x61726170,0x0000006d,0x00040005,0x0000026f, + 0x6d754c66,0x00000061,0x00040005,0x00000270,0x61726170,0x0000006d,0x00040005,0x00000273, + 0x61726170,0x0000006d,0x00040005,0x00000275,0x61726170,0x0000006d,0x00080005,0x0000027a, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x0000027e, + 0x61726170,0x0000006d,0x00060005,0x00000284,0x6f505f73,0x43746e69,0x706d616c,0x00000000, + 0x00060005,0x00000285,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00030047,0x000000a8, + 0x00000002,0x00050048,0x000000a8,0x00000000,0x00000023,0x00000000,0x00050048,0x000000a8, + 0x00000001,0x00000023,0x00000008,0x00050048,0x000000a8,0x00000002,0x00000023,0x00000010, + 0x00050048,0x000000a8,0x00000003,0x00000023,0x00000018,0x00050048,0x000000a8,0x00000004, + 0x00000023,0x00000020,0x00050048,0x000000a8,0x00000005,0x00000023,0x00000028,0x00050048, + 0x000000a8,0x00000006,0x00000023,0x00000030,0x00050048,0x000000a8,0x00000007,0x00000023, + 0x00000040,0x00050048,0x000000a8,0x00000008,0x00000023,0x00000048,0x00050048,0x000000a8, + 0x00000009,0x00000023,0x00000050,0x00050048,0x000000a8,0x0000000a,0x00000023,0x00000058, + 0x00050048,0x000000a8,0x0000000b,0x00000023,0x00000060,0x00050048,0x000000a8,0x0000000c, + 0x00000023,0x00000068,0x00050048,0x000000a8,0x0000000d,0x00000023,0x0000006c,0x00050048, + 0x000000a8,0x0000000e,0x00000023,0x00000070,0x00050048,0x000000a8,0x0000000f,0x00000023, + 0x00000074,0x00050048,0x000000a8,0x00000010,0x00000023,0x00000078,0x00050048,0x000000a8, + 0x00000011,0x00000023,0x0000007c,0x00050048,0x000000a8,0x00000012,0x00000023,0x00000080, + 0x00050048,0x000000a8,0x00000013,0x00000023,0x00000084,0x00050048,0x000000a8,0x00000014, + 0x00000023,0x00000088,0x00050048,0x000000a8,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x000000a8,0x00000016,0x00000023,0x00000090,0x00040047,0x000000aa,0x00000021,0x00000008, + 0x00040047,0x000000aa,0x00000022,0x00000000,0x00040047,0x000000c5,0x00000021,0x00000001, + 0x00040047,0x000000c5,0x00000022,0x00000000,0x00040047,0x000000cd,0x00000021,0x00000002, + 0x00040047,0x000000cd,0x00000022,0x00000000,0x00040047,0x000000d5,0x00000021,0x00000000, + 0x00040047,0x000000d5,0x00000022,0x00000000,0x00040047,0x000000e3,0x00000021,0x00000006, + 0x00040047,0x000000e3,0x00000022,0x00000000,0x00040047,0x000000e8,0x00000021,0x00000007, + 0x00040047,0x000000e8,0x00000022,0x00000000,0x00040047,0x000000f3,0x00000021,0x00000005, + 0x00040047,0x000000f3,0x00000022,0x00000000,0x00030047,0x000000fc,0x00000019,0x00040047, + 0x000000fc,0x00000021,0x00000004,0x00040047,0x000000fc,0x00000022,0x00000000,0x00030047, + 0x00000103,0x00000019,0x00040047,0x00000103,0x00000021,0x00000003,0x00040047,0x00000103, + 0x00000022,0x00000000,0x00040047,0x0000027a,0x0000000b,0x0000001c,0x00040047,0x00000284, + 0x00000021,0x000003e8,0x00040047,0x00000284,0x00000022,0x00000000,0x00040047,0x00000285, + 0x00000021,0x000003e9,0x00040047,0x00000285,0x00000022,0x00000000,0x00040047,0x0000028e, + 0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008, + 0x00000006,0x00000007,0x00000007,0x00000007,0x00040021,0x0000000e,0x00000006,0x00000007, + 0x00040017,0x00000012,0x00000006,0x00000002,0x00040020,0x00000013,0x00000007,0x00000012, + 0x00040021,0x00000014,0x00000012,0x00000013,0x00050021,0x00000018,0x00000006,0x00000007, + 0x00000007,0x00040017,0x0000001d,0x00000006,0x00000003,0x00040020,0x0000001e,0x00000007, + 0x0000001d,0x00050021,0x0000001f,0x0000001d,0x0000001e,0x0000001e,0x00040015,0x00000024, + 0x00000020,0x00000001,0x00040017,0x00000025,0x00000024,0x00000002,0x00030021,0x00000026, + 0x00000025,0x00040017,0x00000029,0x00000006,0x00000004,0x00030021,0x0000002a,0x00000029, + 0x00030021,0x0000002d,0x00000012,0x00030021,0x00000030,0x00000006,0x00040020,0x00000033, + 0x00000007,0x00000025,0x00040021,0x00000034,0x00000006,0x00000033,0x00040021,0x00000038, + 0x0000001d,0x00000033,0x00040021,0x0000003c,0x00000012,0x00000033,0x00050021,0x00000040, + 0x00000002,0x00000033,0x00000007,0x00050021,0x00000051,0x00000002,0x00000033,0x00000013, + 0x00040021,0x00000059,0x00000006,0x00000013,0x00040021,0x0000005d,0x00000006,0x0000001e, + 0x00020014,0x00000061,0x00050021,0x00000062,0x00000061,0x00000033,0x00000033,0x00040015, + 0x0000006d,0x00000020,0x00000000,0x0004002b,0x0000006d,0x0000006e,0x00000004,0x0004001c, + 0x0000006f,0x00000025,0x0000006e,0x0004001c,0x00000070,0x00000006,0x0000006e,0x0005001e, + 0x00000071,0x0000006f,0x00000070,0x00000025,0x00050021,0x00000072,0x00000071,0x00000013, + 0x00000033,0x00060021,0x00000077,0x00000002,0x00000033,0x00000007,0x00000013,0x0005001e, + 0x0000007d,0x00000006,0x00000025,0x00000006,0x00040021,0x0000007e,0x0000007d,0x00000033, + 0x00050021,0x00000082,0x00000012,0x00000033,0x0000007d,0x00040021,0x0000008a,0x00000002, + 0x00000033,0x0004002b,0x00000006,0x00000095,0x00000000,0x0004002b,0x00000006,0x00000096, + 0x3f800000,0x0019001e,0x000000a8,0x00000025,0x00000025,0x00000025,0x00000025,0x00000025, + 0x00000025,0x00000029,0x00000012,0x00000012,0x00000012,0x00000012,0x00000012,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00040020,0x000000a9,0x00000002,0x000000a8,0x0004003b,0x000000a9, + 0x000000aa,0x00000002,0x0004002b,0x00000024,0x000000ab,0x00000000,0x00040020,0x000000ac, + 0x00000002,0x00000025,0x0004002b,0x00000024,0x000000b1,0x00000006,0x00040020,0x000000b2, + 0x00000002,0x00000029,0x0004002b,0x00000024,0x000000b7,0x00000009,0x00040020,0x000000b8, + 0x00000002,0x00000012,0x0004002b,0x00000024,0x000000bd,0x00000010,0x00040020,0x000000be, + 0x00000002,0x00000006,0x00090019,0x000000c3,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x000000c4,0x00000000,0x000000c3,0x0004003b, + 0x000000c4,0x000000c5,0x00000000,0x0004002b,0x0000006d,0x000000c9,0x00000000,0x0004003b, + 0x000000c4,0x000000cd,0x00000000,0x0004003b,0x000000c4,0x000000d5,0x00000000,0x00090019, + 0x000000e1,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000009, + 0x00040020,0x000000e2,0x00000000,0x000000e1,0x0004003b,0x000000e2,0x000000e3,0x00000000, + 0x0004003b,0x000000e2,0x000000e8,0x00000000,0x00040020,0x000000ed,0x00000007,0x0000006d, + 0x00090019,0x000000f1,0x0000006d,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000021,0x00040020,0x000000f2,0x00000000,0x000000f1,0x0004003b,0x000000f2,0x000000f3, + 0x00000000,0x00040020,0x000000f6,0x0000000b,0x0000006d,0x0004002b,0x0000006d,0x000000f8, + 0x00000001,0x00090019,0x000000fa,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000003,0x00040020,0x000000fb,0x00000000,0x000000fa,0x0004003b,0x000000fb, + 0x000000fc,0x00000000,0x00090019,0x00000101,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000007,0x00040020,0x00000102,0x00000000,0x00000101,0x0004003b, + 0x00000102,0x00000103,0x00000000,0x0004002b,0x00000006,0x0000010a,0x3e800000,0x0004002b, + 0x00000006,0x0000010b,0x3f400000,0x0004002b,0x00000006,0x0000010d,0x42c80000,0x0004002b, + 0x00000006,0x00000118,0x45700000,0x0004002b,0x00000006,0x00000119,0x45070000,0x0005002c, + 0x00000012,0x0000011a,0x00000118,0x00000119,0x0004002b,0x00000006,0x00000120,0x3e59b3d0, + 0x0004002b,0x00000006,0x00000121,0x3f371759,0x0004002b,0x00000006,0x00000122,0x3d93dd98, + 0x0006002c,0x0000001d,0x00000123,0x00000120,0x00000121,0x00000122,0x00040017,0x00000128, + 0x0000006d,0x00000002,0x00040017,0x0000012c,0x00000061,0x00000002,0x00040020,0x00000131, + 0x00000007,0x00000029,0x0004002b,0x00000006,0x00000149,0x3f000000,0x0005002c,0x00000012, + 0x0000014a,0x00000149,0x00000149,0x00040020,0x0000014c,0x00000007,0x00000071,0x0004002b, + 0x00000024,0x0000014e,0x00000002,0x0005002c,0x00000025,0x00000157,0x000000ab,0x000000ab, + 0x0004002b,0x00000024,0x00000159,0x00000001,0x0005002c,0x00000025,0x0000015a,0x00000159, + 0x000000ab,0x0005002c,0x00000025,0x0000015c,0x000000ab,0x00000159,0x0004002b,0x00000024, + 0x0000015e,0x00000003,0x0005002c,0x00000025,0x0000015f,0x00000159,0x00000159,0x0004002b, + 0x00000006,0x00000184,0x477fe000,0x00040020,0x000001a6,0x00000007,0x00000024,0x0004002b, + 0x00000024,0x000001ae,0x00000004,0x0004002b,0x00000006,0x000001b9,0x3a1fe868,0x0004002b, + 0x0000006d,0x000001da,0x00000009,0x0004001c,0x000001db,0x00000025,0x000001da,0x0004002b, + 0x00000024,0x000001dc,0xffffffff,0x0005002c,0x00000025,0x000001dd,0x000000ab,0x000001dc, + 0x0005002c,0x00000025,0x000001de,0x000001dc,0x000000ab,0x0005002c,0x00000025,0x000001df, + 0x000001dc,0x00000159,0x0005002c,0x00000025,0x000001e0,0x000001dc,0x000001dc,0x0005002c, + 0x00000025,0x000001e1,0x00000159,0x000001dc,0x000c002c,0x000001db,0x000001e2,0x00000157, + 0x0000015a,0x0000015c,0x000001dd,0x000001de,0x000001df,0x0000015f,0x000001e0,0x000001e1, + 0x00040020,0x000001e4,0x00000007,0x000001db,0x0004001c,0x000001e9,0x00000006,0x000001da, + 0x00040020,0x000001ea,0x00000007,0x000001e9,0x00040020,0x000001f3,0x00000007,0x0000007d, + 0x0006002c,0x0000001d,0x00000238,0x00000095,0x00000095,0x00000095,0x00040017,0x00000278, + 0x0000006d,0x00000003,0x00040020,0x00000279,0x00000001,0x00000278,0x0004003b,0x00000279, + 0x0000027a,0x00000001,0x0004002b,0x00000006,0x00000280,0x387fda40,0x0004002b,0x00000006, + 0x00000281,0x37801002,0x0002001a,0x00000282,0x00040020,0x00000283,0x00000000,0x00000282, + 0x0004003b,0x00000283,0x00000284,0x00000000,0x0004003b,0x00000283,0x00000285,0x00000000, + 0x0004002b,0x00000006,0x00000286,0x7f7fffff,0x0004002b,0x00000006,0x00000287,0x00800000, + 0x0004002b,0x00000006,0x00000288,0x3d800000,0x0004002b,0x00000006,0x00000289,0x3d3d70a4, + 0x0004002b,0x00000006,0x0000028a,0x3e400000,0x0004002b,0x00000006,0x0000028b,0x40000000, + 0x0004002b,0x00000006,0x0000028c,0x461c4000,0x0004002b,0x0000006d,0x0000028d,0x00000008, + 0x0006002c,0x00000278,0x0000028e,0x0000028d,0x0000028d,0x000000f8,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000033,0x0000027e, + 0x00000007,0x0004003d,0x00000278,0x0000027b,0x0000027a,0x0007004f,0x00000128,0x0000027c, + 0x0000027b,0x0000027b,0x00000000,0x00000001,0x0004007c,0x00000025,0x0000027d,0x0000027c, + 0x0003003e,0x0000027e,0x0000027d,0x00050039,0x00000002,0x0000027f,0x0000008c,0x0000027e, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x0000008e,0x00000009,0x0004003d,0x00000006, + 0x0000008f,0x0000000a,0x0004003d,0x00000006,0x00000090,0x0000000b,0x0008000c,0x00000006, + 0x00000091,0x00000001,0x0000002e,0x0000008e,0x0000008f,0x00000090,0x000200fe,0x00000091, + 0x00010038,0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x00000007, + 0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000006,0x00000094,0x0000000f,0x0008000c, + 0x00000006,0x00000097,0x00000001,0x0000002b,0x00000094,0x00000095,0x00000096,0x000200fe, + 0x00000097,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000012,0x0000009a,0x00000015, + 0x0006000c,0x00000012,0x0000009b,0x00000001,0x0000000a,0x0000009a,0x000200fe,0x0000009b, + 0x00010038,0x00050036,0x00000006,0x0000001b,0x00000000,0x00000018,0x00030037,0x00000007, + 0x00000019,0x00030037,0x00000007,0x0000001a,0x000200f8,0x0000001c,0x0004003d,0x00000006, + 0x0000009e,0x00000019,0x0004003d,0x00000006,0x0000009f,0x0000001a,0x0007000c,0x00000006, + 0x000000a0,0x00000001,0x00000025,0x0000009e,0x0000009f,0x000200fe,0x000000a0,0x00010038, + 0x00050036,0x0000001d,0x00000022,0x00000000,0x0000001f,0x00030037,0x0000001e,0x00000020, + 0x00030037,0x0000001e,0x00000021,0x000200f8,0x00000023,0x0004003d,0x0000001d,0x000000a3, + 0x00000020,0x0004003d,0x0000001d,0x000000a4,0x00000021,0x0007000c,0x0000001d,0x000000a5, + 0x00000001,0x00000028,0x000000a3,0x000000a4,0x000200fe,0x000000a5,0x00010038,0x00050036, + 0x00000025,0x00000027,0x00000000,0x00000026,0x000200f8,0x00000028,0x00050041,0x000000ac, + 0x000000ad,0x000000aa,0x000000ab,0x0004003d,0x00000025,0x000000ae,0x000000ad,0x000200fe, + 0x000000ae,0x00010038,0x00050036,0x00000029,0x0000002b,0x00000000,0x0000002a,0x000200f8, + 0x0000002c,0x00050041,0x000000b2,0x000000b3,0x000000aa,0x000000b1,0x0004003d,0x00000029, + 0x000000b4,0x000000b3,0x000200fe,0x000000b4,0x00010038,0x00050036,0x00000012,0x0000002e, + 0x00000000,0x0000002d,0x000200f8,0x0000002f,0x00050041,0x000000b8,0x000000b9,0x000000aa, + 0x000000b7,0x0004003d,0x00000012,0x000000ba,0x000000b9,0x000200fe,0x000000ba,0x00010038, + 0x00050036,0x00000006,0x00000031,0x00000000,0x00000030,0x000200f8,0x00000032,0x00050041, + 0x000000be,0x000000bf,0x000000aa,0x000000bd,0x0004003d,0x00000006,0x000000c0,0x000000bf, + 0x000200fe,0x000000c0,0x00010038,0x00050036,0x00000006,0x00000036,0x00000000,0x00000034, + 0x00030037,0x00000033,0x00000035,0x000200f8,0x00000037,0x0004003d,0x000000c3,0x000000c6, + 0x000000c5,0x0004003d,0x00000025,0x000000c7,0x00000035,0x0007005f,0x00000029,0x000000c8, + 0x000000c6,0x000000c7,0x00000002,0x000000ab,0x00050051,0x00000006,0x000000ca,0x000000c8, + 0x00000000,0x000200fe,0x000000ca,0x00010038,0x00050036,0x0000001d,0x0000003a,0x00000000, + 0x00000038,0x00030037,0x00000033,0x00000039,0x000200f8,0x0000003b,0x0004003d,0x000000c3, + 0x000000ce,0x000000cd,0x0004003d,0x00000025,0x000000cf,0x00000039,0x0007005f,0x00000029, + 0x000000d0,0x000000ce,0x000000cf,0x00000002,0x000000ab,0x0008004f,0x0000001d,0x000000d1, + 0x000000d0,0x000000d0,0x00000000,0x00000001,0x00000002,0x000200fe,0x000000d1,0x00010038, + 0x00050036,0x00000012,0x0000003e,0x00000000,0x0000003c,0x00030037,0x00000033,0x0000003d, + 0x000200f8,0x0000003f,0x0004003b,0x00000013,0x000000d4,0x00000007,0x0004003b,0x00000013, + 0x000000da,0x00000007,0x0004003d,0x000000c3,0x000000d6,0x000000d5,0x0004003d,0x00000025, + 0x000000d7,0x0000003d,0x0007005f,0x00000029,0x000000d8,0x000000d6,0x000000d7,0x00000002, + 0x000000ab,0x0007004f,0x00000012,0x000000d9,0x000000d8,0x000000d8,0x00000000,0x00000001, + 0x0003003e,0x000000d4,0x000000d9,0x0004003d,0x00000012,0x000000db,0x000000d4,0x00040039, + 0x00000012,0x000000dc,0x0000002e,0x00050085,0x00000012,0x000000dd,0x000000db,0x000000dc, + 0x0003003e,0x000000da,0x000000dd,0x0004003d,0x00000012,0x000000de,0x000000da,0x000200fe, + 0x000000de,0x00010038,0x00050036,0x00000002,0x00000043,0x00000000,0x00000040,0x00030037, + 0x00000033,0x00000041,0x00030037,0x00000007,0x00000042,0x000200f8,0x00000044,0x0004003d, + 0x000000e1,0x000000e4,0x000000e3,0x0004003d,0x00000025,0x000000e5,0x00000041,0x0004003d, + 0x00000006,0x000000e6,0x00000042,0x00070050,0x00000029,0x000000e7,0x000000e6,0x00000095, + 0x00000095,0x00000095,0x00040063,0x000000e4,0x000000e5,0x000000e7,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000047,0x00000000,0x00000040,0x00030037,0x00000033,0x00000045, + 0x00030037,0x00000007,0x00000046,0x000200f8,0x00000048,0x0004003d,0x000000e1,0x000000e9, + 0x000000e8,0x0004003d,0x00000025,0x000000ea,0x00000045,0x0004003d,0x00000006,0x000000eb, + 0x00000046,0x00070050,0x00000029,0x000000ec,0x000000eb,0x00000095,0x00000095,0x00000095, + 0x00040063,0x000000e9,0x000000ea,0x000000ec,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x0000004b,0x00000000,0x00000040,0x00030037,0x00000033,0x00000049,0x00030037,0x00000007, + 0x0000004a,0x000200f8,0x0000004c,0x0004003b,0x000000ed,0x000000ee,0x00000007,0x0004003d, + 0x00000006,0x000000ef,0x0000004a,0x0004007c,0x0000006d,0x000000f0,0x000000ef,0x0003003e, + 0x000000ee,0x000000f0,0x0004003d,0x00000025,0x000000f4,0x00000049,0x0004003d,0x0000006d, + 0x000000f5,0x000000ee,0x0006003c,0x000000f6,0x000000f7,0x000000f3,0x000000f4,0x000000c9, + 0x000700ef,0x0000006d,0x000000f9,0x000000f7,0x000000f8,0x000000c9,0x000000f5,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000004f,0x00000000,0x00000040,0x00030037,0x00000033, + 0x0000004d,0x00030037,0x00000007,0x0000004e,0x000200f8,0x00000050,0x0004003d,0x000000fa, + 0x000000fd,0x000000fc,0x0004003d,0x00000025,0x000000fe,0x0000004d,0x0004003d,0x00000006, + 0x000000ff,0x0000004e,0x00070050,0x00000029,0x00000100,0x000000ff,0x00000095,0x00000095, + 0x00000095,0x00040063,0x000000fd,0x000000fe,0x00000100,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000054,0x00000000,0x00000051,0x00030037,0x00000033,0x00000052,0x00030037, + 0x00000013,0x00000053,0x000200f8,0x00000055,0x0004003d,0x00000101,0x00000104,0x00000103, + 0x0004003d,0x00000025,0x00000105,0x00000052,0x0004003d,0x00000012,0x00000106,0x00000053, + 0x00050051,0x00000006,0x00000107,0x00000106,0x00000000,0x00050051,0x00000006,0x00000108, + 0x00000106,0x00000001,0x00070050,0x00000029,0x00000109,0x00000107,0x00000108,0x00000095, + 0x00000095,0x00040063,0x00000104,0x00000105,0x00000109,0x000100fd,0x00010038,0x00050036, + 0x00000006,0x00000057,0x00000000,0x0000000e,0x00030037,0x00000007,0x00000056,0x000200f8, + 0x00000058,0x0004003b,0x00000007,0x0000010f,0x00000007,0x0004003b,0x00000007,0x00000111, + 0x00000007,0x0004003b,0x00000007,0x00000112,0x00000007,0x0004003b,0x00000007,0x00000113, + 0x00000007,0x0004003d,0x00000006,0x0000010c,0x00000056,0x00050088,0x00000006,0x0000010e, + 0x0000010c,0x0000010d,0x0003003e,0x0000010f,0x0000010e,0x00050039,0x00000006,0x00000110, + 0x00000010,0x0000010f,0x0003003e,0x00000111,0x0000010a,0x0003003e,0x00000112,0x0000010b, + 0x0003003e,0x00000113,0x00000110,0x00070039,0x00000006,0x00000114,0x0000000c,0x00000111, + 0x00000112,0x00000113,0x000200fe,0x00000114,0x00010038,0x00050036,0x00000006,0x0000005b, + 0x00000000,0x00000059,0x00030037,0x00000013,0x0000005a,0x000200f8,0x0000005c,0x0004003d, + 0x00000012,0x00000117,0x0000005a,0x00050085,0x00000012,0x0000011b,0x00000117,0x0000011a, + 0x0006000c,0x00000006,0x0000011c,0x00000001,0x00000042,0x0000011b,0x000200fe,0x0000011c, + 0x00010038,0x00050036,0x00000006,0x0000005f,0x00000000,0x0000005d,0x00030037,0x0000001e, + 0x0000005e,0x000200f8,0x00000060,0x0004003d,0x0000001d,0x0000011f,0x0000005e,0x00050094, + 0x00000006,0x00000124,0x0000011f,0x00000123,0x000200fe,0x00000124,0x00010038,0x00050036, + 0x00000061,0x00000065,0x00000000,0x00000062,0x00030037,0x00000033,0x00000063,0x00030037, + 0x00000033,0x00000064,0x000200f8,0x00000066,0x0004003d,0x00000025,0x00000127,0x00000063, + 0x0004007c,0x00000128,0x00000129,0x00000127,0x0004003d,0x00000025,0x0000012a,0x00000064, + 0x0004007c,0x00000128,0x0000012b,0x0000012a,0x000500b0,0x0000012c,0x0000012d,0x00000129, + 0x0000012b,0x0004009b,0x00000061,0x0000012e,0x0000012d,0x000200fe,0x0000012e,0x00010038, + 0x00050036,0x00000006,0x00000068,0x00000000,0x0000000e,0x00030037,0x00000007,0x00000067, + 0x000200f8,0x00000069,0x0004003b,0x00000131,0x00000132,0x00000007,0x00040039,0x00000029, + 0x00000133,0x0000002b,0x0003003e,0x00000132,0x00000133,0x00050041,0x00000007,0x00000134, + 0x00000132,0x000000f8,0x0004003d,0x00000006,0x00000135,0x00000134,0x0004003d,0x00000006, + 0x00000136,0x00000067,0x00050041,0x00000007,0x00000137,0x00000132,0x000000c9,0x0004003d, + 0x00000006,0x00000138,0x00000137,0x00050083,0x00000006,0x00000139,0x00000136,0x00000138, + 0x00050088,0x00000006,0x0000013a,0x00000135,0x00000139,0x000200fe,0x0000013a,0x00010038, + 0x00050036,0x00000006,0x0000006b,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000006a, + 0x000200f8,0x0000006c,0x0004003b,0x00000007,0x0000013d,0x00000007,0x0004003d,0x00000006, + 0x0000013e,0x0000006a,0x0003003e,0x0000013d,0x0000013e,0x00050039,0x00000006,0x0000013f, + 0x00000068,0x0000013d,0x00040039,0x00000006,0x00000140,0x00000031,0x00050085,0x00000006, + 0x00000141,0x0000013f,0x00000140,0x000200fe,0x00000141,0x00010038,0x00050036,0x00000071, + 0x00000075,0x00000000,0x00000072,0x00030037,0x00000013,0x00000073,0x00030037,0x00000033, + 0x00000074,0x000200f8,0x00000076,0x0004003b,0x00000013,0x00000144,0x00000007,0x0004003b, + 0x0000014c,0x0000014d,0x00000007,0x0004003b,0x00000013,0x00000153,0x00000007,0x0004003b, + 0x00000013,0x00000154,0x00000007,0x0004003d,0x00000012,0x00000145,0x00000073,0x0004003d, + 0x00000025,0x00000146,0x00000074,0x0004006f,0x00000012,0x00000147,0x00000146,0x00050085, + 0x00000012,0x00000148,0x00000145,0x00000147,0x00050083,0x00000012,0x0000014b,0x00000148, + 0x0000014a,0x0003003e,0x00000144,0x0000014b,0x0004003d,0x00000012,0x0000014f,0x00000144, + 0x0006000c,0x00000012,0x00000150,0x00000001,0x00000008,0x0000014f,0x0004006e,0x00000025, + 0x00000151,0x00000150,0x00050041,0x00000033,0x00000152,0x0000014d,0x0000014e,0x0003003e, + 0x00000152,0x00000151,0x0004003d,0x00000012,0x00000155,0x00000144,0x0003003e,0x00000154, + 0x00000155,0x00050039,0x00000012,0x00000156,0x00000016,0x00000154,0x0003003e,0x00000153, + 0x00000156,0x00060041,0x00000033,0x00000158,0x0000014d,0x000000ab,0x000000ab,0x0003003e, + 0x00000158,0x00000157,0x00060041,0x00000033,0x0000015b,0x0000014d,0x000000ab,0x00000159, + 0x0003003e,0x0000015b,0x0000015a,0x00060041,0x00000033,0x0000015d,0x0000014d,0x000000ab, + 0x0000014e,0x0003003e,0x0000015d,0x0000015c,0x00060041,0x00000033,0x00000160,0x0000014d, + 0x000000ab,0x0000015e,0x0003003e,0x00000160,0x0000015f,0x00050041,0x00000007,0x00000161, + 0x00000153,0x000000c9,0x0004003d,0x00000006,0x00000162,0x00000161,0x00050083,0x00000006, + 0x00000163,0x00000096,0x00000162,0x00050041,0x00000007,0x00000164,0x00000153,0x000000f8, + 0x0004003d,0x00000006,0x00000165,0x00000164,0x00050083,0x00000006,0x00000166,0x00000096, + 0x00000165,0x00050085,0x00000006,0x00000167,0x00000163,0x00000166,0x00060041,0x00000007, + 0x00000168,0x0000014d,0x00000159,0x000000ab,0x0003003e,0x00000168,0x00000167,0x00050041, + 0x00000007,0x00000169,0x00000153,0x000000c9,0x0004003d,0x00000006,0x0000016a,0x00000169, + 0x00050041,0x00000007,0x0000016b,0x00000153,0x000000f8,0x0004003d,0x00000006,0x0000016c, + 0x0000016b,0x00050083,0x00000006,0x0000016d,0x00000096,0x0000016c,0x00050085,0x00000006, + 0x0000016e,0x0000016a,0x0000016d,0x00060041,0x00000007,0x0000016f,0x0000014d,0x00000159, + 0x00000159,0x0003003e,0x0000016f,0x0000016e,0x00050041,0x00000007,0x00000170,0x00000153, + 0x000000c9,0x0004003d,0x00000006,0x00000171,0x00000170,0x00050083,0x00000006,0x00000172, + 0x00000096,0x00000171,0x00050041,0x00000007,0x00000173,0x00000153,0x000000f8,0x0004003d, + 0x00000006,0x00000174,0x00000173,0x00050085,0x00000006,0x00000175,0x00000172,0x00000174, + 0x00060041,0x00000007,0x00000176,0x0000014d,0x00000159,0x0000014e,0x0003003e,0x00000176, + 0x00000175,0x00050041,0x00000007,0x00000177,0x00000153,0x000000c9,0x0004003d,0x00000006, + 0x00000178,0x00000177,0x00050041,0x00000007,0x00000179,0x00000153,0x000000f8,0x0004003d, + 0x00000006,0x0000017a,0x00000179,0x00050085,0x00000006,0x0000017b,0x00000178,0x0000017a, + 0x00060041,0x00000007,0x0000017c,0x0000014d,0x00000159,0x0000015e,0x0003003e,0x0000017c, + 0x0000017b,0x0004003d,0x00000071,0x0000017d,0x0000014d,0x000200fe,0x0000017d,0x00010038, + 0x00050036,0x00000002,0x0000007b,0x00000000,0x00000077,0x00030037,0x00000033,0x00000078, + 0x00030037,0x00000007,0x00000079,0x00030037,0x00000013,0x0000007a,0x000200f8,0x0000007c, + 0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b,0x00000007,0x00000181,0x00000007, + 0x0004003b,0x00000007,0x00000185,0x00000007,0x0004003b,0x00000007,0x00000186,0x00000007, + 0x0004003b,0x00000007,0x00000188,0x00000007,0x0004003b,0x00000007,0x00000189,0x00000007, + 0x0004003b,0x00000013,0x0000018c,0x00000007,0x0004003b,0x00000013,0x00000194,0x00000007, + 0x0004003b,0x00000013,0x0000019c,0x00000007,0x0004003b,0x0000014c,0x000001a0,0x00000007, + 0x0004003b,0x00000013,0x000001a2,0x00000007,0x0004003b,0x00000033,0x000001a4,0x00000007, + 0x0004003b,0x000001a6,0x000001a7,0x00000007,0x0004003b,0x00000033,0x000001b0,0x00000007, + 0x0004003b,0x00000007,0x000001b4,0x00000007,0x0004003b,0x00000033,0x000001bd,0x00000007, + 0x0004003b,0x00000033,0x000001c3,0x00000007,0x0004003b,0x00000033,0x000001c5,0x00000007, + 0x0004003b,0x00000033,0x000001c9,0x00000007,0x0004003b,0x00000007,0x000001cb,0x00000007, + 0x0004003d,0x00000006,0x00000182,0x00000079,0x0003003e,0x00000181,0x00000182,0x00050039, + 0x00000006,0x00000183,0x0000006b,0x00000181,0x0003003e,0x00000185,0x00000183,0x0003003e, + 0x00000186,0x00000184,0x00060039,0x00000006,0x00000187,0x0000001b,0x00000185,0x00000186, + 0x0003003e,0x00000180,0x00000187,0x0004003d,0x00000006,0x0000018a,0x00000180,0x0003003e, + 0x00000189,0x0000018a,0x00050039,0x00000006,0x0000018b,0x00000057,0x00000189,0x0003003e, + 0x00000188,0x0000018b,0x0004003d,0x00000012,0x0000018d,0x0000007a,0x0003003e,0x0000018c, + 0x0000018d,0x00050039,0x00000006,0x0000018e,0x0000005b,0x0000018c,0x0004003d,0x00000006, + 0x0000018f,0x00000188,0x000500ba,0x00000061,0x00000190,0x0000018e,0x0000018f,0x000600a9, + 0x00000006,0x00000191,0x00000190,0x00000096,0x00000095,0x0004003d,0x00000012,0x00000192, + 0x0000007a,0x0005008e,0x00000012,0x00000193,0x00000192,0x00000191,0x0003003e,0x0000007a, + 0x00000193,0x0004003d,0x00000025,0x00000195,0x00000078,0x0004006f,0x00000012,0x00000196, + 0x00000195,0x00050050,0x00000012,0x00000197,0x00000149,0x00000149,0x00050081,0x00000012, + 0x00000198,0x00000196,0x00000197,0x00040039,0x00000025,0x00000199,0x00000027,0x0004006f, + 0x00000012,0x0000019a,0x00000199,0x00050088,0x00000012,0x0000019b,0x00000198,0x0000019a, + 0x0003003e,0x00000194,0x0000019b,0x0004003d,0x00000012,0x0000019d,0x00000194,0x0004003d, + 0x00000012,0x0000019e,0x0000007a,0x00050081,0x00000012,0x0000019f,0x0000019d,0x0000019e, + 0x0003003e,0x0000019c,0x0000019f,0x00040039,0x00000025,0x000001a1,0x00000027,0x0004003d, + 0x00000012,0x000001a3,0x0000019c,0x0003003e,0x000001a2,0x000001a3,0x0003003e,0x000001a4, + 0x000001a1,0x00060039,0x00000071,0x000001a5,0x00000075,0x000001a2,0x000001a4,0x0003003e, + 0x000001a0,0x000001a5,0x0003003e,0x000001a7,0x000000ab,0x000200f9,0x000001a8,0x000200f8, + 0x000001a8,0x000400f6,0x000001aa,0x000001ab,0x00000000,0x000200f9,0x000001ac,0x000200f8, + 0x000001ac,0x0004003d,0x00000024,0x000001ad,0x000001a7,0x000500b1,0x00000061,0x000001af, + 0x000001ad,0x000001ae,0x000400fa,0x000001af,0x000001a9,0x000001aa,0x000200f8,0x000001a9, + 0x0004003d,0x00000024,0x000001b1,0x000001a7,0x00060041,0x00000033,0x000001b2,0x000001a0, + 0x000000ab,0x000001b1,0x0004003d,0x00000025,0x000001b3,0x000001b2,0x0003003e,0x000001b0, + 0x000001b3,0x0004003d,0x00000024,0x000001b5,0x000001a7,0x00060041,0x00000007,0x000001b6, + 0x000001a0,0x00000159,0x000001b5,0x0004003d,0x00000006,0x000001b7,0x000001b6,0x0003003e, + 0x000001b4,0x000001b7,0x0004003d,0x00000006,0x000001b8,0x000001b4,0x000500ba,0x00000061, + 0x000001ba,0x000001b8,0x000001b9,0x000300f7,0x000001bc,0x00000000,0x000400fa,0x000001ba, + 0x000001bb,0x000001bc,0x000200f8,0x000001bb,0x00050041,0x00000033,0x000001be,0x000001a0, + 0x0000014e,0x0004003d,0x00000025,0x000001bf,0x000001be,0x0004003d,0x00000025,0x000001c0, + 0x000001b0,0x00050080,0x00000025,0x000001c1,0x000001bf,0x000001c0,0x0003003e,0x000001bd, + 0x000001c1,0x00040039,0x00000025,0x000001c2,0x00000027,0x0004003d,0x00000025,0x000001c4, + 0x000001bd,0x0003003e,0x000001c3,0x000001c4,0x0003003e,0x000001c5,0x000001c2,0x00060039, + 0x00000061,0x000001c6,0x00000065,0x000001c3,0x000001c5,0x000300f7,0x000001c8,0x00000000, + 0x000400fa,0x000001c6,0x000001c7,0x000001c8,0x000200f8,0x000001c7,0x0004003d,0x00000025, + 0x000001ca,0x000001bd,0x0003003e,0x000001c9,0x000001ca,0x0004003d,0x00000006,0x000001cc, + 0x00000079,0x0003003e,0x000001cb,0x000001cc,0x00060039,0x00000002,0x000001cd,0x0000004b, + 0x000001c9,0x000001cb,0x000200f9,0x000001c8,0x000200f8,0x000001c8,0x000200f9,0x000001bc, + 0x000200f8,0x000001bc,0x000200f9,0x000001ab,0x000200f8,0x000001ab,0x0004003d,0x00000024, + 0x000001ce,0x000001a7,0x00050080,0x00000024,0x000001cf,0x000001ce,0x00000159,0x0003003e, + 0x000001a7,0x000001cf,0x000200f9,0x000001a8,0x000200f8,0x000001aa,0x000100fd,0x00010038, + 0x00050036,0x0000007d,0x00000080,0x00000000,0x0000007e,0x00030037,0x00000033,0x0000007f, + 0x000200f8,0x00000081,0x0004003b,0x000001a6,0x000001d0,0x00000007,0x0004003b,0x00000033, + 0x000001d8,0x00000007,0x0004003b,0x000001e4,0x000001e5,0x00000007,0x0004003b,0x000001ea, + 0x000001eb,0x00000007,0x0004003b,0x00000033,0x000001ed,0x00000007,0x0004003b,0x000001f3, + 0x000001f4,0x00000007,0x0004003b,0x00000033,0x00000204,0x00000007,0x0004003b,0x000001e4, + 0x00000207,0x00000007,0x0004003b,0x00000033,0x0000020c,0x00000007,0x0004003b,0x00000033, + 0x0000020e,0x00000007,0x0004003b,0x00000007,0x00000212,0x00000007,0x0004003b,0x00000007, + 0x0000021c,0x00000007,0x0004003b,0x00000007,0x0000021f,0x00000007,0x0003003e,0x000001d0, + 0x000000ab,0x0003003e,0x000001d0,0x000000ab,0x000200f9,0x000001d1,0x000200f8,0x000001d1, + 0x000400f6,0x000001d3,0x000001d4,0x00000000,0x000200f9,0x000001d5,0x000200f8,0x000001d5, + 0x0004003d,0x00000024,0x000001d6,0x000001d0,0x000500b1,0x00000061,0x000001d7,0x000001d6, + 0x000000b7,0x000400fa,0x000001d7,0x000001d2,0x000001d3,0x000200f8,0x000001d2,0x0004003d, + 0x00000025,0x000001d9,0x0000007f,0x0004003d,0x00000024,0x000001e3,0x000001d0,0x0003003e, + 0x000001e5,0x000001e2,0x00050041,0x00000033,0x000001e6,0x000001e5,0x000001e3,0x0004003d, + 0x00000025,0x000001e7,0x000001e6,0x00050080,0x00000025,0x000001e8,0x000001d9,0x000001e7, + 0x0003003e,0x000001d8,0x000001e8,0x0004003d,0x00000024,0x000001ec,0x000001d0,0x0004003d, + 0x00000025,0x000001ee,0x000001d8,0x0003003e,0x000001ed,0x000001ee,0x00050039,0x00000006, + 0x000001ef,0x00000036,0x000001ed,0x00050041,0x00000007,0x000001f0,0x000001eb,0x000001ec, + 0x0003003e,0x000001f0,0x000001ef,0x000200f9,0x000001d4,0x000200f8,0x000001d4,0x0004003d, + 0x00000024,0x000001f1,0x000001d0,0x00050080,0x00000024,0x000001f2,0x000001f1,0x00000159, + 0x0003003e,0x000001d0,0x000001f2,0x000200f9,0x000001d1,0x000200f8,0x000001d3,0x0004003d, + 0x00000025,0x000001f5,0x0000007f,0x00050041,0x00000033,0x000001f6,0x000001f4,0x00000159, + 0x0003003e,0x000001f6,0x000001f5,0x00050041,0x00000007,0x000001f7,0x000001eb,0x000000ab, + 0x0004003d,0x00000006,0x000001f8,0x000001f7,0x00050041,0x00000007,0x000001f9,0x000001f4, + 0x000000ab,0x0003003e,0x000001f9,0x000001f8,0x00050041,0x00000007,0x000001fa,0x000001eb, + 0x000000ab,0x0004003d,0x00000006,0x000001fb,0x000001fa,0x00050041,0x00000007,0x000001fc, + 0x000001f4,0x0000014e,0x0003003e,0x000001fc,0x000001fb,0x0003003e,0x000001d0,0x00000159, + 0x000200f9,0x000001fd,0x000200f8,0x000001fd,0x000400f6,0x000001ff,0x00000200,0x00000000, + 0x000200f9,0x00000201,0x000200f8,0x00000201,0x0004003d,0x00000024,0x00000202,0x000001d0, + 0x000500b1,0x00000061,0x00000203,0x00000202,0x000000b7,0x000400fa,0x00000203,0x000001fe, + 0x000001ff,0x000200f8,0x000001fe,0x0004003d,0x00000025,0x00000205,0x0000007f,0x0004003d, + 0x00000024,0x00000206,0x000001d0,0x0003003e,0x00000207,0x000001e2,0x00050041,0x00000033, + 0x00000208,0x00000207,0x00000206,0x0004003d,0x00000025,0x00000209,0x00000208,0x00050080, + 0x00000025,0x0000020a,0x00000205,0x00000209,0x0003003e,0x00000204,0x0000020a,0x00040039, + 0x00000025,0x0000020b,0x00000027,0x0004003d,0x00000025,0x0000020d,0x00000204,0x0003003e, + 0x0000020c,0x0000020d,0x0003003e,0x0000020e,0x0000020b,0x00060039,0x00000061,0x0000020f, + 0x00000065,0x0000020c,0x0000020e,0x000300f7,0x00000211,0x00000000,0x000400fa,0x0000020f, + 0x00000210,0x00000211,0x000200f8,0x00000210,0x0004003d,0x00000024,0x00000213,0x000001d0, + 0x00050041,0x00000007,0x00000214,0x000001eb,0x00000213,0x0004003d,0x00000006,0x00000215, + 0x00000214,0x0003003e,0x00000212,0x00000215,0x0004003d,0x00000006,0x00000216,0x00000212, + 0x00050041,0x00000007,0x00000217,0x000001f4,0x000000ab,0x0004003d,0x00000006,0x00000218, + 0x00000217,0x000500ba,0x00000061,0x00000219,0x00000216,0x00000218,0x000300f7,0x0000021b, + 0x00000000,0x000400fa,0x00000219,0x0000021a,0x0000021b,0x000200f8,0x0000021a,0x00050041, + 0x00000007,0x0000021d,0x000001f4,0x0000014e,0x0004003d,0x00000006,0x0000021e,0x0000021d, + 0x0003003e,0x0000021c,0x0000021e,0x0004003d,0x00000006,0x00000220,0x00000212,0x0003003e, + 0x0000021f,0x00000220,0x00060039,0x00000006,0x00000221,0x0000001b,0x0000021c,0x0000021f, + 0x00050041,0x00000007,0x00000222,0x000001f4,0x0000014e,0x0003003e,0x00000222,0x00000221, + 0x0004003d,0x00000025,0x00000223,0x00000204,0x00050041,0x00000033,0x00000224,0x000001f4, + 0x00000159,0x0003003e,0x00000224,0x00000223,0x0004003d,0x00000006,0x00000225,0x00000212, + 0x00050041,0x00000007,0x00000226,0x000001f4,0x000000ab,0x0003003e,0x00000226,0x00000225, + 0x000200f9,0x0000021b,0x000200f8,0x0000021b,0x000200f9,0x00000211,0x000200f8,0x00000211, + 0x000200f9,0x00000200,0x000200f8,0x00000200,0x0004003d,0x00000024,0x00000227,0x000001d0, + 0x00050080,0x00000024,0x00000228,0x00000227,0x00000159,0x0003003e,0x000001d0,0x00000228, + 0x000200f9,0x000001fd,0x000200f8,0x000001ff,0x0004003d,0x0000007d,0x00000229,0x000001f4, + 0x000200fe,0x00000229,0x00010038,0x00050036,0x00000012,0x00000085,0x00000000,0x00000082, + 0x00030037,0x00000033,0x00000083,0x00030037,0x0000007d,0x00000084,0x000200f8,0x00000086, + 0x0004003b,0x00000033,0x0000022c,0x00000007,0x0004003b,0x00000033,0x0000022e,0x00000007, + 0x0004003b,0x00000013,0x00000230,0x00000007,0x0004003b,0x00000033,0x00000231,0x00000007, + 0x0004003d,0x00000025,0x0000022d,0x00000083,0x0003003e,0x0000022c,0x0000022d,0x00050051, + 0x00000025,0x0000022f,0x00000084,0x00000001,0x0003003e,0x0000022e,0x0000022f,0x0004003d, + 0x00000025,0x00000232,0x0000022e,0x0003003e,0x00000231,0x00000232,0x00050039,0x00000012, + 0x00000233,0x0000003e,0x00000231,0x0003003e,0x00000230,0x00000233,0x0004003d,0x00000012, + 0x00000234,0x00000230,0x000200fe,0x00000234,0x00010038,0x00050036,0x00000006,0x00000088, + 0x00000000,0x00000034,0x00030037,0x00000033,0x00000087,0x000200f8,0x00000089,0x0004003b, + 0x0000001e,0x00000237,0x00000007,0x0004003b,0x00000033,0x00000239,0x00000007,0x0004003b, + 0x0000001e,0x0000023c,0x00000007,0x0004003b,0x0000001e,0x0000023d,0x00000007,0x0004003b, + 0x00000007,0x0000023f,0x00000007,0x0004003b,0x0000001e,0x00000240,0x00000007,0x0004003d, + 0x00000025,0x0000023a,0x00000087,0x0003003e,0x00000239,0x0000023a,0x00050039,0x0000001d, + 0x0000023b,0x0000003a,0x00000239,0x0003003e,0x0000023c,0x00000238,0x0003003e,0x0000023d, + 0x0000023b,0x00060039,0x0000001d,0x0000023e,0x00000022,0x0000023c,0x0000023d,0x0003003e, + 0x00000237,0x0000023e,0x0004003d,0x0000001d,0x00000241,0x00000237,0x0003003e,0x00000240, + 0x00000241,0x00050039,0x00000006,0x00000242,0x0000005f,0x00000240,0x0003003e,0x0000023f, + 0x00000242,0x0004003d,0x00000006,0x00000243,0x0000023f,0x000200fe,0x00000243,0x00010038, + 0x00050036,0x00000002,0x0000008c,0x00000000,0x0000008a,0x00030037,0x00000033,0x0000008b, + 0x000200f8,0x0000008d,0x0004003b,0x000001f3,0x00000246,0x00000007,0x0004003b,0x00000033, + 0x00000247,0x00000007,0x0004003b,0x00000013,0x0000024a,0x00000007,0x0004003b,0x00000033, + 0x0000024c,0x00000007,0x0004003b,0x00000033,0x0000024f,0x00000007,0x0004003b,0x00000007, + 0x00000251,0x00000007,0x0004003b,0x00000013,0x00000254,0x00000007,0x0004003b,0x00000033, + 0x00000257,0x00000007,0x0004003b,0x00000013,0x00000259,0x00000007,0x0004003b,0x00000033, + 0x0000025c,0x00000007,0x0004003b,0x00000007,0x0000025e,0x00000007,0x0004003b,0x00000007, + 0x00000262,0x00000007,0x0004003b,0x00000007,0x00000263,0x00000007,0x0004003b,0x00000007, + 0x00000267,0x00000007,0x0004003b,0x00000007,0x00000268,0x00000007,0x0004003b,0x00000033, + 0x0000026a,0x00000007,0x0004003b,0x00000007,0x0000026c,0x00000007,0x0004003b,0x00000007, + 0x0000026f,0x00000007,0x0004003b,0x00000033,0x00000270,0x00000007,0x0004003b,0x00000033, + 0x00000273,0x00000007,0x0004003b,0x00000007,0x00000275,0x00000007,0x0004003d,0x00000025, + 0x00000248,0x0000008b,0x0003003e,0x00000247,0x00000248,0x00050039,0x0000007d,0x00000249, + 0x00000080,0x00000247,0x0003003e,0x00000246,0x00000249,0x0004003d,0x0000007d,0x0000024b, + 0x00000246,0x0004003d,0x00000025,0x0000024d,0x0000008b,0x0003003e,0x0000024c,0x0000024d, + 0x00060039,0x00000012,0x0000024e,0x00000085,0x0000024c,0x0000024b,0x0003003e,0x0000024a, + 0x0000024e,0x0004003d,0x00000025,0x00000250,0x0000008b,0x0003003e,0x0000024f,0x00000250, + 0x00050041,0x00000007,0x00000252,0x00000246,0x000000ab,0x0004003d,0x00000006,0x00000253, + 0x00000252,0x0003003e,0x00000251,0x00000253,0x0004003d,0x00000012,0x00000255,0x0000024a, + 0x0003003e,0x00000254,0x00000255,0x00070039,0x00000002,0x00000256,0x0000007b,0x0000024f, + 0x00000251,0x00000254,0x0004003d,0x00000025,0x00000258,0x0000008b,0x0003003e,0x00000257, + 0x00000258,0x0004003d,0x00000012,0x0000025a,0x0000024a,0x0003003e,0x00000259,0x0000025a, + 0x00060039,0x00000002,0x0000025b,0x00000054,0x00000257,0x00000259,0x0004003d,0x00000025, + 0x0000025d,0x0000008b,0x0003003e,0x0000025c,0x0000025d,0x00050041,0x00000007,0x0000025f, + 0x00000246,0x000000ab,0x0004003d,0x00000006,0x00000260,0x0000025f,0x0003003e,0x0000025e, + 0x00000260,0x00060039,0x00000002,0x00000261,0x0000004f,0x0000025c,0x0000025e,0x00050041, + 0x00000007,0x00000264,0x00000246,0x0000014e,0x0004003d,0x00000006,0x00000265,0x00000264, + 0x0003003e,0x00000263,0x00000265,0x00050039,0x00000006,0x00000266,0x0000006b,0x00000263, + 0x0003003e,0x00000267,0x00000266,0x0003003e,0x00000268,0x00000184,0x00060039,0x00000006, + 0x00000269,0x0000001b,0x00000267,0x00000268,0x0003003e,0x00000262,0x00000269,0x0004003d, + 0x00000025,0x0000026b,0x0000008b,0x0003003e,0x0000026a,0x0000026b,0x0004003d,0x00000006, + 0x0000026d,0x00000262,0x0003003e,0x0000026c,0x0000026d,0x00060039,0x00000002,0x0000026e, + 0x00000043,0x0000026a,0x0000026c,0x0004003d,0x00000025,0x00000271,0x0000008b,0x0003003e, + 0x00000270,0x00000271,0x00050039,0x00000006,0x00000272,0x00000088,0x00000270,0x0003003e, + 0x0000026f,0x00000272,0x0004003d,0x00000025,0x00000274,0x0000008b,0x0003003e,0x00000273, + 0x00000274,0x0004003d,0x00000006,0x00000276,0x0000026f,0x0003003e,0x00000275,0x00000276, + 0x00060039,0x00000002,0x00000277,0x00000047,0x00000273,0x00000275,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h b/gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h new file mode 100644 index 000000000..dbf1c35f9 --- /dev/null +++ b/gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h @@ -0,0 +1,1083 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_PREPARE_REACTIVITY_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000523,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000513,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005, + 0x0000000c,0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000009, + 0x00000078,0x00030005,0x0000000a,0x00000079,0x00030005,0x0000000b,0x00000074,0x00060005, + 0x00000010,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x0000000f,0x00000078, + 0x00060005,0x00000016,0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000015, + 0x00000078,0x00060005,0x0000001b,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005, + 0x00000019,0x00000078,0x00030005,0x0000001a,0x00000079,0x00060005,0x00000020,0x4d786666, + 0x76286e69,0x763b3266,0x003b3266,0x00030005,0x0000001e,0x00000078,0x00030005,0x0000001f, + 0x00000079,0x00060005,0x00000027,0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005, + 0x00000025,0x00000078,0x00030005,0x00000026,0x00000079,0x00060005,0x0000002b,0x4d786666, + 0x66287861,0x31663b31,0x0000003b,0x00030005,0x00000029,0x00000078,0x00030005,0x0000002a, + 0x00000079,0x00060005,0x0000002f,0x4d786666,0x76287861,0x763b3266,0x003b3266,0x00030005, + 0x0000002d,0x00000078,0x00030005,0x0000002e,0x00000079,0x00060005,0x00000033,0x4d786666, + 0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000031,0x00000078,0x00030005,0x00000032, + 0x00000079,0x00050005,0x00000037,0x646e6552,0x69537265,0x0028657a,0x00090005,0x00000039, + 0x76657250,0x73756f69,0x6d617246,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00060005, + 0x0000003b,0x5278614d,0x65646e65,0x7a695372,0x00002865,0x00060005,0x0000003d,0x63737055, + 0x53656c61,0x28657a69,0x00000000,0x00040005,0x00000040,0x7474694a,0x00287265,0x000b0005, + 0x00000044,0x69766544,0x6f546563,0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72, + 0x726f7463,0x00002873,0x00090005,0x00000047,0x77656956,0x63617053,0x4d6f5465,0x72657465, + 0x63614673,0x28726f74,0x00000000,0x00090005,0x00000049,0x75636341,0x616c756d,0x6e6f6974, + 0x65646441,0x72655064,0x6d617246,0x00002865,0x000a0005,0x0000004b,0x446e694d,0x636f7369, + 0x73756c63,0x416e6f69,0x6d756363,0x74616c75,0x286e6f69,0x00000000,0x00080005,0x00000050, + 0x64616f4c,0x63616552,0x65766974,0x6b73614d,0x32697628,0x0000003b,0x00040005,0x0000004f, + 0x50785069,0x0000736f,0x00100005,0x00000052,0x54746547,0x736e6172,0x65726170,0x4179636e, + 0x6f43646e,0x736f706d,0x6f697469,0x73614d6e,0x7365526b,0x6372756f,0x6d694465,0x69736e65, + 0x28736e6f,0x00000000,0x000d0005,0x00000056,0x706d6153,0x7254656c,0x70736e61,0x6e657261, + 0x6e417963,0x6d6f4364,0x69736f70,0x6e6f6974,0x6b73614d,0x32667628,0x0000003b,0x00030005, + 0x00000055,0x00565566,0x00080005,0x00000059,0x706d6153,0x6341656c,0x756d7563,0x6974616c, + 0x76286e6f,0x003b3266,0x00030005,0x00000058,0x00565566,0x00090005,0x0000005e,0x726f7453, + 0x63634165,0x6c756d75,0x6f697461,0x6976286e,0x31663b32,0x0000003b,0x00040005,0x0000005c, + 0x50785069,0x0000736f,0x00060005,0x0000005d,0x63634166,0x6c756d75,0x6f697461,0x0000006e, + 0x00090005,0x00000061,0x706d6153,0x6853656c,0x6e696461,0x61684367,0x2865676e,0x3b326676, + 0x00000000,0x00030005,0x00000060,0x00565566,0x00080005,0x00000064,0x64616f4c,0x72727543, + 0x4c746e65,0x28616d75,0x3b326976,0x00000000,0x00040005,0x00000063,0x50785069,0x0000736f, + 0x00080005,0x00000068,0x726f7453,0x77654e65,0x6b636f4c,0x69762873,0x31663b32,0x0000003b, + 0x00040005,0x00000066,0x50785069,0x0000736f,0x00040005,0x00000067,0x4c77656e,0x006b636f, + 0x000a0005,0x0000006b,0x64616f4c,0x6f636552,0x7274736e,0x65746375,0x65725064,0x70654476, + 0x76286874,0x003b3269,0x00040005,0x0000006a,0x50785069,0x0000736f,0x000a0005,0x0000006f, + 0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x00000000, + 0x00050005,0x0000006e,0x49785069,0x7475706e,0x00000000,0x00080005,0x00000072,0x64616f4c, + 0x616c6944,0x44646574,0x68747065,0x32697628,0x0000003b,0x00050005,0x00000071,0x49785069, + 0x7475706e,0x00000000,0x00050005,0x00000074,0x6f707845,0x65727573,0x00000028,0x000b0005, + 0x0000007a,0x726f7453,0x6c694465,0x64657461,0x63616552,0x65766974,0x6b73614d,0x69762873, + 0x66763b32,0x00003b34,0x00040005,0x00000078,0x50785069,0x0000736f,0x00080005,0x00000079, + 0x6c694466,0x64657461,0x63616552,0x65766974,0x6b73614d,0x00000073,0x000b0005,0x0000007d, + 0x6f636552,0x7274736e,0x65746375,0x70654464,0x764d6874,0x68547850,0x68736572,0x28646c6f, + 0x003b3166,0x00080005,0x0000007c,0x61654e66,0x74736572,0x74706544,0x4d6e4968,0x72657465, + 0x00000073,0x00090005,0x0000007f,0x64616853,0x43676e69,0x676e6168,0x6e655265,0x53726564, + 0x28657a69,0x00000000,0x00090005,0x00000081,0x64616853,0x43676e69,0x676e6168,0x78614d65, + 0x646e6552,0x69537265,0x0028657a,0x00070005,0x00000084,0x34746547,0x6c65564b,0x7469636f, + 0x66762879,0x00003b32,0x00060005,0x00000083,0x746f4d66,0x566e6f69,0x6f746365,0x00000072, + 0x00080005,0x00000089,0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31, + 0x00030005,0x00000087,0x00003076,0x00030005,0x00000088,0x00003176,0x00060005,0x0000008e, + 0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x0000008d,0x00765566,0x00080005, + 0x00000094,0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005, + 0x00000091,0x53785069,0x6c706d61,0x00000065,0x00050005,0x00000092,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x00000093,0x78655469,0x65727574,0x657a6953,0x00000000,0x00080005, + 0x0000009a,0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976,0x00000000,0x00030005, + 0x00000097,0x00765566,0x00060005,0x00000098,0x78655469,0x65727574,0x657a6953,0x00000000, + 0x00060005,0x00000099,0x73655269,0x6372756f,0x7a695365,0x00000065,0x00070005,0x0000009f, + 0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000009d,0x00736f70, + 0x00040005,0x0000009e,0x657a6973,0x00000000,0x00090005,0x000000a3,0x706d6f43,0x48657475, + 0x736f5072,0x6d6f7246,0x6f50724c,0x69762873,0x00003b32,0x00050005,0x000000a2,0x4c785069, + 0x736f5072,0x00000000,0x00080005,0x000000a6,0x56746547,0x53776569,0x65636170,0x74706544, + 0x31662868,0x0000003b,0x00060005,0x000000a5,0x76654466,0x44656369,0x68747065,0x00000000, + 0x000a0005,0x000000a9,0x56746547,0x53776569,0x65636170,0x74706544,0x4d6e4968,0x72657465, + 0x31662873,0x0000003b,0x00060005,0x000000a8,0x76654466,0x44656369,0x68747065,0x00000000, + 0x00080005,0x000000af,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000, + 0x00060006,0x000000af,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x000000af, + 0x00000001,0x69655766,0x73746867,0x00000000,0x00060006,0x000000af,0x00000002,0x73614269, + 0x736f5065,0x00000000,0x000b0005,0x000000b3,0x42746547,0x6e696c69,0x53726165,0x6c706d61, + 0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x000000b1,0x00765566, + 0x00040005,0x000000b2,0x7a695369,0x00000065,0x000b0005,0x000000b9,0x706d6f43,0x44657475, + 0x636f7369,0x73756c63,0x736e6f69,0x32667628,0x3266763b,0x3b31663b,0x00000000,0x00030005, + 0x000000b6,0x00765566,0x00060005,0x000000b7,0x746f4d66,0x566e6f69,0x6f746365,0x00000072, + 0x00080005,0x000000b8,0x72754366,0x746e6572,0x74706544,0x65695668,0x61705377,0x00006563, + 0x000b0005,0x000000be,0x706d6f43,0x4d657475,0x6f69746f,0x7669446e,0x65677265,0x2865636e, + 0x3b326676,0x3b326676,0x003b3166,0x00030005,0x000000bb,0x00765566,0x00060005,0x000000bc, + 0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00070005,0x000000bd,0x72754366,0x746e6572, + 0x74706544,0x6d615368,0x00656c70,0x000a0005,0x000000c3,0x616c6944,0x65526574,0x69746361, + 0x614d6576,0x28736b73,0x3b326976,0x3b326676,0x00000000,0x00040005,0x000000c1,0x50785069, + 0x0000736f,0x00030005,0x000000c2,0x00765566,0x000e0005,0x000000c7,0x616c6944,0x72546574, + 0x70736e61,0x6e657261,0x6e417963,0x6d6f4364,0x69736f70,0x6e6f6974,0x6b73614d,0x69762873, + 0x66763b32,0x00003b32,0x00040005,0x000000c5,0x50785069,0x0000736f,0x00030005,0x000000c6, + 0x00765566,0x000b0005,0x000000ca,0x706d6f43,0x54657475,0x466e6968,0x75746165,0x6f436572, + 0x6469666e,0x65636e65,0x32697628,0x0000003b,0x00040005,0x000000c9,0x50785069,0x0000736f, + 0x000c0005,0x000000d2,0x61647055,0x63416574,0x756d7563,0x6974616c,0x76286e6f,0x763b3269, + 0x763b3266,0x663b3266,0x31663b31,0x0000003b,0x00040005,0x000000cd,0x50785069,0x0000736f, + 0x00030005,0x000000ce,0x00765566,0x00060005,0x000000cf,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00060005,0x000000d0,0x73694466,0x6c63636f,0x6f697375,0x0000006e,0x00060005, + 0x000000d1,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00090005,0x000000d5,0x706d6f43, + 0x53657475,0x69646168,0x6843676e,0x65676e61,0x32667628,0x0000003b,0x00030005,0x000000d4, + 0x00765566,0x00080005,0x000000d9,0x70657250,0x52657261,0x74636165,0x74697669,0x69762879, + 0x00003b32,0x00040005,0x000000d8,0x50785069,0x0000736f,0x00070005,0x00000109,0x53466263, + 0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x00000109,0x00000000,0x6e655269, + 0x53726564,0x00657a69,0x000a0006,0x00000109,0x00000001,0x65725069,0x756f6976,0x61724673, + 0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x00000109,0x00000002,0x73705569, + 0x656c6163,0x657a6953,0x00000000,0x000a0006,0x00000109,0x00000003,0x65725069,0x756f6976, + 0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000109,0x00000004, + 0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x00000109,0x00000005,0x78614d69, + 0x63737055,0x53656c61,0x00657a69,0x00080006,0x00000109,0x00000006,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00050006,0x00000109,0x00000007,0x74694a66,0x00726574, + 0x00090006,0x00000109,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474, + 0x00000000,0x00080006,0x00000109,0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372, + 0x0000656c,0x00080006,0x00000109,0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463, + 0x00000000,0x000b0006,0x00000109,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72, + 0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x00000109,0x0000000c,0x6e615466, + 0x666c6148,0x00564f46,0x00090006,0x00000109,0x0000000d,0x74694a66,0x53726574,0x65757165, + 0x4c65636e,0x74676e65,0x00000068,0x00060006,0x00000109,0x0000000e,0x6c654466,0x69546174, + 0x0000656d,0x00080006,0x00000109,0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f, + 0x00000065,0x000a0006,0x00000109,0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d, + 0x61467372,0x726f7463,0x00000000,0x00060006,0x00000109,0x00000011,0x61724666,0x6e49656d, + 0x00786564,0x00070006,0x00000109,0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74, + 0x00080006,0x00000109,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c, + 0x00080006,0x00000109,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61, + 0x000a0006,0x00000109,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465, + 0x61724672,0x0000656d,0x000b0006,0x00000109,0x00000016,0x6e694d66,0x6f736944,0x756c6363, + 0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x0000010b,0x53466263, + 0x70553352,0x6c616373,0x00007265,0x00060005,0x0000013f,0x65725f72,0x69746361,0x6d5f6576, + 0x006b7361,0x000b0005,0x0000014b,0x72745f72,0x70736e61,0x6e657261,0x615f7963,0x635f646e, + 0x6f706d6f,0x69746973,0x6d5f6e6f,0x006b7361,0x00060005,0x00000153,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00060005,0x0000015c,0x63615f72,0x756d7563,0x6974616c,0x00006e6f, + 0x00060005,0x00000167,0x615f7772,0x6d756363,0x74616c75,0x006e6f69,0x00070005,0x0000016c, + 0x68735f72,0x6e696461,0x68635f67,0x65676e61,0x00000000,0x00060005,0x00000179,0x75635f72, + 0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x00000180,0x6e5f7772,0x6c5f7765,0x736b636f, + 0x00000000,0x000c0005,0x00000187,0x65725f72,0x736e6f63,0x63757274,0x5f646574,0x76657270, + 0x73756f69,0x61656e5f,0x74736572,0x7065645f,0x00006874,0x00090005,0x00000190,0x69645f72, + 0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00060005,0x00000197, + 0x69645f72,0x6574616c,0x65645f64,0x00687470,0x00050005,0x0000019e,0x6f707865,0x65727573, + 0x00000000,0x00070005,0x0000019f,0x6e695f72,0x5f747570,0x6f707865,0x65727573,0x00000000, + 0x00090005,0x000001ad,0x645f7772,0x74616c69,0x725f6465,0x74636165,0x5f657669,0x6b73616d, + 0x00000073,0x00040005,0x000001b6,0x61726170,0x0000006d,0x00040005,0x000001b8,0x61726170, + 0x0000006d,0x00040005,0x000001b9,0x61726170,0x0000006d,0x00040005,0x000001ba,0x61726170, + 0x0000006d,0x00030005,0x000001d3,0x0000006d,0x00040005,0x000001d4,0x61726170,0x0000006d, + 0x00040005,0x000001d5,0x61726170,0x0000006d,0x00040005,0x000001dc,0x61726170,0x0000006d, + 0x00040005,0x000001dd,0x61726170,0x0000006d,0x00040005,0x000001fd,0x75736572,0x0000746c, + 0x00040005,0x00000204,0x61726170,0x0000006d,0x00040005,0x00000207,0x61726170,0x0000006d, + 0x00040005,0x00000209,0x61726170,0x0000006d,0x00040005,0x0000020a,0x61726170,0x0000006d, + 0x00040005,0x00000210,0x61726170,0x0000006d,0x00040005,0x00000213,0x61726170,0x0000006d, + 0x00040005,0x00000215,0x61726170,0x0000006d,0x00040005,0x00000216,0x61726170,0x0000006d, + 0x00060005,0x0000021c,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x00000221, + 0x616c4366,0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x00000226,0x61726170, + 0x0000006d,0x00040005,0x00000228,0x61726170,0x0000006d,0x00040005,0x0000022a,0x61726170, + 0x0000006d,0x00040005,0x0000022b,0x61726170,0x0000006d,0x00050005,0x0000022d,0x616c4366, + 0x6465706d,0x00007655,0x00060005,0x0000023f,0x63725366,0x7474694a,0x64657265,0x00736f50, + 0x00050005,0x00000246,0x50724c66,0x6e49736f,0x00007248,0x00050005,0x0000024e,0x48785069, + 0x736f5072,0x00000000,0x00070005,0x00000255,0x76654466,0x54656369,0x6569566f,0x70654477, + 0x00006874,0x00040005,0x00000260,0x61726170,0x0000006d,0x00050005,0x00000267,0x53785066, + 0x6c706d61,0x00000065,0x00040005,0x0000026e,0x61746164,0x00000000,0x00040005,0x00000273, + 0x46785066,0x00636172,0x00040005,0x00000274,0x61726170,0x0000006d,0x00080005,0x0000029e, + 0x61654e66,0x74736572,0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00040005,0x000002a3, + 0x61726170,0x0000006d,0x00040005,0x000002a4,0x61726170,0x0000006d,0x000a0005,0x000002a6, + 0x63655266,0x74736e6f,0x74637572,0x65446465,0x764d7470,0x65726854,0x6c6f6873,0x00000064, + 0x00040005,0x000002a7,0x61726170,0x0000006d,0x00040005,0x000002aa,0x61726170,0x0000006d, + 0x00060005,0x000002b2,0x70655266,0x656a6f72,0x64657463,0x00007655,0x00060005,0x000002b6, + 0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000002b8,0x61726170,0x0000006d, + 0x00040005,0x000002ba,0x61726170,0x0000006d,0x00060005,0x000002bc,0x73694466,0x6c63636f, + 0x6f697375,0x0000006e,0x00050005,0x000002bd,0x69655766,0x53746867,0x00006d75,0x00080005, + 0x000002bf,0x746f5062,0x69746e65,0x69446c61,0x63636f73,0x6973756c,0x00006e6f,0x00060005, + 0x000002c1,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x000002cb,0x66664f69, + 0x00746573,0x00050005,0x000002cf,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x000002d1, + 0x61726170,0x0000006d,0x00040005,0x000002d4,0x61726170,0x0000006d,0x00040005,0x000002d6, + 0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005,0x000002db, + 0x61726170,0x0000006d,0x00040005,0x000002df,0x69655766,0x00746867,0x00090005,0x000002e8, + 0x65725066,0x61654e76,0x74736572,0x74706544,0x65695668,0x61705377,0x00006563,0x00040005, + 0x000002e9,0x61726170,0x0000006d,0x00040005,0x000002ec,0x61726170,0x0000006d,0x00070005, + 0x000002ee,0x70654466,0x69446874,0x72656666,0x65636e65,0x00000000,0x00070005,0x000002fa, + 0x6c614866,0x65695666,0x726f7077,0x64695774,0x00006874,0x00060005,0x000002ff,0x70654466, + 0x68546874,0x68736572,0x00646c6f,0x00040005,0x00000300,0x61726170,0x0000006d,0x00040005, + 0x00000302,0x61726170,0x0000006d,0x00090005,0x00000305,0x71655266,0x65726975,0x70654464, + 0x65536874,0x61726170,0x6e6f6974,0x00000000,0x00040005,0x0000030e,0x61726170,0x0000006d, + 0x00040005,0x00000324,0x61726170,0x0000006d,0x00070005,0x0000032b,0x52785069,0x6f727065, + 0x7463656a,0x6f506465,0x00000073,0x00070005,0x00000333,0x70655266,0x656a6f72,0x64657463, + 0x74706544,0x00000068,0x00040005,0x00000334,0x61726170,0x0000006d,0x00090005,0x00000337, + 0x70655266,0x656a6f72,0x64657463,0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005, + 0x00000338,0x61726170,0x0000006d,0x00080005,0x0000033b,0x70655266,0x656a6f72,0x64657463, + 0x6f6c6556,0x79746963,0x00000000,0x00040005,0x0000033c,0x61726170,0x0000006d,0x00050005, + 0x0000033f,0x564b3466,0x636f6c65,0x00797469,0x00040005,0x00000340,0x61726170,0x0000006d, + 0x00040005,0x00000343,0x78614d66,0x006e654c,0x00080005,0x00000349,0x63754e66,0x7375656c, + 0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00040005,0x0000034a,0x61726170,0x0000006d, + 0x00080005,0x0000034d,0x72754366,0x746e6572,0x74706544,0x4d6e4968,0x72657465,0x00000073, + 0x00040005,0x0000034e,0x61726170,0x0000006d,0x00060005,0x00000351,0x73694466,0x636e6174, + 0x63614665,0x00726f74,0x00060005,0x00000355,0x6c655666,0x7469636f,0x63614679,0x00726f74, + 0x00040005,0x00000359,0x61726170,0x0000006d,0x000a0005,0x0000035b,0x746f4d66,0x566e6f69, + 0x6f746365,0x65694672,0x6f43646c,0x6469666e,0x65636e65,0x00000000,0x00040005,0x0000035f, + 0x61726170,0x0000006d,0x00080005,0x00000369,0x6c694466,0x64657461,0x63616552,0x65766974, + 0x6b73614d,0x00000073,0x00030005,0x0000036a,0x00000079,0x00030005,0x00000373,0x00000078, + 0x00050005,0x0000037b,0x706d6173,0x6f43656c,0x0064726f,0x00040005,0x00000380,0x61726170, + 0x0000006d,0x00040005,0x00000382,0x61726170,0x0000006d,0x00040005,0x00000383,0x61726170, + 0x0000006d,0x00040005,0x00000385,0x61726170,0x0000006d,0x00040005,0x00000388,0x61726170, + 0x0000006d,0x00040005,0x0000038a,0x61726170,0x0000006d,0x000b0005,0x00000393,0x54765566, + 0x736e6172,0x65726170,0x4179636e,0x6f43646e,0x736f706d,0x6f697469,0x73614d6e,0x0000006b, + 0x00040005,0x00000396,0x61726170,0x0000006d,0x00040005,0x00000398,0x61726170,0x0000006d, + 0x00040005,0x00000399,0x61726170,0x0000006d,0x00040005,0x0000039b,0x61726170,0x0000006d, + 0x00050005,0x000003a0,0x6d754c66,0x6e694d61,0x00000000,0x00050005,0x000003a2,0x6d754c66, + 0x78614d61,0x00000000,0x00060005,0x000003a3,0x6d615369,0x49656c70,0x7865646e,0x00000000, + 0x00060005,0x000003ac,0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005,0x000003b7, + 0x61726170,0x0000006d,0x00040005,0x000003b9,0x61726170,0x0000006d,0x00050005,0x000003bb, + 0x65646e69,0x6c626178,0x00000065,0x00040005,0x000003be,0x61726170,0x0000006d,0x00050005, + 0x000003c2,0x6d615366,0x73656c70,0x00000000,0x00040005,0x000003c4,0x61726170,0x0000006d, + 0x00040005,0x000003cb,0x61726170,0x0000006d,0x00040005,0x000003cd,0x61726170,0x0000006d, + 0x00040005,0x000003d2,0x61726170,0x0000006d,0x00040005,0x000003d4,0x61726170,0x0000006d, + 0x00070005,0x000003da,0x73694466,0x696d6973,0x4c72616c,0x4d616d75,0x00006e69,0x00070005, + 0x000003db,0x73694466,0x696d6973,0x4c72616c,0x4d616d75,0x00007861,0x00060005,0x000003dd, + 0x74615075,0x6e726574,0x6b73614d,0x00000000,0x00050005,0x000003de,0x74694269,0x65646e49, + 0x00000078,0x00060005,0x000003df,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00050005, + 0x000003e7,0x66694466,0x65726566,0x0065636e,0x00040005,0x000003fe,0x61726170,0x0000006d, + 0x00040005,0x00000400,0x61726170,0x0000006d,0x00040005,0x00000405,0x61726170,0x0000006d, + 0x00040005,0x00000407,0x61726170,0x0000006d,0x00050005,0x0000040f,0x52734962,0x65676469, + 0x00000000,0x00030005,0x00000422,0x00000069,0x00050005,0x00000434,0x65646e69,0x6c626178, + 0x00000065,0x00050005,0x00000439,0x65646e69,0x6c626178,0x00000065,0x00060005,0x00000448, + 0x70655266,0x656a6f72,0x64657463,0x00007655,0x00060005,0x0000044c,0x63634166,0x6c756d75, + 0x6f697461,0x0000006e,0x00040005,0x0000044d,0x61726170,0x0000006d,0x00070005,0x00000452, + 0x70655266,0x656a6f72,0x64657463,0x485f7655,0x00000057,0x00040005,0x00000455,0x61726170, + 0x0000006d,0x00040005,0x00000457,0x61726170,0x0000006d,0x00040005,0x00000458,0x61726170, + 0x0000006d,0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045d,0x61726170, + 0x0000006d,0x00090005,0x0000045f,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465, + 0x61724672,0x0000656d,0x00040005,0x00000461,0x61726170,0x0000006d,0x00040005,0x00000463, + 0x61726170,0x0000006d,0x00040005,0x00000464,0x61726170,0x0000006d,0x000a0005,0x00000467, + 0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000, + 0x00040005,0x00000469,0x61726170,0x0000006d,0x00040005,0x0000046b,0x61726170,0x0000006d, + 0x00040005,0x0000046e,0x61726170,0x0000006d,0x00040005,0x00000470,0x61726170,0x0000006d, + 0x00040005,0x00000471,0x61726170,0x0000006d,0x00090005,0x0000047b,0x63634166,0x6c756d75, + 0x64657461,0x6d617246,0x6f547365,0x726f7453,0x00000065,0x00040005,0x0000047f,0x61726170, + 0x0000006d,0x00040005,0x00000481,0x61726170,0x0000006d,0x00040005,0x00000483,0x61726170, + 0x0000006d,0x00070005,0x00000489,0x61685366,0x676e6964,0x6e616843,0x76556567,0x00000000, + 0x00040005,0x00000492,0x61726170,0x0000006d,0x00040005,0x00000493,0x61726170,0x0000006d, + 0x00040005,0x00000494,0x61726170,0x0000006d,0x00060005,0x00000496,0x61685366,0x676e6964, + 0x6e616843,0x00006567,0x00040005,0x00000497,0x61726170,0x0000006d,0x00040005,0x0000049a, + 0x61726170,0x0000006d,0x00030005,0x0000049f,0x00765566,0x00060005,0x000004a7,0x746f4d66, + 0x566e6f69,0x6f746365,0x00000072,0x00040005,0x000004a8,0x61726170,0x0000006d,0x00050005, + 0x000004ab,0x564b3466,0x636f6c65,0x00797469,0x00040005,0x000004ac,0x61726170,0x0000006d, + 0x00050005,0x000004af,0x6c694466,0x64657461,0x00007655,0x00060005,0x000004b3,0x6c694466, + 0x64657461,0x74706544,0x00000068,0x00040005,0x000004b4,0x61726170,0x0000006d,0x00060005, + 0x000004b7,0x70654466,0x6e496874,0x6574654d,0x00007372,0x00040005,0x000004b8,0x61726170, + 0x0000006d,0x00060005,0x000004bb,0x73694466,0x6c63636f,0x6f697375,0x0000006e,0x00040005, + 0x000004bc,0x61726170,0x0000006d,0x00040005,0x000004bf,0x61726170,0x0000006d,0x00040005, + 0x000004c1,0x61726170,0x0000006d,0x00040005,0x000004c3,0x61726170,0x0000006d,0x00060005, + 0x000004c5,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00040005,0x000004c6,0x61726170, + 0x0000006d,0x00040005,0x000004c8,0x61726170,0x0000006d,0x00040005,0x000004cb,0x61726170, + 0x0000006d,0x00040005,0x000004ce,0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170, + 0x0000006d,0x00070005,0x000004d1,0x746f4d66,0x446e6f69,0x72657669,0x636e6567,0x00000065, + 0x00040005,0x000004d2,0x61726170,0x0000006d,0x00040005,0x000004d4,0x61726170,0x0000006d, + 0x00040005,0x000004d6,0x61726170,0x0000006d,0x000b0005,0x000004d9,0x6c694466,0x64657461, + 0x6e617254,0x72617073,0x79636e65,0x43646e41,0x6f706d6f,0x69746973,0x00006e6f,0x00040005, + 0x000004da,0x61726170,0x0000006d,0x00040005,0x000004dc,0x61726170,0x0000006d,0x00070005, + 0x000004df,0x6e694666,0x65526c61,0x69746361,0x656e6576,0x00007373,0x00040005,0x000004e0, + 0x61726170,0x0000006d,0x00040005,0x000004e2,0x61726170,0x0000006d,0x00060005,0x000004e5, + 0x63634166,0x6c756d75,0x6f697461,0x0000006e,0x00040005,0x000004e6,0x61726170,0x0000006d, + 0x00040005,0x000004e8,0x61726170,0x0000006d,0x00040005,0x000004ea,0x61726170,0x0000006d, + 0x00040005,0x000004ec,0x61726170,0x0000006d,0x00040005,0x000004ee,0x61726170,0x0000006d, + 0x00040005,0x000004f1,0x74754f66,0x00747570,0x00040005,0x000004fc,0x61726170,0x0000006d, + 0x00040005,0x000004fe,0x61726170,0x0000006d,0x00060005,0x00000501,0x636f4c66,0x7274536b, + 0x74676e65,0x00000068,0x00040005,0x00000502,0x61726170,0x0000006d,0x00040005,0x0000050b, + 0x61726170,0x0000006d,0x00040005,0x0000050d,0x61726170,0x0000006d,0x00040005,0x0000050e, + 0x61726170,0x0000006d,0x00080005,0x00000513,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00040005,0x00000517,0x61726170,0x0000006d,0x00060005,0x0000051b, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00030047,0x00000109,0x00000002,0x00050048, + 0x00000109,0x00000000,0x00000023,0x00000000,0x00050048,0x00000109,0x00000001,0x00000023, + 0x00000008,0x00050048,0x00000109,0x00000002,0x00000023,0x00000010,0x00050048,0x00000109, + 0x00000003,0x00000023,0x00000018,0x00050048,0x00000109,0x00000004,0x00000023,0x00000020, + 0x00050048,0x00000109,0x00000005,0x00000023,0x00000028,0x00050048,0x00000109,0x00000006, + 0x00000023,0x00000030,0x00050048,0x00000109,0x00000007,0x00000023,0x00000040,0x00050048, + 0x00000109,0x00000008,0x00000023,0x00000048,0x00050048,0x00000109,0x00000009,0x00000023, + 0x00000050,0x00050048,0x00000109,0x0000000a,0x00000023,0x00000058,0x00050048,0x00000109, + 0x0000000b,0x00000023,0x00000060,0x00050048,0x00000109,0x0000000c,0x00000023,0x00000068, + 0x00050048,0x00000109,0x0000000d,0x00000023,0x0000006c,0x00050048,0x00000109,0x0000000e, + 0x00000023,0x00000070,0x00050048,0x00000109,0x0000000f,0x00000023,0x00000074,0x00050048, + 0x00000109,0x00000010,0x00000023,0x00000078,0x00050048,0x00000109,0x00000011,0x00000023, + 0x0000007c,0x00050048,0x00000109,0x00000012,0x00000023,0x00000080,0x00050048,0x00000109, + 0x00000013,0x00000023,0x00000084,0x00050048,0x00000109,0x00000014,0x00000023,0x00000088, + 0x00050048,0x00000109,0x00000015,0x00000023,0x0000008c,0x00050048,0x00000109,0x00000016, + 0x00000023,0x00000090,0x00040047,0x0000010b,0x00000021,0x0000000c,0x00040047,0x0000010b, + 0x00000022,0x00000000,0x00040047,0x0000013f,0x00000021,0x00000003,0x00040047,0x0000013f, + 0x00000022,0x00000000,0x00040047,0x0000014b,0x00000021,0x00000004,0x00040047,0x0000014b, + 0x00000022,0x00000000,0x00040047,0x00000153,0x00000021,0x000003e9,0x00040047,0x00000153, + 0x00000022,0x00000000,0x00040047,0x0000015c,0x00000021,0x00000005,0x00040047,0x0000015c, + 0x00000022,0x00000000,0x00040047,0x00000167,0x00000021,0x0000000b,0x00040047,0x00000167, + 0x00000022,0x00000000,0x00040047,0x0000016c,0x00000021,0x00000006,0x00040047,0x0000016c, + 0x00000022,0x00000000,0x00040047,0x00000179,0x00000021,0x00000007,0x00040047,0x00000179, + 0x00000022,0x00000000,0x00040047,0x00000180,0x00000021,0x0000000a,0x00040047,0x00000180, + 0x00000022,0x00000000,0x00040047,0x00000187,0x00000021,0x00000000,0x00040047,0x00000187, + 0x00000022,0x00000000,0x00040047,0x00000190,0x00000021,0x00000001,0x00040047,0x00000190, + 0x00000022,0x00000000,0x00040047,0x00000197,0x00000021,0x00000002,0x00040047,0x00000197, + 0x00000022,0x00000000,0x00040047,0x0000019f,0x00000021,0x00000008,0x00040047,0x0000019f, + 0x00000022,0x00000000,0x00030047,0x000001ad,0x00000019,0x00040047,0x000001ad,0x00000021, + 0x00000009,0x00040047,0x000001ad,0x00000022,0x00000000,0x00040047,0x00000513,0x0000000b, + 0x0000001c,0x00040047,0x0000051b,0x00000021,0x000003e8,0x00040047,0x0000051b,0x00000022, + 0x00000000,0x00040047,0x00000522,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00040021, + 0x0000000e,0x00000006,0x00000007,0x00040017,0x00000012,0x00000006,0x00000002,0x00040020, + 0x00000013,0x00000007,0x00000012,0x00040021,0x00000014,0x00000012,0x00000013,0x00050021, + 0x00000018,0x00000006,0x00000007,0x00000007,0x00050021,0x0000001d,0x00000012,0x00000013, + 0x00000013,0x00040015,0x00000022,0x00000020,0x00000001,0x00040020,0x00000023,0x00000007, + 0x00000022,0x00050021,0x00000024,0x00000022,0x00000023,0x00000023,0x00040017,0x00000035, + 0x00000022,0x00000002,0x00030021,0x00000036,0x00000035,0x00030021,0x0000003f,0x00000012, + 0x00040017,0x00000042,0x00000006,0x00000004,0x00030021,0x00000043,0x00000042,0x00030021, + 0x00000046,0x00000006,0x00040020,0x0000004d,0x00000007,0x00000035,0x00040021,0x0000004e, + 0x00000006,0x0000004d,0x00040021,0x00000054,0x00000006,0x00000013,0x00050021,0x0000005b, + 0x00000002,0x0000004d,0x00000007,0x00040021,0x0000006d,0x00000012,0x0000004d,0x00040020, + 0x00000076,0x00000007,0x00000042,0x00050021,0x00000077,0x00000002,0x0000004d,0x00000076, + 0x00050021,0x00000086,0x00000006,0x00000006,0x00000006,0x00020014,0x0000008b,0x00040021, + 0x0000008c,0x0000008b,0x00000013,0x00060021,0x00000090,0x00000035,0x0000004d,0x0000004d, + 0x0000004d,0x00060021,0x00000096,0x00000012,0x00000013,0x0000004d,0x0000004d,0x00050021, + 0x0000009c,0x0000008b,0x0000004d,0x0000004d,0x00040021,0x000000a1,0x00000035,0x0000004d, + 0x00040015,0x000000ab,0x00000020,0x00000000,0x0004002b,0x000000ab,0x000000ac,0x00000004, + 0x0004001c,0x000000ad,0x00000035,0x000000ac,0x0004001c,0x000000ae,0x00000006,0x000000ac, + 0x0005001e,0x000000af,0x000000ad,0x000000ae,0x00000035,0x00050021,0x000000b0,0x000000af, + 0x00000013,0x0000004d,0x00060021,0x000000b5,0x00000006,0x00000013,0x00000013,0x00000007, + 0x00050021,0x000000c0,0x00000006,0x0000004d,0x00000013,0x00080021,0x000000cc,0x00000006, + 0x0000004d,0x00000013,0x00000013,0x00000007,0x00000007,0x00040021,0x000000d7,0x00000002, + 0x0000004d,0x0004002b,0x00000006,0x000000e2,0x00000000,0x0004002b,0x00000006,0x000000e3, + 0x3f800000,0x0019001e,0x00000109,0x00000035,0x00000035,0x00000035,0x00000035,0x00000035, + 0x00000035,0x00000042,0x00000012,0x00000012,0x00000012,0x00000012,0x00000012,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00040020,0x0000010a,0x00000002,0x00000109,0x0004003b,0x0000010a, + 0x0000010b,0x00000002,0x0004002b,0x00000022,0x0000010c,0x00000000,0x00040020,0x0000010d, + 0x00000002,0x00000035,0x0004002b,0x00000022,0x00000112,0x00000001,0x0004002b,0x00000022, + 0x00000117,0x00000004,0x0004002b,0x00000022,0x0000011c,0x00000002,0x0004002b,0x00000022, + 0x00000121,0x00000007,0x00040020,0x00000122,0x00000002,0x00000012,0x0004002b,0x00000022, + 0x00000127,0x00000006,0x00040020,0x00000128,0x00000002,0x00000042,0x0004002b,0x00000022, + 0x0000012d,0x00000010,0x00040020,0x0000012e,0x00000002,0x00000006,0x0004002b,0x00000022, + 0x00000133,0x00000015,0x0004002b,0x00000022,0x00000138,0x00000016,0x00090019,0x0000013d, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000013e,0x00000000,0x0000013d,0x0004003b,0x0000013e,0x0000013f,0x00000000,0x0004002b, + 0x000000ab,0x00000143,0x00000000,0x0004002b,0x00000022,0x00000145,0x00000013,0x0004003b, + 0x0000013e,0x0000014b,0x00000000,0x0002001a,0x00000151,0x00040020,0x00000152,0x00000000, + 0x00000151,0x0004003b,0x00000152,0x00000153,0x00000000,0x0003001b,0x00000155,0x0000013d, + 0x0004003b,0x0000013e,0x0000015c,0x00000000,0x00090019,0x00000165,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x0000000f,0x00040020,0x00000166,0x00000000, + 0x00000165,0x0004003b,0x00000166,0x00000167,0x00000000,0x0004003b,0x0000013e,0x0000016c, + 0x00000000,0x0004002b,0x00000022,0x00000173,0x00000014,0x0004003b,0x0000013e,0x00000179, + 0x00000000,0x0004003b,0x00000166,0x00000180,0x00000000,0x00090019,0x00000185,0x000000ab, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000186, + 0x00000000,0x00000185,0x0004003b,0x00000186,0x00000187,0x00000000,0x00040017,0x0000018a, + 0x000000ab,0x00000004,0x0004003b,0x0000013e,0x00000190,0x00000000,0x0004003b,0x0000013e, + 0x00000197,0x00000000,0x0004003b,0x0000013e,0x0000019f,0x00000000,0x0005002c,0x00000035, + 0x000001a1,0x0000010c,0x0000010c,0x00090019,0x000001ab,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000004,0x00040020,0x000001ac,0x00000000,0x000001ab, + 0x0004003b,0x000001ac,0x000001ad,0x00000000,0x0004002b,0x00000006,0x000001b1,0x3e800000, + 0x0004002b,0x00000006,0x000001b2,0x3f400000,0x0004002b,0x00000006,0x000001b4,0x42c80000, + 0x0004002b,0x00000006,0x000001c0,0x3f000000,0x0004002b,0x00000006,0x000001cc,0x45700000, + 0x0004002b,0x00000006,0x000001cd,0x45070000,0x0005002c,0x00000012,0x000001ce,0x000001cc, + 0x000001cd,0x0004002b,0x000000ab,0x000001f0,0x00000001,0x0005002c,0x00000012,0x00000222, + 0x000001c0,0x000001c0,0x00040017,0x00000236,0x000000ab,0x00000002,0x00040017,0x0000023a, + 0x0000008b,0x00000002,0x00040020,0x0000026d,0x00000007,0x000000af,0x0005002c,0x00000035, + 0x00000278,0x00000112,0x0000010c,0x0005002c,0x00000035,0x0000027a,0x0000010c,0x00000112, + 0x0004002b,0x00000022,0x0000027c,0x00000003,0x0005002c,0x00000035,0x0000027d,0x00000112, + 0x00000112,0x0004002b,0x00000006,0x000002a2,0x477fe000,0x00040020,0x000002be,0x00000007, + 0x0000008b,0x00030029,0x0000008b,0x000002c0,0x0004002b,0x00000006,0x000002e4,0x3a1fe868, + 0x0004002b,0x00000006,0x000002f4,0x00800000,0x0004002b,0x00000006,0x00000306,0x3765d90d, + 0x0004002b,0x00000006,0x00000357,0x41200000,0x0004002b,0x00000022,0x0000036b,0xffffffff, + 0x0004002b,0x00000006,0x000003a1,0x7f7fffff,0x0004002b,0x00000022,0x000003aa,0x00000009, + 0x0004002b,0x000000ab,0x000003ad,0x00000009,0x0004001c,0x000003ae,0x00000035,0x000003ad, + 0x0005002c,0x00000035,0x000003af,0x0000036b,0x0000036b,0x0005002c,0x00000035,0x000003b0, + 0x0000010c,0x0000036b,0x0005002c,0x00000035,0x000003b1,0x00000112,0x0000036b,0x0005002c, + 0x00000035,0x000003b2,0x0000036b,0x0000010c,0x0005002c,0x00000035,0x000003b3,0x0000036b, + 0x00000112,0x000c002c,0x000003ae,0x000003b4,0x000001a1,0x000003af,0x000003b0,0x000003b1, + 0x000003b2,0x00000278,0x000003b3,0x0000027a,0x0000027d,0x00040020,0x000003ba,0x00000007, + 0x000003ae,0x0004001c,0x000003c0,0x00000006,0x000003ad,0x00040020,0x000003c1,0x00000007, + 0x000003c0,0x00040020,0x000003dc,0x00000007,0x000000ab,0x0004002b,0x00000006,0x000003f4, + 0x3f666666,0x0003002a,0x0000008b,0x0000041c,0x0004001c,0x0000042c,0x000000ab,0x000000ac, + 0x0004002b,0x000000ab,0x0000042d,0x00000017,0x0004002b,0x000000ab,0x0000042e,0x0000002d, + 0x0004002b,0x000000ab,0x0000042f,0x000000d1,0x0004002b,0x000000ab,0x00000430,0x000001a1, + 0x0007002c,0x0000042c,0x00000431,0x0000042d,0x0000042e,0x0000042f,0x00000430,0x00040020, + 0x00000433,0x00000007,0x0000042c,0x0004002b,0x000000ab,0x000004f7,0x00000002,0x0004002b, + 0x000000ab,0x000004fa,0x00000003,0x0004002b,0x00000006,0x00000506,0x3c23d70a,0x00040017, + 0x00000511,0x000000ab,0x00000003,0x00040020,0x00000512,0x00000001,0x00000511,0x0004003b, + 0x00000512,0x00000513,0x00000001,0x0004002b,0x00000006,0x00000519,0x387fda40,0x0004002b, + 0x00000006,0x0000051a,0x37801002,0x0004003b,0x00000152,0x0000051b,0x00000000,0x0004002b, + 0x00000006,0x0000051c,0x3d800000,0x0004002b,0x00000006,0x0000051d,0x3d3d70a4,0x0004002b, + 0x00000006,0x0000051e,0x3e400000,0x0004002b,0x00000006,0x0000051f,0x40000000,0x0004002b, + 0x00000006,0x00000520,0x461c4000,0x0004002b,0x000000ab,0x00000521,0x00000008,0x0006002c, + 0x00000511,0x00000522,0x00000521,0x00000521,0x000001f0,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000004d,0x00000517,0x00000007, + 0x0004003d,0x00000511,0x00000514,0x00000513,0x0007004f,0x00000236,0x00000515,0x00000514, + 0x00000514,0x00000000,0x00000001,0x0004007c,0x00000035,0x00000516,0x00000515,0x0003003e, + 0x00000517,0x00000516,0x00050039,0x00000002,0x00000518,0x000000d9,0x00000517,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8, + 0x0000000d,0x0004003d,0x00000006,0x000000db,0x00000009,0x0004003d,0x00000006,0x000000dc, + 0x0000000a,0x0004003d,0x00000006,0x000000dd,0x0000000b,0x0008000c,0x00000006,0x000000de, + 0x00000001,0x0000002e,0x000000db,0x000000dc,0x000000dd,0x000200fe,0x000000de,0x00010038, + 0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x000200f8,0x00000011,0x0004003d,0x00000006,0x000000e1,0x0000000f,0x0008000c,0x00000006, + 0x000000e4,0x00000001,0x0000002b,0x000000e1,0x000000e2,0x000000e3,0x000200fe,0x000000e4, + 0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037,0x00000013, + 0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000012,0x000000e7,0x00000015,0x0006000c, + 0x00000012,0x000000e8,0x00000001,0x0000000a,0x000000e7,0x000200fe,0x000000e8,0x00010038, + 0x00050036,0x00000006,0x0000001b,0x00000000,0x00000018,0x00030037,0x00000007,0x00000019, + 0x00030037,0x00000007,0x0000001a,0x000200f8,0x0000001c,0x0004003d,0x00000006,0x000000eb, + 0x00000019,0x0004003d,0x00000006,0x000000ec,0x0000001a,0x0007000c,0x00000006,0x000000ed, + 0x00000001,0x00000025,0x000000eb,0x000000ec,0x000200fe,0x000000ed,0x00010038,0x00050036, + 0x00000012,0x00000020,0x00000000,0x0000001d,0x00030037,0x00000013,0x0000001e,0x00030037, + 0x00000013,0x0000001f,0x000200f8,0x00000021,0x0004003d,0x00000012,0x000000f0,0x0000001e, + 0x0004003d,0x00000012,0x000000f1,0x0000001f,0x0007000c,0x00000012,0x000000f2,0x00000001, + 0x00000025,0x000000f0,0x000000f1,0x000200fe,0x000000f2,0x00010038,0x00050036,0x00000022, + 0x00000027,0x00000000,0x00000024,0x00030037,0x00000023,0x00000025,0x00030037,0x00000023, + 0x00000026,0x000200f8,0x00000028,0x0004003d,0x00000022,0x000000f5,0x00000025,0x0004003d, + 0x00000022,0x000000f6,0x00000026,0x0007000c,0x00000022,0x000000f7,0x00000001,0x00000027, + 0x000000f5,0x000000f6,0x000200fe,0x000000f7,0x00010038,0x00050036,0x00000006,0x0000002b, + 0x00000000,0x00000018,0x00030037,0x00000007,0x00000029,0x00030037,0x00000007,0x0000002a, + 0x000200f8,0x0000002c,0x0004003d,0x00000006,0x000000fa,0x00000029,0x0004003d,0x00000006, + 0x000000fb,0x0000002a,0x0007000c,0x00000006,0x000000fc,0x00000001,0x00000028,0x000000fa, + 0x000000fb,0x000200fe,0x000000fc,0x00010038,0x00050036,0x00000012,0x0000002f,0x00000000, + 0x0000001d,0x00030037,0x00000013,0x0000002d,0x00030037,0x00000013,0x0000002e,0x000200f8, + 0x00000030,0x0004003d,0x00000012,0x000000ff,0x0000002d,0x0004003d,0x00000012,0x00000100, + 0x0000002e,0x0007000c,0x00000012,0x00000101,0x00000001,0x00000028,0x000000ff,0x00000100, + 0x000200fe,0x00000101,0x00010038,0x00050036,0x00000022,0x00000033,0x00000000,0x00000024, + 0x00030037,0x00000023,0x00000031,0x00030037,0x00000023,0x00000032,0x000200f8,0x00000034, + 0x0004003d,0x00000022,0x00000104,0x00000031,0x0004003d,0x00000022,0x00000105,0x00000032, + 0x0007000c,0x00000022,0x00000106,0x00000001,0x0000002a,0x00000104,0x00000105,0x000200fe, + 0x00000106,0x00010038,0x00050036,0x00000035,0x00000037,0x00000000,0x00000036,0x000200f8, + 0x00000038,0x00050041,0x0000010d,0x0000010e,0x0000010b,0x0000010c,0x0004003d,0x00000035, + 0x0000010f,0x0000010e,0x000200fe,0x0000010f,0x00010038,0x00050036,0x00000035,0x00000039, + 0x00000000,0x00000036,0x000200f8,0x0000003a,0x00050041,0x0000010d,0x00000113,0x0000010b, + 0x00000112,0x0004003d,0x00000035,0x00000114,0x00000113,0x000200fe,0x00000114,0x00010038, + 0x00050036,0x00000035,0x0000003b,0x00000000,0x00000036,0x000200f8,0x0000003c,0x00050041, + 0x0000010d,0x00000118,0x0000010b,0x00000117,0x0004003d,0x00000035,0x00000119,0x00000118, + 0x000200fe,0x00000119,0x00010038,0x00050036,0x00000035,0x0000003d,0x00000000,0x00000036, + 0x000200f8,0x0000003e,0x00050041,0x0000010d,0x0000011d,0x0000010b,0x0000011c,0x0004003d, + 0x00000035,0x0000011e,0x0000011d,0x000200fe,0x0000011e,0x00010038,0x00050036,0x00000012, + 0x00000040,0x00000000,0x0000003f,0x000200f8,0x00000041,0x00050041,0x00000122,0x00000123, + 0x0000010b,0x00000121,0x0004003d,0x00000012,0x00000124,0x00000123,0x000200fe,0x00000124, + 0x00010038,0x00050036,0x00000042,0x00000044,0x00000000,0x00000043,0x000200f8,0x00000045, + 0x00050041,0x00000128,0x00000129,0x0000010b,0x00000127,0x0004003d,0x00000042,0x0000012a, + 0x00000129,0x000200fe,0x0000012a,0x00010038,0x00050036,0x00000006,0x00000047,0x00000000, + 0x00000046,0x000200f8,0x00000048,0x00050041,0x0000012e,0x0000012f,0x0000010b,0x0000012d, + 0x0004003d,0x00000006,0x00000130,0x0000012f,0x000200fe,0x00000130,0x00010038,0x00050036, + 0x00000006,0x00000049,0x00000000,0x00000046,0x000200f8,0x0000004a,0x00050041,0x0000012e, + 0x00000134,0x0000010b,0x00000133,0x0004003d,0x00000006,0x00000135,0x00000134,0x000200fe, + 0x00000135,0x00010038,0x00050036,0x00000006,0x0000004b,0x00000000,0x00000046,0x000200f8, + 0x0000004c,0x00050041,0x0000012e,0x00000139,0x0000010b,0x00000138,0x0004003d,0x00000006, + 0x0000013a,0x00000139,0x000200fe,0x0000013a,0x00010038,0x00050036,0x00000006,0x00000050, + 0x00000000,0x0000004e,0x00030037,0x0000004d,0x0000004f,0x000200f8,0x00000051,0x0004003d, + 0x0000013d,0x00000140,0x0000013f,0x0004003d,0x00000035,0x00000141,0x0000004f,0x0007005f, + 0x00000042,0x00000142,0x00000140,0x00000141,0x00000002,0x0000010c,0x00050051,0x00000006, + 0x00000144,0x00000142,0x00000000,0x00050041,0x0000012e,0x00000146,0x0000010b,0x00000145, + 0x0004003d,0x00000006,0x00000147,0x00000146,0x00050085,0x00000006,0x00000148,0x00000144, + 0x00000147,0x000200fe,0x00000148,0x00010038,0x00050036,0x00000035,0x00000052,0x00000000, + 0x00000036,0x000200f8,0x00000053,0x0004003d,0x0000013d,0x0000014c,0x0000014b,0x00050067, + 0x00000035,0x0000014d,0x0000014c,0x0000010c,0x000200fe,0x0000014d,0x00010038,0x00050036, + 0x00000006,0x00000056,0x00000000,0x00000054,0x00030037,0x00000013,0x00000055,0x000200f8, + 0x00000057,0x0004003d,0x0000013d,0x00000150,0x0000014b,0x0004003d,0x00000151,0x00000154, + 0x00000153,0x00050056,0x00000155,0x00000156,0x00000150,0x00000154,0x0004003d,0x00000012, + 0x00000157,0x00000055,0x00070058,0x00000042,0x00000158,0x00000156,0x00000157,0x00000002, + 0x000000e2,0x00050051,0x00000006,0x00000159,0x00000158,0x00000000,0x000200fe,0x00000159, + 0x00010038,0x00050036,0x00000006,0x00000059,0x00000000,0x00000054,0x00030037,0x00000013, + 0x00000058,0x000200f8,0x0000005a,0x0004003d,0x0000013d,0x0000015d,0x0000015c,0x0004003d, + 0x00000151,0x0000015e,0x00000153,0x00050056,0x00000155,0x0000015f,0x0000015d,0x0000015e, + 0x0004003d,0x00000012,0x00000160,0x00000058,0x00070058,0x00000042,0x00000161,0x0000015f, + 0x00000160,0x00000002,0x000000e2,0x00050051,0x00000006,0x00000162,0x00000161,0x00000000, + 0x000200fe,0x00000162,0x00010038,0x00050036,0x00000002,0x0000005e,0x00000000,0x0000005b, + 0x00030037,0x0000004d,0x0000005c,0x00030037,0x00000007,0x0000005d,0x000200f8,0x0000005f, + 0x0004003d,0x00000165,0x00000168,0x00000167,0x0004003d,0x00000035,0x00000169,0x0000005c, + 0x0004003d,0x00000006,0x0000016a,0x0000005d,0x00070050,0x00000042,0x0000016b,0x0000016a, + 0x000000e2,0x000000e2,0x000000e2,0x00040063,0x00000168,0x00000169,0x0000016b,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x00000061,0x00000000,0x00000054,0x00030037,0x00000013, + 0x00000060,0x000200f8,0x00000062,0x0004003d,0x0000013d,0x0000016d,0x0000016c,0x0004003d, + 0x00000151,0x0000016e,0x00000153,0x00050056,0x00000155,0x0000016f,0x0000016d,0x0000016e, + 0x0004003d,0x00000012,0x00000170,0x00000060,0x00070058,0x00000042,0x00000171,0x0000016f, + 0x00000170,0x00000002,0x000000e2,0x00050051,0x00000006,0x00000172,0x00000171,0x00000000, + 0x00050041,0x0000012e,0x00000174,0x0000010b,0x00000173,0x0004003d,0x00000006,0x00000175, + 0x00000174,0x00050085,0x00000006,0x00000176,0x00000172,0x00000175,0x000200fe,0x00000176, + 0x00010038,0x00050036,0x00000006,0x00000064,0x00000000,0x0000004e,0x00030037,0x0000004d, + 0x00000063,0x000200f8,0x00000065,0x0004003d,0x0000013d,0x0000017a,0x00000179,0x0004003d, + 0x00000035,0x0000017b,0x00000063,0x0007005f,0x00000042,0x0000017c,0x0000017a,0x0000017b, + 0x00000002,0x0000010c,0x00050051,0x00000006,0x0000017d,0x0000017c,0x00000000,0x000200fe, + 0x0000017d,0x00010038,0x00050036,0x00000002,0x00000068,0x00000000,0x0000005b,0x00030037, + 0x0000004d,0x00000066,0x00030037,0x00000007,0x00000067,0x000200f8,0x00000069,0x0004003d, + 0x00000165,0x00000181,0x00000180,0x0004003d,0x00000035,0x00000182,0x00000066,0x0004003d, + 0x00000006,0x00000183,0x00000067,0x00070050,0x00000042,0x00000184,0x00000183,0x000000e2, + 0x000000e2,0x000000e2,0x00040063,0x00000181,0x00000182,0x00000184,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000006b,0x00000000,0x0000004e,0x00030037,0x0000004d,0x0000006a, + 0x000200f8,0x0000006c,0x0004003d,0x00000185,0x00000188,0x00000187,0x0004003d,0x00000035, + 0x00000189,0x0000006a,0x0007005f,0x0000018a,0x0000018b,0x00000188,0x00000189,0x00000002, + 0x0000010c,0x00050051,0x000000ab,0x0000018c,0x0000018b,0x00000000,0x0004007c,0x00000006, + 0x0000018d,0x0000018c,0x000200fe,0x0000018d,0x00010038,0x00050036,0x00000012,0x0000006f, + 0x00000000,0x0000006d,0x00030037,0x0000004d,0x0000006e,0x000200f8,0x00000070,0x0004003d, + 0x0000013d,0x00000191,0x00000190,0x0004003d,0x00000035,0x00000192,0x0000006e,0x0007005f, + 0x00000042,0x00000193,0x00000191,0x00000192,0x00000002,0x0000010c,0x0007004f,0x00000012, + 0x00000194,0x00000193,0x00000193,0x00000000,0x00000001,0x000200fe,0x00000194,0x00010038, + 0x00050036,0x00000006,0x00000072,0x00000000,0x0000004e,0x00030037,0x0000004d,0x00000071, + 0x000200f8,0x00000073,0x0004003d,0x0000013d,0x00000198,0x00000197,0x0004003d,0x00000035, + 0x00000199,0x00000071,0x0007005f,0x00000042,0x0000019a,0x00000198,0x00000199,0x00000002, + 0x0000010c,0x00050051,0x00000006,0x0000019b,0x0000019a,0x00000000,0x000200fe,0x0000019b, + 0x00010038,0x00050036,0x00000006,0x00000074,0x00000000,0x00000046,0x000200f8,0x00000075, + 0x0004003b,0x00000007,0x0000019e,0x00000007,0x0004003d,0x0000013d,0x000001a0,0x0000019f, + 0x0007005f,0x00000042,0x000001a2,0x000001a0,0x000001a1,0x00000002,0x0000010c,0x00050051, + 0x00000006,0x000001a3,0x000001a2,0x00000000,0x0003003e,0x0000019e,0x000001a3,0x0004003d, + 0x00000006,0x000001a4,0x0000019e,0x000500b4,0x0000008b,0x000001a5,0x000001a4,0x000000e2, + 0x000300f7,0x000001a7,0x00000000,0x000400fa,0x000001a5,0x000001a6,0x000001a7,0x000200f8, + 0x000001a6,0x0003003e,0x0000019e,0x000000e3,0x000200f9,0x000001a7,0x000200f8,0x000001a7, + 0x0004003d,0x00000006,0x000001a8,0x0000019e,0x000200fe,0x000001a8,0x00010038,0x00050036, + 0x00000002,0x0000007a,0x00000000,0x00000077,0x00030037,0x0000004d,0x00000078,0x00030037, + 0x00000076,0x00000079,0x000200f8,0x0000007b,0x0004003d,0x000001ab,0x000001ae,0x000001ad, + 0x0004003d,0x00000035,0x000001af,0x00000078,0x0004003d,0x00000042,0x000001b0,0x00000079, + 0x00040063,0x000001ae,0x000001af,0x000001b0,0x000100fd,0x00010038,0x00050036,0x00000006, + 0x0000007d,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000007c,0x000200f8,0x0000007e, + 0x0004003b,0x00000007,0x000001b6,0x00000007,0x0004003b,0x00000007,0x000001b8,0x00000007, + 0x0004003b,0x00000007,0x000001b9,0x00000007,0x0004003b,0x00000007,0x000001ba,0x00000007, + 0x0004003d,0x00000006,0x000001b3,0x0000007c,0x00050088,0x00000006,0x000001b5,0x000001b3, + 0x000001b4,0x0003003e,0x000001b6,0x000001b5,0x00050039,0x00000006,0x000001b7,0x00000010, + 0x000001b6,0x0003003e,0x000001b8,0x000001b1,0x0003003e,0x000001b9,0x000001b2,0x0003003e, + 0x000001ba,0x000001b7,0x00070039,0x00000006,0x000001bb,0x0000000c,0x000001b8,0x000001b9, + 0x000001ba,0x000200fe,0x000001bb,0x00010038,0x00050036,0x00000035,0x0000007f,0x00000000, + 0x00000036,0x000200f8,0x00000080,0x00040039,0x00000035,0x000001be,0x00000037,0x0004006f, + 0x00000012,0x000001bf,0x000001be,0x0005008e,0x00000012,0x000001c1,0x000001bf,0x000001c0, + 0x0004006e,0x00000035,0x000001c2,0x000001c1,0x000200fe,0x000001c2,0x00010038,0x00050036, + 0x00000035,0x00000081,0x00000000,0x00000036,0x000200f8,0x00000082,0x00040039,0x00000035, + 0x000001c5,0x0000003b,0x0004006f,0x00000012,0x000001c6,0x000001c5,0x0005008e,0x00000012, + 0x000001c7,0x000001c6,0x000001c0,0x0004006e,0x00000035,0x000001c8,0x000001c7,0x000200fe, + 0x000001c8,0x00010038,0x00050036,0x00000006,0x00000084,0x00000000,0x00000054,0x00030037, + 0x00000013,0x00000083,0x000200f8,0x00000085,0x0004003d,0x00000012,0x000001cb,0x00000083, + 0x00050085,0x00000012,0x000001cf,0x000001cb,0x000001ce,0x0006000c,0x00000006,0x000001d0, + 0x00000001,0x00000042,0x000001cf,0x000200fe,0x000001d0,0x00010038,0x00050036,0x00000006, + 0x00000089,0x00000000,0x00000086,0x00030037,0x00000006,0x00000087,0x00030037,0x00000006, + 0x00000088,0x000200f8,0x0000008a,0x0004003b,0x00000007,0x000001d3,0x00000007,0x0004003b, + 0x00000007,0x000001d4,0x00000007,0x0004003b,0x00000007,0x000001d5,0x00000007,0x0004003b, + 0x00000007,0x000001d9,0x00000007,0x0004003b,0x00000007,0x000001dc,0x00000007,0x0004003b, + 0x00000007,0x000001dd,0x00000007,0x0003003e,0x000001d4,0x00000087,0x0003003e,0x000001d5, + 0x00000088,0x00060039,0x00000006,0x000001d6,0x0000002b,0x000001d4,0x000001d5,0x0003003e, + 0x000001d3,0x000001d6,0x0004003d,0x00000006,0x000001d7,0x000001d3,0x000500b7,0x0000008b, + 0x000001d8,0x000001d7,0x000000e2,0x000300f7,0x000001db,0x00000000,0x000400fa,0x000001d8, + 0x000001da,0x000001e1,0x000200f8,0x000001da,0x0003003e,0x000001dc,0x00000087,0x0003003e, + 0x000001dd,0x00000088,0x00060039,0x00000006,0x000001de,0x0000001b,0x000001dc,0x000001dd, + 0x0004003d,0x00000006,0x000001df,0x000001d3,0x00050088,0x00000006,0x000001e0,0x000001de, + 0x000001df,0x0003003e,0x000001d9,0x000001e0,0x000200f9,0x000001db,0x000200f8,0x000001e1, + 0x0003003e,0x000001d9,0x000000e2,0x000200f9,0x000001db,0x000200f8,0x000001db,0x0004003d, + 0x00000006,0x000001e2,0x000001d9,0x000200fe,0x000001e2,0x00010038,0x00050036,0x0000008b, + 0x0000008e,0x00000000,0x0000008c,0x00030037,0x00000013,0x0000008d,0x000200f8,0x0000008f, + 0x00050041,0x00000007,0x000001e5,0x0000008d,0x00000143,0x0004003d,0x00000006,0x000001e6, + 0x000001e5,0x000500be,0x0000008b,0x000001e7,0x000001e6,0x000000e2,0x000300f7,0x000001e9, + 0x00000000,0x000400fa,0x000001e7,0x000001e8,0x000001e9,0x000200f8,0x000001e8,0x00050041, + 0x00000007,0x000001ea,0x0000008d,0x00000143,0x0004003d,0x00000006,0x000001eb,0x000001ea, + 0x000500bc,0x0000008b,0x000001ec,0x000001eb,0x000000e3,0x000200f9,0x000001e9,0x000200f8, + 0x000001e9,0x000700f5,0x0000008b,0x000001ed,0x000001e7,0x0000008f,0x000001ec,0x000001e8, + 0x000300f7,0x000001ef,0x00000000,0x000400fa,0x000001ed,0x000001ee,0x000001ef,0x000200f8, + 0x000001ee,0x00050041,0x00000007,0x000001f1,0x0000008d,0x000001f0,0x0004003d,0x00000006, + 0x000001f2,0x000001f1,0x000500be,0x0000008b,0x000001f3,0x000001f2,0x000000e2,0x000300f7, + 0x000001f5,0x00000000,0x000400fa,0x000001f3,0x000001f4,0x000001f5,0x000200f8,0x000001f4, + 0x00050041,0x00000007,0x000001f6,0x0000008d,0x000001f0,0x0004003d,0x00000006,0x000001f7, + 0x000001f6,0x000500bc,0x0000008b,0x000001f8,0x000001f7,0x000000e3,0x000200f9,0x000001f5, + 0x000200f8,0x000001f5,0x000700f5,0x0000008b,0x000001f9,0x000001f3,0x000001ee,0x000001f8, + 0x000001f4,0x000200f9,0x000001ef,0x000200f8,0x000001ef,0x000700f5,0x0000008b,0x000001fa, + 0x000001ed,0x000001e9,0x000001f9,0x000001f5,0x000200fe,0x000001fa,0x00010038,0x00050036, + 0x00000035,0x00000094,0x00000000,0x00000090,0x00030037,0x0000004d,0x00000091,0x00030037, + 0x0000004d,0x00000092,0x00030037,0x0000004d,0x00000093,0x000200f8,0x00000095,0x0004003b, + 0x0000004d,0x000001fd,0x00000007,0x0004003b,0x00000023,0x00000204,0x00000007,0x0004003b, + 0x00000023,0x00000207,0x00000007,0x0004003b,0x00000023,0x00000209,0x00000007,0x0004003b, + 0x00000023,0x0000020a,0x00000007,0x0004003b,0x00000023,0x00000210,0x00000007,0x0004003b, + 0x00000023,0x00000213,0x00000007,0x0004003b,0x00000023,0x00000215,0x00000007,0x0004003b, + 0x00000023,0x00000216,0x00000007,0x0004003d,0x00000035,0x000001fe,0x00000091,0x0004003d, + 0x00000035,0x000001ff,0x00000092,0x00050080,0x00000035,0x00000200,0x000001fe,0x000001ff, + 0x0003003e,0x000001fd,0x00000200,0x00050041,0x00000023,0x00000201,0x00000093,0x00000143, + 0x0004003d,0x00000022,0x00000202,0x00000201,0x00050082,0x00000022,0x00000203,0x00000202, + 0x00000112,0x00050041,0x00000023,0x00000205,0x000001fd,0x00000143,0x0004003d,0x00000022, + 0x00000206,0x00000205,0x0003003e,0x00000204,0x00000206,0x0003003e,0x00000207,0x00000203, + 0x00060039,0x00000022,0x00000208,0x00000027,0x00000204,0x00000207,0x0003003e,0x00000209, + 0x0000010c,0x0003003e,0x0000020a,0x00000208,0x00060039,0x00000022,0x0000020b,0x00000033, + 0x00000209,0x0000020a,0x00050041,0x00000023,0x0000020c,0x000001fd,0x00000143,0x0003003e, + 0x0000020c,0x0000020b,0x00050041,0x00000023,0x0000020d,0x00000093,0x000001f0,0x0004003d, + 0x00000022,0x0000020e,0x0000020d,0x00050082,0x00000022,0x0000020f,0x0000020e,0x00000112, + 0x00050041,0x00000023,0x00000211,0x000001fd,0x000001f0,0x0004003d,0x00000022,0x00000212, + 0x00000211,0x0003003e,0x00000210,0x00000212,0x0003003e,0x00000213,0x0000020f,0x00060039, + 0x00000022,0x00000214,0x00000027,0x00000210,0x00000213,0x0003003e,0x00000215,0x0000010c, + 0x0003003e,0x00000216,0x00000214,0x00060039,0x00000022,0x00000217,0x00000033,0x00000215, + 0x00000216,0x00050041,0x00000023,0x00000218,0x000001fd,0x000001f0,0x0003003e,0x00000218, + 0x00000217,0x0004003d,0x00000035,0x00000219,0x000001fd,0x000200fe,0x00000219,0x00010038, + 0x00050036,0x00000012,0x0000009a,0x00000000,0x00000096,0x00030037,0x00000013,0x00000097, + 0x00030037,0x0000004d,0x00000098,0x00030037,0x0000004d,0x00000099,0x000200f8,0x0000009b, + 0x0004003b,0x00000013,0x0000021c,0x00000007,0x0004003b,0x00000013,0x00000221,0x00000007, + 0x0004003b,0x00000013,0x00000226,0x00000007,0x0004003b,0x00000013,0x00000228,0x00000007, + 0x0004003b,0x00000013,0x0000022a,0x00000007,0x0004003b,0x00000013,0x0000022b,0x00000007, + 0x0004003b,0x00000013,0x0000022d,0x00000007,0x0004003d,0x00000012,0x0000021d,0x00000097, + 0x0004003d,0x00000035,0x0000021e,0x00000098,0x0004006f,0x00000012,0x0000021f,0x0000021e, + 0x00050085,0x00000012,0x00000220,0x0000021d,0x0000021f,0x0003003e,0x0000021c,0x00000220, + 0x0004003d,0x00000035,0x00000223,0x00000098,0x0004006f,0x00000012,0x00000224,0x00000223, + 0x00050083,0x00000012,0x00000225,0x00000224,0x00000222,0x0004003d,0x00000012,0x00000227, + 0x0000021c,0x0003003e,0x00000226,0x00000227,0x0003003e,0x00000228,0x00000225,0x00060039, + 0x00000012,0x00000229,0x00000020,0x00000226,0x00000228,0x0003003e,0x0000022a,0x00000222, + 0x0003003e,0x0000022b,0x00000229,0x00060039,0x00000012,0x0000022c,0x0000002f,0x0000022a, + 0x0000022b,0x0003003e,0x00000221,0x0000022c,0x0004003d,0x00000012,0x0000022e,0x00000221, + 0x0004003d,0x00000035,0x0000022f,0x00000099,0x0004006f,0x00000012,0x00000230,0x0000022f, + 0x00050088,0x00000012,0x00000231,0x0000022e,0x00000230,0x0003003e,0x0000022d,0x00000231, + 0x0004003d,0x00000012,0x00000232,0x0000022d,0x000200fe,0x00000232,0x00010038,0x00050036, + 0x0000008b,0x0000009f,0x00000000,0x0000009c,0x00030037,0x0000004d,0x0000009d,0x00030037, + 0x0000004d,0x0000009e,0x000200f8,0x000000a0,0x0004003d,0x00000035,0x00000235,0x0000009d, + 0x0004007c,0x00000236,0x00000237,0x00000235,0x0004003d,0x00000035,0x00000238,0x0000009e, + 0x0004007c,0x00000236,0x00000239,0x00000238,0x000500b0,0x0000023a,0x0000023b,0x00000237, + 0x00000239,0x0004009b,0x0000008b,0x0000023c,0x0000023b,0x000200fe,0x0000023c,0x00010038, + 0x00050036,0x00000035,0x000000a3,0x00000000,0x000000a1,0x00030037,0x0000004d,0x000000a2, + 0x000200f8,0x000000a4,0x0004003b,0x00000013,0x0000023f,0x00000007,0x0004003b,0x00000013, + 0x00000246,0x00000007,0x0004003b,0x0000004d,0x0000024e,0x00000007,0x0004003d,0x00000035, + 0x00000240,0x000000a2,0x0004006f,0x00000012,0x00000241,0x00000240,0x00050050,0x00000012, + 0x00000242,0x000001c0,0x000001c0,0x00050081,0x00000012,0x00000243,0x00000241,0x00000242, + 0x00040039,0x00000012,0x00000244,0x00000040,0x00050083,0x00000012,0x00000245,0x00000243, + 0x00000244,0x0003003e,0x0000023f,0x00000245,0x0004003d,0x00000012,0x00000247,0x0000023f, + 0x00040039,0x00000035,0x00000248,0x00000037,0x0004006f,0x00000012,0x00000249,0x00000248, + 0x00050088,0x00000012,0x0000024a,0x00000247,0x00000249,0x00040039,0x00000035,0x0000024b, + 0x0000003d,0x0004006f,0x00000012,0x0000024c,0x0000024b,0x00050085,0x00000012,0x0000024d, + 0x0000024a,0x0000024c,0x0003003e,0x00000246,0x0000024d,0x0004003d,0x00000012,0x0000024f, + 0x00000246,0x0006000c,0x00000012,0x00000250,0x00000001,0x00000008,0x0000024f,0x0004006e, + 0x00000035,0x00000251,0x00000250,0x0003003e,0x0000024e,0x00000251,0x0004003d,0x00000035, + 0x00000252,0x0000024e,0x000200fe,0x00000252,0x00010038,0x00050036,0x00000006,0x000000a6, + 0x00000000,0x0000000e,0x00030037,0x00000007,0x000000a5,0x000200f8,0x000000a7,0x0004003b, + 0x00000076,0x00000255,0x00000007,0x00040039,0x00000042,0x00000256,0x00000044,0x0003003e, + 0x00000255,0x00000256,0x00050041,0x00000007,0x00000257,0x00000255,0x000001f0,0x0004003d, + 0x00000006,0x00000258,0x00000257,0x0004003d,0x00000006,0x00000259,0x000000a5,0x00050041, + 0x00000007,0x0000025a,0x00000255,0x00000143,0x0004003d,0x00000006,0x0000025b,0x0000025a, + 0x00050083,0x00000006,0x0000025c,0x00000259,0x0000025b,0x00050088,0x00000006,0x0000025d, + 0x00000258,0x0000025c,0x000200fe,0x0000025d,0x00010038,0x00050036,0x00000006,0x000000a9, + 0x00000000,0x0000000e,0x00030037,0x00000007,0x000000a8,0x000200f8,0x000000aa,0x0004003b, + 0x00000007,0x00000260,0x00000007,0x0004003d,0x00000006,0x00000261,0x000000a8,0x0003003e, + 0x00000260,0x00000261,0x00050039,0x00000006,0x00000262,0x000000a6,0x00000260,0x00040039, + 0x00000006,0x00000263,0x00000047,0x00050085,0x00000006,0x00000264,0x00000262,0x00000263, + 0x000200fe,0x00000264,0x00010038,0x00050036,0x000000af,0x000000b3,0x00000000,0x000000b0, + 0x00030037,0x00000013,0x000000b1,0x00030037,0x0000004d,0x000000b2,0x000200f8,0x000000b4, + 0x0004003b,0x00000013,0x00000267,0x00000007,0x0004003b,0x0000026d,0x0000026e,0x00000007, + 0x0004003b,0x00000013,0x00000273,0x00000007,0x0004003b,0x00000013,0x00000274,0x00000007, + 0x0004003d,0x00000012,0x00000268,0x000000b1,0x0004003d,0x00000035,0x00000269,0x000000b2, + 0x0004006f,0x00000012,0x0000026a,0x00000269,0x00050085,0x00000012,0x0000026b,0x00000268, + 0x0000026a,0x00050083,0x00000012,0x0000026c,0x0000026b,0x00000222,0x0003003e,0x00000267, + 0x0000026c,0x0004003d,0x00000012,0x0000026f,0x00000267,0x0006000c,0x00000012,0x00000270, + 0x00000001,0x00000008,0x0000026f,0x0004006e,0x00000035,0x00000271,0x00000270,0x00050041, + 0x0000004d,0x00000272,0x0000026e,0x0000011c,0x0003003e,0x00000272,0x00000271,0x0004003d, + 0x00000012,0x00000275,0x00000267,0x0003003e,0x00000274,0x00000275,0x00050039,0x00000012, + 0x00000276,0x00000016,0x00000274,0x0003003e,0x00000273,0x00000276,0x00060041,0x0000004d, + 0x00000277,0x0000026e,0x0000010c,0x0000010c,0x0003003e,0x00000277,0x000001a1,0x00060041, + 0x0000004d,0x00000279,0x0000026e,0x0000010c,0x00000112,0x0003003e,0x00000279,0x00000278, + 0x00060041,0x0000004d,0x0000027b,0x0000026e,0x0000010c,0x0000011c,0x0003003e,0x0000027b, + 0x0000027a,0x00060041,0x0000004d,0x0000027e,0x0000026e,0x0000010c,0x0000027c,0x0003003e, + 0x0000027e,0x0000027d,0x00050041,0x00000007,0x0000027f,0x00000273,0x00000143,0x0004003d, + 0x00000006,0x00000280,0x0000027f,0x00050083,0x00000006,0x00000281,0x000000e3,0x00000280, + 0x00050041,0x00000007,0x00000282,0x00000273,0x000001f0,0x0004003d,0x00000006,0x00000283, + 0x00000282,0x00050083,0x00000006,0x00000284,0x000000e3,0x00000283,0x00050085,0x00000006, + 0x00000285,0x00000281,0x00000284,0x00060041,0x00000007,0x00000286,0x0000026e,0x00000112, + 0x0000010c,0x0003003e,0x00000286,0x00000285,0x00050041,0x00000007,0x00000287,0x00000273, + 0x00000143,0x0004003d,0x00000006,0x00000288,0x00000287,0x00050041,0x00000007,0x00000289, + 0x00000273,0x000001f0,0x0004003d,0x00000006,0x0000028a,0x00000289,0x00050083,0x00000006, + 0x0000028b,0x000000e3,0x0000028a,0x00050085,0x00000006,0x0000028c,0x00000288,0x0000028b, + 0x00060041,0x00000007,0x0000028d,0x0000026e,0x00000112,0x00000112,0x0003003e,0x0000028d, + 0x0000028c,0x00050041,0x00000007,0x0000028e,0x00000273,0x00000143,0x0004003d,0x00000006, + 0x0000028f,0x0000028e,0x00050083,0x00000006,0x00000290,0x000000e3,0x0000028f,0x00050041, + 0x00000007,0x00000291,0x00000273,0x000001f0,0x0004003d,0x00000006,0x00000292,0x00000291, + 0x00050085,0x00000006,0x00000293,0x00000290,0x00000292,0x00060041,0x00000007,0x00000294, + 0x0000026e,0x00000112,0x0000011c,0x0003003e,0x00000294,0x00000293,0x00050041,0x00000007, + 0x00000295,0x00000273,0x00000143,0x0004003d,0x00000006,0x00000296,0x00000295,0x00050041, + 0x00000007,0x00000297,0x00000273,0x000001f0,0x0004003d,0x00000006,0x00000298,0x00000297, + 0x00050085,0x00000006,0x00000299,0x00000296,0x00000298,0x00060041,0x00000007,0x0000029a, + 0x0000026e,0x00000112,0x0000027c,0x0003003e,0x0000029a,0x00000299,0x0004003d,0x000000af, + 0x0000029b,0x0000026e,0x000200fe,0x0000029b,0x00010038,0x00050036,0x00000006,0x000000b9, + 0x00000000,0x000000b5,0x00030037,0x00000013,0x000000b6,0x00030037,0x00000013,0x000000b7, + 0x00030037,0x00000007,0x000000b8,0x000200f8,0x000000ba,0x0004003b,0x00000007,0x0000029e, + 0x00000007,0x0004003b,0x00000007,0x000002a3,0x00000007,0x0004003b,0x00000007,0x000002a4, + 0x00000007,0x0004003b,0x00000007,0x000002a6,0x00000007,0x0004003b,0x00000007,0x000002a7, + 0x00000007,0x0004003b,0x00000013,0x000002aa,0x00000007,0x0004003b,0x00000013,0x000002b2, + 0x00000007,0x0004003b,0x0000026d,0x000002b6,0x00000007,0x0004003b,0x00000013,0x000002b8, + 0x00000007,0x0004003b,0x0000004d,0x000002ba,0x00000007,0x0004003b,0x00000007,0x000002bc, + 0x00000007,0x0004003b,0x00000007,0x000002bd,0x00000007,0x0004003b,0x000002be,0x000002bf, + 0x00000007,0x0004003b,0x00000023,0x000002c1,0x00000007,0x0004003b,0x0000004d,0x000002cb, + 0x00000007,0x0004003b,0x0000004d,0x000002cf,0x00000007,0x0004003b,0x0000004d,0x000002d1, + 0x00000007,0x0004003b,0x0000004d,0x000002d4,0x00000007,0x0004003b,0x0000004d,0x000002d6, + 0x00000007,0x0004003b,0x0000004d,0x000002d9,0x00000007,0x0004003b,0x0000004d,0x000002db, + 0x00000007,0x0004003b,0x00000007,0x000002df,0x00000007,0x0004003b,0x00000007,0x000002e8, + 0x00000007,0x0004003b,0x0000004d,0x000002e9,0x00000007,0x0004003b,0x00000007,0x000002ec, + 0x00000007,0x0004003b,0x00000007,0x000002ee,0x00000007,0x0004003b,0x00000007,0x000002fa, + 0x00000007,0x0004003b,0x00000007,0x000002ff,0x00000007,0x0004003b,0x00000007,0x00000300, + 0x00000007,0x0004003b,0x00000007,0x00000302,0x00000007,0x0004003b,0x00000007,0x00000305, + 0x00000007,0x0004003b,0x00000007,0x0000030e,0x00000007,0x0004003b,0x00000007,0x0000031d, + 0x00000007,0x0004003b,0x00000007,0x00000324,0x00000007,0x0004003d,0x00000006,0x0000029f, + 0x000000b8,0x00040039,0x00000006,0x000002a0,0x00000047,0x00050085,0x00000006,0x000002a1, + 0x0000029f,0x000002a0,0x0003003e,0x000002a3,0x000002a1,0x0003003e,0x000002a4,0x000002a2, + 0x00060039,0x00000006,0x000002a5,0x0000001b,0x000002a3,0x000002a4,0x0003003e,0x0000029e, + 0x000002a5,0x0004003d,0x00000006,0x000002a8,0x0000029e,0x0003003e,0x000002a7,0x000002a8, + 0x00050039,0x00000006,0x000002a9,0x0000007d,0x000002a7,0x0003003e,0x000002a6,0x000002a9, + 0x0004003d,0x00000012,0x000002ab,0x000000b7,0x0003003e,0x000002aa,0x000002ab,0x00050039, + 0x00000006,0x000002ac,0x00000084,0x000002aa,0x0004003d,0x00000006,0x000002ad,0x000002a6, + 0x000500ba,0x0000008b,0x000002ae,0x000002ac,0x000002ad,0x000600a9,0x00000006,0x000002af, + 0x000002ae,0x000000e3,0x000000e2,0x0004003d,0x00000012,0x000002b0,0x000000b7,0x0005008e, + 0x00000012,0x000002b1,0x000002b0,0x000002af,0x0003003e,0x000000b7,0x000002b1,0x0004003d, + 0x00000012,0x000002b3,0x000000b6,0x0004003d,0x00000012,0x000002b4,0x000000b7,0x00050081, + 0x00000012,0x000002b5,0x000002b3,0x000002b4,0x0003003e,0x000002b2,0x000002b5,0x00040039, + 0x00000035,0x000002b7,0x00000037,0x0004003d,0x00000012,0x000002b9,0x000002b2,0x0003003e, + 0x000002b8,0x000002b9,0x0003003e,0x000002ba,0x000002b7,0x00060039,0x000000af,0x000002bb, + 0x000000b3,0x000002b8,0x000002ba,0x0003003e,0x000002b6,0x000002bb,0x0003003e,0x000002bc, + 0x000000e2,0x0003003e,0x000002bd,0x000000e2,0x0003003e,0x000002bf,0x000002c0,0x0003003e, + 0x000002c1,0x0000010c,0x000200f9,0x000002c2,0x000200f8,0x000002c2,0x000400f6,0x000002c4, + 0x000002c5,0x00000000,0x000200f9,0x000002c6,0x000200f8,0x000002c6,0x0004003d,0x00000022, + 0x000002c7,0x000002c1,0x000500b1,0x0000008b,0x000002c8,0x000002c7,0x00000117,0x0004003d, + 0x0000008b,0x000002c9,0x000002bf,0x000500a7,0x0000008b,0x000002ca,0x000002c8,0x000002c9, + 0x000400fa,0x000002ca,0x000002c3,0x000002c4,0x000200f8,0x000002c3,0x0004003d,0x00000022, + 0x000002cc,0x000002c1,0x00060041,0x0000004d,0x000002cd,0x000002b6,0x0000010c,0x000002cc, + 0x0004003d,0x00000035,0x000002ce,0x000002cd,0x0003003e,0x000002cb,0x000002ce,0x00040039, + 0x00000035,0x000002d0,0x00000037,0x00050041,0x0000004d,0x000002d2,0x000002b6,0x0000011c, + 0x0004003d,0x00000035,0x000002d3,0x000002d2,0x0003003e,0x000002d1,0x000002d3,0x0004003d, + 0x00000035,0x000002d5,0x000002cb,0x0003003e,0x000002d4,0x000002d5,0x0003003e,0x000002d6, + 0x000002d0,0x00070039,0x00000035,0x000002d7,0x00000094,0x000002d1,0x000002d4,0x000002d6, + 0x0003003e,0x000002cf,0x000002d7,0x00040039,0x00000035,0x000002d8,0x00000037,0x0004003d, + 0x00000035,0x000002da,0x000002cf,0x0003003e,0x000002d9,0x000002da,0x0003003e,0x000002db, + 0x000002d8,0x00060039,0x0000008b,0x000002dc,0x0000009f,0x000002d9,0x000002db,0x000300f7, + 0x000002de,0x00000000,0x000400fa,0x000002dc,0x000002dd,0x000002de,0x000200f8,0x000002dd, + 0x0004003d,0x00000022,0x000002e0,0x000002c1,0x00060041,0x00000007,0x000002e1,0x000002b6, + 0x00000112,0x000002e0,0x0004003d,0x00000006,0x000002e2,0x000002e1,0x0003003e,0x000002df, + 0x000002e2,0x0004003d,0x00000006,0x000002e3,0x000002df,0x000500ba,0x0000008b,0x000002e5, + 0x000002e3,0x000002e4,0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002e5,0x000002e6, + 0x000002e7,0x000200f8,0x000002e6,0x0004003d,0x00000035,0x000002ea,0x000002cf,0x0003003e, + 0x000002e9,0x000002ea,0x00050039,0x00000006,0x000002eb,0x0000006b,0x000002e9,0x0003003e, + 0x000002ec,0x000002eb,0x00050039,0x00000006,0x000002ed,0x000000a6,0x000002ec,0x0003003e, + 0x000002e8,0x000002ed,0x0004003d,0x00000006,0x000002ef,0x000000b8,0x0004003d,0x00000006, + 0x000002f0,0x000002e8,0x00050083,0x00000006,0x000002f1,0x000002ef,0x000002f0,0x0003003e, + 0x000002ee,0x000002f1,0x0004003d,0x0000008b,0x000002f2,0x000002bf,0x0004003d,0x00000006, + 0x000002f3,0x000002ee,0x000500ba,0x0000008b,0x000002f5,0x000002f3,0x000002f4,0x000500a7, + 0x0000008b,0x000002f6,0x000002f2,0x000002f5,0x0003003e,0x000002bf,0x000002f6,0x0004003d, + 0x0000008b,0x000002f7,0x000002bf,0x000300f7,0x000002f9,0x00000000,0x000400fa,0x000002f7, + 0x000002f8,0x000002f9,0x000200f8,0x000002f8,0x00040039,0x00000035,0x000002fb,0x00000037, + 0x0004006f,0x00000012,0x000002fc,0x000002fb,0x0005008e,0x00000012,0x000002fd,0x000002fc, + 0x000001c0,0x0006000c,0x00000006,0x000002fe,0x00000001,0x00000042,0x000002fd,0x0003003e, + 0x000002fa,0x000002fe,0x0004003d,0x00000006,0x00000301,0x000000b8,0x0003003e,0x00000300, + 0x00000301,0x0004003d,0x00000006,0x00000303,0x000002e8,0x0003003e,0x00000302,0x00000303, + 0x00060039,0x00000006,0x00000304,0x0000002b,0x00000300,0x00000302,0x0003003e,0x000002ff, + 0x00000304,0x0004003d,0x00000006,0x00000307,0x000002fa,0x00050085,0x00000006,0x00000308, + 0x00000306,0x00000307,0x0004003d,0x00000006,0x00000309,0x000002ff,0x00050085,0x00000006, + 0x0000030a,0x00000308,0x00000309,0x0003003e,0x00000305,0x0000030a,0x0004003d,0x00000006, + 0x0000030b,0x00000305,0x0004003d,0x00000006,0x0000030c,0x000002ee,0x00050088,0x00000006, + 0x0000030d,0x0000030b,0x0000030c,0x0003003e,0x0000030e,0x0000030d,0x00050039,0x00000006, + 0x0000030f,0x00000010,0x0000030e,0x0004003d,0x00000006,0x00000310,0x000002df,0x00050085, + 0x00000006,0x00000311,0x0000030f,0x00000310,0x0004003d,0x00000006,0x00000312,0x000002bc, + 0x00050081,0x00000006,0x00000313,0x00000312,0x00000311,0x0003003e,0x000002bc,0x00000313, + 0x0004003d,0x00000006,0x00000314,0x000002df,0x0004003d,0x00000006,0x00000315,0x000002bd, + 0x00050081,0x00000006,0x00000316,0x00000315,0x00000314,0x0003003e,0x000002bd,0x00000316, + 0x000200f9,0x000002f9,0x000200f8,0x000002f9,0x000200f9,0x000002e7,0x000200f8,0x000002e7, + 0x000200f9,0x000002de,0x000200f8,0x000002de,0x000200f9,0x000002c5,0x000200f8,0x000002c5, + 0x0004003d,0x00000022,0x00000317,0x000002c1,0x00050080,0x00000022,0x00000318,0x00000317, + 0x00000112,0x0003003e,0x000002c1,0x00000318,0x000200f9,0x000002c2,0x000200f8,0x000002c4, + 0x0004003d,0x0000008b,0x00000319,0x000002bf,0x0004003d,0x00000006,0x0000031a,0x000002bd, + 0x000500ba,0x0000008b,0x0000031b,0x0000031a,0x000000e2,0x000500a7,0x0000008b,0x0000031c, + 0x00000319,0x0000031b,0x000300f7,0x0000031f,0x00000000,0x000400fa,0x0000031c,0x0000031e, + 0x00000326,0x000200f8,0x0000031e,0x0004003d,0x00000006,0x00000320,0x000002bc,0x0004003d, + 0x00000006,0x00000321,0x000002bd,0x00050088,0x00000006,0x00000322,0x00000320,0x00000321, + 0x00050083,0x00000006,0x00000323,0x000000e3,0x00000322,0x0003003e,0x00000324,0x00000323, + 0x00050039,0x00000006,0x00000325,0x00000010,0x00000324,0x0003003e,0x0000031d,0x00000325, + 0x000200f9,0x0000031f,0x000200f8,0x00000326,0x0003003e,0x0000031d,0x000000e2,0x000200f9, + 0x0000031f,0x000200f8,0x0000031f,0x0004003d,0x00000006,0x00000327,0x0000031d,0x0003003e, + 0x000002bc,0x00000327,0x0004003d,0x00000006,0x00000328,0x000002bc,0x000200fe,0x00000328, + 0x00010038,0x00050036,0x00000006,0x000000be,0x00000000,0x000000b5,0x00030037,0x00000013, + 0x000000bb,0x00030037,0x00000013,0x000000bc,0x00030037,0x00000007,0x000000bd,0x000200f8, + 0x000000bf,0x0004003b,0x0000004d,0x0000032b,0x00000007,0x0004003b,0x00000007,0x00000333, + 0x00000007,0x0004003b,0x0000004d,0x00000334,0x00000007,0x0004003b,0x00000013,0x00000337, + 0x00000007,0x0004003b,0x0000004d,0x00000338,0x00000007,0x0004003b,0x00000007,0x0000033b, + 0x00000007,0x0004003b,0x00000013,0x0000033c,0x00000007,0x0004003b,0x00000007,0x0000033f, + 0x00000007,0x0004003b,0x00000013,0x00000340,0x00000007,0x0004003b,0x00000007,0x00000343, + 0x00000007,0x0004003b,0x00000007,0x00000349,0x00000007,0x0004003b,0x00000007,0x0000034a, + 0x00000007,0x0004003b,0x00000007,0x0000034d,0x00000007,0x0004003b,0x00000007,0x0000034e, + 0x00000007,0x0004003b,0x00000007,0x00000351,0x00000007,0x0004003b,0x00000007,0x00000355, + 0x00000007,0x0004003b,0x00000007,0x00000359,0x00000007,0x0004003b,0x00000007,0x0000035b, + 0x00000007,0x0004003b,0x00000007,0x0000035f,0x00000007,0x0004003d,0x00000012,0x0000032c, + 0x000000bb,0x0004003d,0x00000012,0x0000032d,0x000000bc,0x00050081,0x00000012,0x0000032e, + 0x0000032c,0x0000032d,0x00040039,0x00000035,0x0000032f,0x00000037,0x0004006f,0x00000012, + 0x00000330,0x0000032f,0x00050085,0x00000012,0x00000331,0x0000032e,0x00000330,0x0004006e, + 0x00000035,0x00000332,0x00000331,0x0003003e,0x0000032b,0x00000332,0x0004003d,0x00000035, + 0x00000335,0x0000032b,0x0003003e,0x00000334,0x00000335,0x00050039,0x00000006,0x00000336, + 0x00000072,0x00000334,0x0003003e,0x00000333,0x00000336,0x0004003d,0x00000035,0x00000339, + 0x0000032b,0x0003003e,0x00000338,0x00000339,0x00050039,0x00000012,0x0000033a,0x0000006f, + 0x00000338,0x0003003e,0x00000337,0x0000033a,0x0004003d,0x00000012,0x0000033d,0x00000337, + 0x0003003e,0x0000033c,0x0000033d,0x00050039,0x00000006,0x0000033e,0x00000084,0x0000033c, + 0x0003003e,0x0000033b,0x0000033e,0x0004003d,0x00000012,0x00000341,0x000000bc,0x0003003e, + 0x00000340,0x00000341,0x00050039,0x00000006,0x00000342,0x00000084,0x00000340,0x0003003e, + 0x0000033f,0x00000342,0x0004003d,0x00000012,0x00000344,0x000000bc,0x0006000c,0x00000006, + 0x00000345,0x00000001,0x00000042,0x00000344,0x0004003d,0x00000012,0x00000346,0x00000337, + 0x0006000c,0x00000006,0x00000347,0x00000001,0x00000042,0x00000346,0x0007000c,0x00000006, + 0x00000348,0x00000001,0x00000028,0x00000345,0x00000347,0x0003003e,0x00000343,0x00000348, + 0x0004003d,0x00000006,0x0000034b,0x00000333,0x0003003e,0x0000034a,0x0000034b,0x00050039, + 0x00000006,0x0000034c,0x000000a9,0x0000034a,0x0003003e,0x00000349,0x0000034c,0x0004003d, + 0x00000006,0x0000034f,0x000000bd,0x0003003e,0x0000034e,0x0000034f,0x00050039,0x00000006, + 0x00000350,0x000000a9,0x0000034e,0x0003003e,0x0000034d,0x00000350,0x0004003d,0x00000006, + 0x00000352,0x00000349,0x0004003d,0x00000006,0x00000353,0x0000034d,0x00060039,0x00000006, + 0x00000354,0x00000089,0x00000352,0x00000353,0x0003003e,0x00000351,0x00000354,0x0004003d, + 0x00000006,0x00000356,0x0000033f,0x00050088,0x00000006,0x00000358,0x00000356,0x00000357, + 0x0003003e,0x00000359,0x00000358,0x00050039,0x00000006,0x0000035a,0x00000010,0x00000359, + 0x0003003e,0x00000355,0x0000035a,0x0004003d,0x00000006,0x0000035c,0x0000033b,0x0004003d, + 0x00000006,0x0000035d,0x0000033f,0x00050088,0x00000006,0x0000035e,0x0000035c,0x0000035d, + 0x0003003e,0x0000035f,0x0000035e,0x00050039,0x00000006,0x00000360,0x00000010,0x0000035f, + 0x00050083,0x00000006,0x00000361,0x000000e3,0x00000360,0x0004003d,0x00000006,0x00000362, + 0x00000351,0x00050085,0x00000006,0x00000363,0x00000361,0x00000362,0x0004003d,0x00000006, + 0x00000364,0x00000355,0x00050085,0x00000006,0x00000365,0x00000363,0x00000364,0x0003003e, + 0x0000035b,0x00000365,0x0004003d,0x00000006,0x00000366,0x0000035b,0x000200fe,0x00000366, + 0x00010038,0x00050036,0x00000006,0x000000c3,0x00000000,0x000000c0,0x00030037,0x0000004d, + 0x000000c1,0x00030037,0x00000013,0x000000c2,0x000200f8,0x000000c4,0x0004003b,0x00000007, + 0x00000369,0x00000007,0x0004003b,0x00000023,0x0000036a,0x00000007,0x0004003b,0x00000023, + 0x00000373,0x00000007,0x0004003b,0x0000004d,0x0000037b,0x00000007,0x0004003b,0x0000004d, + 0x00000380,0x00000007,0x0004003b,0x0000004d,0x00000382,0x00000007,0x0004003b,0x0000004d, + 0x00000383,0x00000007,0x0004003b,0x0000004d,0x00000385,0x00000007,0x0004003b,0x00000007, + 0x00000388,0x00000007,0x0004003b,0x00000007,0x0000038a,0x00000007,0x0003003e,0x00000369, + 0x000000e2,0x0003003e,0x0000036a,0x0000036b,0x000200f9,0x0000036c,0x000200f8,0x0000036c, + 0x000400f6,0x0000036e,0x0000036f,0x00000000,0x000200f9,0x00000370,0x000200f8,0x00000370, + 0x0004003d,0x00000022,0x00000371,0x0000036a,0x000500b3,0x0000008b,0x00000372,0x00000371, + 0x00000112,0x000400fa,0x00000372,0x0000036d,0x0000036e,0x000200f8,0x0000036d,0x0003003e, + 0x00000373,0x0000036b,0x000200f9,0x00000374,0x000200f8,0x00000374,0x000400f6,0x00000376, + 0x00000377,0x00000000,0x000200f9,0x00000378,0x000200f8,0x00000378,0x0004003d,0x00000022, + 0x00000379,0x00000373,0x000500b3,0x0000008b,0x0000037a,0x00000379,0x00000112,0x000400fa, + 0x0000037a,0x00000375,0x00000376,0x000200f8,0x00000375,0x0004003d,0x00000022,0x0000037c, + 0x00000373,0x0004003d,0x00000022,0x0000037d,0x0000036a,0x00050050,0x00000035,0x0000037e, + 0x0000037c,0x0000037d,0x00040039,0x00000035,0x0000037f,0x00000037,0x0004003d,0x00000035, + 0x00000381,0x000000c1,0x0003003e,0x00000380,0x00000381,0x0003003e,0x00000382,0x0000037e, + 0x0003003e,0x00000383,0x0000037f,0x00070039,0x00000035,0x00000384,0x00000094,0x00000380, + 0x00000382,0x00000383,0x0003003e,0x0000037b,0x00000384,0x0004003d,0x00000035,0x00000386, + 0x0000037b,0x0003003e,0x00000385,0x00000386,0x00050039,0x00000006,0x00000387,0x00000050, + 0x00000385,0x0004003d,0x00000006,0x00000389,0x00000369,0x0003003e,0x00000388,0x00000389, + 0x0003003e,0x0000038a,0x00000387,0x00060039,0x00000006,0x0000038b,0x0000002b,0x00000388, + 0x0000038a,0x0003003e,0x00000369,0x0000038b,0x000200f9,0x00000377,0x000200f8,0x00000377, + 0x0004003d,0x00000022,0x0000038c,0x00000373,0x00050080,0x00000022,0x0000038d,0x0000038c, + 0x00000112,0x0003003e,0x00000373,0x0000038d,0x000200f9,0x00000374,0x000200f8,0x00000376, + 0x000200f9,0x0000036f,0x000200f8,0x0000036f,0x0004003d,0x00000022,0x0000038e,0x0000036a, + 0x00050080,0x00000022,0x0000038f,0x0000038e,0x00000112,0x0003003e,0x0000036a,0x0000038f, + 0x000200f9,0x0000036c,0x000200f8,0x0000036e,0x0004003d,0x00000006,0x00000390,0x00000369, + 0x000200fe,0x00000390,0x00010038,0x00050036,0x00000006,0x000000c7,0x00000000,0x000000c0, + 0x00030037,0x0000004d,0x000000c5,0x00030037,0x00000013,0x000000c6,0x000200f8,0x000000c8, + 0x0004003b,0x00000013,0x00000393,0x00000007,0x0004003b,0x00000013,0x00000396,0x00000007, + 0x0004003b,0x0000004d,0x00000398,0x00000007,0x0004003b,0x0000004d,0x00000399,0x00000007, + 0x0004003b,0x00000013,0x0000039b,0x00000007,0x00040039,0x00000035,0x00000394,0x00000037, + 0x00040039,0x00000035,0x00000395,0x00000052,0x0004003d,0x00000012,0x00000397,0x000000c6, + 0x0003003e,0x00000396,0x00000397,0x0003003e,0x00000398,0x00000394,0x0003003e,0x00000399, + 0x00000395,0x00070039,0x00000012,0x0000039a,0x0000009a,0x00000396,0x00000398,0x00000399, + 0x0003003e,0x00000393,0x0000039a,0x0004003d,0x00000012,0x0000039c,0x00000393,0x0003003e, + 0x0000039b,0x0000039c,0x00050039,0x00000006,0x0000039d,0x00000056,0x0000039b,0x000200fe, + 0x0000039d,0x00010038,0x00050036,0x00000006,0x000000ca,0x00000000,0x0000004e,0x00030037, + 0x0000004d,0x000000c9,0x000200f8,0x000000cb,0x0004003b,0x00000007,0x000003a0,0x00000007, + 0x0004003b,0x00000007,0x000003a2,0x00000007,0x0004003b,0x00000023,0x000003a3,0x00000007, + 0x0004003b,0x0000004d,0x000003ac,0x00000007,0x0004003b,0x0000004d,0x000003b7,0x00000007, + 0x0004003b,0x0000004d,0x000003b9,0x00000007,0x0004003b,0x000003ba,0x000003bb,0x00000007, + 0x0004003b,0x0000004d,0x000003be,0x00000007,0x0004003b,0x000003c1,0x000003c2,0x00000007, + 0x0004003b,0x0000004d,0x000003c4,0x00000007,0x0004003b,0x00000007,0x000003cb,0x00000007, + 0x0004003b,0x00000007,0x000003cd,0x00000007,0x0004003b,0x00000007,0x000003d2,0x00000007, + 0x0004003b,0x00000007,0x000003d4,0x00000007,0x0004003b,0x00000007,0x000003da,0x00000007, + 0x0004003b,0x00000007,0x000003db,0x00000007,0x0004003b,0x000003dc,0x000003dd,0x00000007, + 0x0004003b,0x00000023,0x000003de,0x00000007,0x0004003b,0x00000023,0x000003df,0x00000007, + 0x0004003b,0x00000007,0x000003e7,0x00000007,0x0004003b,0x00000007,0x000003fe,0x00000007, + 0x0004003b,0x00000007,0x00000400,0x00000007,0x0004003b,0x00000007,0x00000405,0x00000007, + 0x0004003b,0x00000007,0x00000407,0x00000007,0x0004003b,0x000002be,0x0000040f,0x00000007, + 0x0004003b,0x00000023,0x00000422,0x00000007,0x0004003b,0x00000433,0x00000434,0x00000007, + 0x0004003b,0x00000433,0x00000439,0x00000007,0x0003003e,0x000003a0,0x000003a1,0x0003003e, + 0x000003a2,0x000002f4,0x0003003e,0x000003a3,0x0000010c,0x000200f9,0x000003a4,0x000200f8, + 0x000003a4,0x000400f6,0x000003a6,0x000003a7,0x00000000,0x000200f9,0x000003a8,0x000200f8, + 0x000003a8,0x0004003d,0x00000022,0x000003a9,0x000003a3,0x000500b1,0x0000008b,0x000003ab, + 0x000003a9,0x000003aa,0x000400fa,0x000003ab,0x000003a5,0x000003a6,0x000200f8,0x000003a5, + 0x0004003d,0x00000022,0x000003b5,0x000003a3,0x00040039,0x00000035,0x000003b6,0x00000037, + 0x0004003d,0x00000035,0x000003b8,0x000000c9,0x0003003e,0x000003b7,0x000003b8,0x0003003e, + 0x000003bb,0x000003b4,0x00050041,0x0000004d,0x000003bc,0x000003bb,0x000003b5,0x0004003d, + 0x00000035,0x000003bd,0x000003bc,0x0003003e,0x000003b9,0x000003bd,0x0003003e,0x000003be, + 0x000003b6,0x00070039,0x00000035,0x000003bf,0x00000094,0x000003b7,0x000003b9,0x000003be, + 0x0003003e,0x000003ac,0x000003bf,0x0004003d,0x00000022,0x000003c3,0x000003a3,0x0004003d, + 0x00000035,0x000003c5,0x000003ac,0x0003003e,0x000003c4,0x000003c5,0x00050039,0x00000006, + 0x000003c6,0x00000064,0x000003c4,0x00040039,0x00000006,0x000003c7,0x00000074,0x00050085, + 0x00000006,0x000003c8,0x000003c6,0x000003c7,0x00050041,0x00000007,0x000003c9,0x000003c2, + 0x000003c3,0x0003003e,0x000003c9,0x000003c8,0x0004003d,0x00000022,0x000003ca,0x000003a3, + 0x0004003d,0x00000006,0x000003cc,0x000003a0,0x0003003e,0x000003cb,0x000003cc,0x00050041, + 0x00000007,0x000003ce,0x000003c2,0x000003ca,0x0004003d,0x00000006,0x000003cf,0x000003ce, + 0x0003003e,0x000003cd,0x000003cf,0x00060039,0x00000006,0x000003d0,0x0000001b,0x000003cb, + 0x000003cd,0x0003003e,0x000003a0,0x000003d0,0x0004003d,0x00000022,0x000003d1,0x000003a3, + 0x0004003d,0x00000006,0x000003d3,0x000003a2,0x0003003e,0x000003d2,0x000003d3,0x00050041, + 0x00000007,0x000003d5,0x000003c2,0x000003d1,0x0004003d,0x00000006,0x000003d6,0x000003d5, + 0x0003003e,0x000003d4,0x000003d6,0x00060039,0x00000006,0x000003d7,0x0000002b,0x000003d2, + 0x000003d4,0x0003003e,0x000003a2,0x000003d7,0x000200f9,0x000003a7,0x000200f8,0x000003a7, + 0x0004003d,0x00000022,0x000003d8,0x000003a3,0x00050080,0x00000022,0x000003d9,0x000003d8, + 0x00000112,0x0003003e,0x000003a3,0x000003d9,0x000200f9,0x000003a4,0x000200f8,0x000003a6, + 0x0003003e,0x000003da,0x000003a1,0x0003003e,0x000003db,0x000000e2,0x0003003e,0x000003dd, + 0x000001f0,0x0003003e,0x000003de,0x00000112,0x0003003e,0x000003df,0x00000112,0x000200f9, + 0x000003e0,0x000200f8,0x000003e0,0x000400f6,0x000003e2,0x000003e3,0x00000000,0x000200f9, + 0x000003e4,0x000200f8,0x000003e4,0x0004003d,0x00000022,0x000003e5,0x000003df,0x000500b1, + 0x0000008b,0x000003e6,0x000003e5,0x000003aa,0x000400fa,0x000003e6,0x000003e1,0x000003e2, + 0x000200f8,0x000003e1,0x0004003d,0x00000022,0x000003e8,0x000003df,0x00050041,0x00000007, + 0x000003e9,0x000003c2,0x000003e8,0x0004003d,0x00000006,0x000003ea,0x000003e9,0x00050041, + 0x00000007,0x000003eb,0x000003c2,0x0000010c,0x0004003d,0x00000006,0x000003ec,0x000003eb, + 0x00050083,0x00000006,0x000003ed,0x000003ea,0x000003ec,0x0006000c,0x00000006,0x000003ee, + 0x00000001,0x00000004,0x000003ed,0x0004003d,0x00000006,0x000003ef,0x000003a2,0x0004003d, + 0x00000006,0x000003f0,0x000003a0,0x00050083,0x00000006,0x000003f1,0x000003ef,0x000003f0, + 0x00050088,0x00000006,0x000003f2,0x000003ee,0x000003f1,0x0003003e,0x000003e7,0x000003f2, + 0x0004003d,0x00000006,0x000003f3,0x000003e7,0x000500b8,0x0000008b,0x000003f5,0x000003f3, + 0x000003f4,0x000300f7,0x000003f7,0x00000000,0x000400fa,0x000003f5,0x000003f6,0x000003fc, + 0x000200f8,0x000003f6,0x0004003d,0x00000022,0x000003f8,0x000003de,0x000500c4,0x000000ab, + 0x000003f9,0x000001f0,0x000003f8,0x0004003d,0x000000ab,0x000003fa,0x000003dd,0x000500c5, + 0x000000ab,0x000003fb,0x000003fa,0x000003f9,0x0003003e,0x000003dd,0x000003fb,0x000200f9, + 0x000003f7,0x000200f8,0x000003fc,0x0004003d,0x00000022,0x000003fd,0x000003df,0x0004003d, + 0x00000006,0x000003ff,0x000003da,0x0003003e,0x000003fe,0x000003ff,0x00050041,0x00000007, + 0x00000401,0x000003c2,0x000003fd,0x0004003d,0x00000006,0x00000402,0x00000401,0x0003003e, + 0x00000400,0x00000402,0x00060039,0x00000006,0x00000403,0x0000001b,0x000003fe,0x00000400, + 0x0003003e,0x000003da,0x00000403,0x0004003d,0x00000022,0x00000404,0x000003df,0x0004003d, + 0x00000006,0x00000406,0x000003db,0x0003003e,0x00000405,0x00000406,0x00050041,0x00000007, + 0x00000408,0x000003c2,0x00000404,0x0004003d,0x00000006,0x00000409,0x00000408,0x0003003e, + 0x00000407,0x00000409,0x00060039,0x00000006,0x0000040a,0x0000002b,0x00000405,0x00000407, + 0x0003003e,0x000003db,0x0000040a,0x000200f9,0x000003f7,0x000200f8,0x000003f7,0x000200f9, + 0x000003e3,0x000200f8,0x000003e3,0x0004003d,0x00000022,0x0000040b,0x000003df,0x00050080, + 0x00000022,0x0000040c,0x0000040b,0x00000112,0x0003003e,0x000003df,0x0000040c,0x0004003d, + 0x00000022,0x0000040d,0x000003de,0x00050080,0x00000022,0x0000040e,0x0000040d,0x00000112, + 0x0003003e,0x000003de,0x0000040e,0x000200f9,0x000003e0,0x000200f8,0x000003e2,0x00050041, + 0x00000007,0x00000410,0x000003c2,0x0000010c,0x0004003d,0x00000006,0x00000411,0x00000410, + 0x0004003d,0x00000006,0x00000412,0x000003db,0x000500ba,0x0000008b,0x00000413,0x00000411, + 0x00000412,0x000400a8,0x0000008b,0x00000414,0x00000413,0x000300f7,0x00000416,0x00000000, + 0x000400fa,0x00000414,0x00000415,0x00000416,0x000200f8,0x00000415,0x00050041,0x00000007, + 0x00000417,0x000003c2,0x0000010c,0x0004003d,0x00000006,0x00000418,0x00000417,0x0004003d, + 0x00000006,0x00000419,0x000003da,0x000500b8,0x0000008b,0x0000041a,0x00000418,0x00000419, + 0x000200f9,0x00000416,0x000200f8,0x00000416,0x000700f5,0x0000008b,0x0000041b,0x00000413, + 0x000003e2,0x0000041a,0x00000415,0x0003003e,0x0000040f,0x0000041b,0x0004003d,0x0000008b, + 0x0000041d,0x0000040f,0x000500a4,0x0000008b,0x0000041e,0x0000041c,0x0000041d,0x000300f7, + 0x00000420,0x00000000,0x000400fa,0x0000041e,0x0000041f,0x00000420,0x000200f8,0x0000041f, + 0x000200fe,0x000000e2,0x000200f8,0x00000420,0x0003003e,0x00000422,0x0000010c,0x000200f9, + 0x00000423,0x000200f8,0x00000423,0x000400f6,0x00000425,0x00000426,0x00000000,0x000200f9, + 0x00000427,0x000200f8,0x00000427,0x0004003d,0x00000022,0x00000428,0x00000422,0x0004007c, + 0x000000ab,0x00000429,0x00000428,0x000500b0,0x0000008b,0x0000042a,0x00000429,0x000000ac, + 0x000400fa,0x0000042a,0x00000424,0x00000425,0x000200f8,0x00000424,0x0004003d,0x000000ab, + 0x0000042b,0x000003dd,0x0004003d,0x00000022,0x00000432,0x00000422,0x0003003e,0x00000434, + 0x00000431,0x00050041,0x000003dc,0x00000435,0x00000434,0x00000432,0x0004003d,0x000000ab, + 0x00000436,0x00000435,0x000500c7,0x000000ab,0x00000437,0x0000042b,0x00000436,0x0004003d, + 0x00000022,0x00000438,0x00000422,0x0003003e,0x00000439,0x00000431,0x00050041,0x000003dc, + 0x0000043a,0x00000439,0x00000438,0x0004003d,0x000000ab,0x0000043b,0x0000043a,0x000500aa, + 0x0000008b,0x0000043c,0x00000437,0x0000043b,0x000300f7,0x0000043e,0x00000000,0x000400fa, + 0x0000043c,0x0000043d,0x0000043e,0x000200f8,0x0000043d,0x000200fe,0x000000e2,0x000200f8, + 0x0000043e,0x000200f9,0x00000426,0x000200f8,0x00000426,0x0004003d,0x00000022,0x00000440, + 0x00000422,0x00050080,0x00000022,0x00000441,0x00000440,0x00000112,0x0003003e,0x00000422, + 0x00000441,0x000200f9,0x00000423,0x000200f8,0x00000425,0x0004003d,0x00000006,0x00000442, + 0x000003a0,0x0004003d,0x00000006,0x00000443,0x000003a2,0x00050088,0x00000006,0x00000444, + 0x00000442,0x00000443,0x00050083,0x00000006,0x00000445,0x000000e3,0x00000444,0x000200fe, + 0x00000445,0x00010038,0x00050036,0x00000006,0x000000d2,0x00000000,0x000000cc,0x00030037, + 0x0000004d,0x000000cd,0x00030037,0x00000013,0x000000ce,0x00030037,0x00000013,0x000000cf, + 0x00030037,0x00000007,0x000000d0,0x00030037,0x00000007,0x000000d1,0x000200f8,0x000000d3, + 0x0004003b,0x00000013,0x00000448,0x00000007,0x0004003b,0x00000007,0x0000044c,0x00000007, + 0x0004003b,0x00000013,0x0000044d,0x00000007,0x0004003b,0x00000013,0x00000452,0x00000007, + 0x0004003b,0x00000013,0x00000455,0x00000007,0x0004003b,0x0000004d,0x00000457,0x00000007, + 0x0004003b,0x0000004d,0x00000458,0x00000007,0x0004003b,0x00000013,0x0000045a,0x00000007, + 0x0004003b,0x00000007,0x0000045d,0x00000007,0x0004003b,0x00000007,0x0000045f,0x00000007, + 0x0004003b,0x00000007,0x00000461,0x00000007,0x0004003b,0x00000007,0x00000463,0x00000007, + 0x0004003b,0x00000007,0x00000464,0x00000007,0x0004003b,0x00000007,0x00000467,0x00000007, + 0x0004003b,0x00000007,0x00000469,0x00000007,0x0004003b,0x00000007,0x0000046b,0x00000007, + 0x0004003b,0x00000007,0x0000046e,0x00000007,0x0004003b,0x00000007,0x00000470,0x00000007, + 0x0004003b,0x00000007,0x00000471,0x00000007,0x0004003b,0x00000007,0x0000047b,0x00000007, + 0x0004003b,0x00000007,0x0000047f,0x00000007,0x0004003b,0x0000004d,0x00000481,0x00000007, + 0x0004003b,0x00000007,0x00000483,0x00000007,0x0004003d,0x00000012,0x00000449,0x000000ce, + 0x0004003d,0x00000012,0x0000044a,0x000000cf,0x00050081,0x00000012,0x0000044b,0x00000449, + 0x0000044a,0x0003003e,0x00000448,0x0000044b,0x0003003e,0x0000044c,0x000000e2,0x0004003d, + 0x00000012,0x0000044e,0x00000448,0x0003003e,0x0000044d,0x0000044e,0x00050039,0x0000008b, + 0x0000044f,0x0000008e,0x0000044d,0x000300f7,0x00000451,0x00000000,0x000400fa,0x0000044f, + 0x00000450,0x00000451,0x000200f8,0x00000450,0x00040039,0x00000035,0x00000453,0x00000039, + 0x00040039,0x00000035,0x00000454,0x0000003b,0x0004003d,0x00000012,0x00000456,0x00000448, + 0x0003003e,0x00000455,0x00000456,0x0003003e,0x00000457,0x00000453,0x0003003e,0x00000458, + 0x00000454,0x00070039,0x00000012,0x00000459,0x0000009a,0x00000455,0x00000457,0x00000458, + 0x0003003e,0x00000452,0x00000459,0x0004003d,0x00000012,0x0000045b,0x00000452,0x0003003e, + 0x0000045a,0x0000045b,0x00050039,0x00000006,0x0000045c,0x00000059,0x0000045a,0x0003003e, + 0x0000045d,0x0000045c,0x00050039,0x00000006,0x0000045e,0x00000010,0x0000045d,0x0003003e, + 0x0000044c,0x0000045e,0x000200f9,0x00000451,0x000200f8,0x00000451,0x00040039,0x00000006, + 0x00000460,0x00000049,0x0003003e,0x0000045f,0x00000460,0x0004003d,0x00000006,0x00000462, + 0x0000044c,0x0003003e,0x00000461,0x00000462,0x0003003e,0x00000463,0x000000e2,0x0004003d, + 0x00000006,0x00000465,0x000000d1,0x0003003e,0x00000464,0x00000465,0x00070039,0x00000006, + 0x00000466,0x0000000c,0x00000461,0x00000463,0x00000464,0x0003003e,0x0000044c,0x00000466, + 0x00040039,0x00000006,0x00000468,0x0000004b,0x0003003e,0x00000467,0x00000468,0x0004003d, + 0x00000006,0x0000046a,0x00000467,0x0003003e,0x00000469,0x0000046a,0x0004003d,0x00000006, + 0x0000046c,0x0000044c,0x0003003e,0x0000046b,0x0000046c,0x00060039,0x00000006,0x0000046d, + 0x0000001b,0x00000469,0x0000046b,0x0004003d,0x00000006,0x0000046f,0x0000044c,0x0003003e, + 0x0000046e,0x0000046f,0x0003003e,0x00000470,0x0000046d,0x0004003d,0x00000006,0x00000472, + 0x000000d0,0x0003003e,0x00000471,0x00000472,0x00070039,0x00000006,0x00000473,0x0000000c, + 0x0000046e,0x00000470,0x00000471,0x0003003e,0x0000044c,0x00000473,0x0004003d,0x00000006, + 0x00000474,0x0000044c,0x00050085,0x00000006,0x00000475,0x00000474,0x000001b4,0x0006000c, + 0x00000006,0x00000476,0x00000001,0x00000001,0x00000475,0x000500ba,0x0000008b,0x00000477, + 0x00000476,0x000000e3,0x000600a9,0x00000006,0x00000478,0x00000477,0x000000e3,0x000000e2, + 0x0004003d,0x00000006,0x00000479,0x0000044c,0x00050085,0x00000006,0x0000047a,0x00000479, + 0x00000478,0x0003003e,0x0000044c,0x0000047a,0x0004003d,0x00000006,0x0000047c,0x0000044c, + 0x0004003d,0x00000006,0x0000047d,0x0000045f,0x00050081,0x00000006,0x0000047e,0x0000047c, + 0x0000047d,0x0003003e,0x0000047f,0x0000047e,0x00050039,0x00000006,0x00000480,0x00000010, + 0x0000047f,0x0003003e,0x0000047b,0x00000480,0x0004003d,0x00000035,0x00000482,0x000000cd, + 0x0003003e,0x00000481,0x00000482,0x0004003d,0x00000006,0x00000484,0x0000047b,0x0003003e, + 0x00000483,0x00000484,0x00060039,0x00000002,0x00000485,0x0000005e,0x00000481,0x00000483, + 0x0004003d,0x00000006,0x00000486,0x0000044c,0x000200fe,0x00000486,0x00010038,0x00050036, + 0x00000006,0x000000d5,0x00000000,0x00000054,0x00030037,0x00000013,0x000000d4,0x000200f8, + 0x000000d6,0x0004003b,0x00000013,0x00000489,0x00000007,0x0004003b,0x00000013,0x00000492, + 0x00000007,0x0004003b,0x0000004d,0x00000493,0x00000007,0x0004003b,0x0000004d,0x00000494, + 0x00000007,0x0004003b,0x00000007,0x00000496,0x00000007,0x0004003b,0x00000013,0x00000497, + 0x00000007,0x0004003b,0x00000007,0x0000049a,0x00000007,0x0004003d,0x00000012,0x0000048a, + 0x000000d4,0x00040039,0x00000012,0x0000048b,0x00000040,0x00040039,0x00000035,0x0000048c, + 0x00000037,0x0004006f,0x00000012,0x0000048d,0x0000048c,0x00050088,0x00000012,0x0000048e, + 0x0000048b,0x0000048d,0x00050083,0x00000012,0x0000048f,0x0000048a,0x0000048e,0x00040039, + 0x00000035,0x00000490,0x0000007f,0x00040039,0x00000035,0x00000491,0x00000081,0x0003003e, + 0x00000492,0x0000048f,0x0003003e,0x00000493,0x00000490,0x0003003e,0x00000494,0x00000491, + 0x00070039,0x00000012,0x00000495,0x0000009a,0x00000492,0x00000493,0x00000494,0x0003003e, + 0x00000489,0x00000495,0x0004003d,0x00000012,0x00000498,0x00000489,0x0003003e,0x00000497, + 0x00000498,0x00050039,0x00000006,0x00000499,0x00000061,0x00000497,0x0003003e,0x0000049a, + 0x00000499,0x00050039,0x00000006,0x0000049b,0x00000010,0x0000049a,0x0003003e,0x00000496, + 0x0000049b,0x0004003d,0x00000006,0x0000049c,0x00000496,0x000200fe,0x0000049c,0x00010038, + 0x00050036,0x00000002,0x000000d9,0x00000000,0x000000d7,0x00030037,0x0000004d,0x000000d8, + 0x000200f8,0x000000da,0x0004003b,0x00000013,0x0000049f,0x00000007,0x0004003b,0x00000013, + 0x000004a7,0x00000007,0x0004003b,0x0000004d,0x000004a8,0x00000007,0x0004003b,0x00000007, + 0x000004ab,0x00000007,0x0004003b,0x00000013,0x000004ac,0x00000007,0x0004003b,0x00000013, + 0x000004af,0x00000007,0x0004003b,0x00000007,0x000004b3,0x00000007,0x0004003b,0x0000004d, + 0x000004b4,0x00000007,0x0004003b,0x00000007,0x000004b7,0x00000007,0x0004003b,0x00000007, + 0x000004b8,0x00000007,0x0004003b,0x00000007,0x000004bb,0x00000007,0x0004003b,0x00000007, + 0x000004bc,0x00000007,0x0004003b,0x00000013,0x000004bf,0x00000007,0x0004003b,0x00000013, + 0x000004c1,0x00000007,0x0004003b,0x00000007,0x000004c3,0x00000007,0x0004003b,0x00000007, + 0x000004c5,0x00000007,0x0004003b,0x0000004d,0x000004c6,0x00000007,0x0004003b,0x00000013, + 0x000004c8,0x00000007,0x0004003b,0x00000013,0x000004cb,0x00000007,0x0004003b,0x00000007, + 0x000004ce,0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b,0x00000007, + 0x000004d1,0x00000007,0x0004003b,0x00000013,0x000004d2,0x00000007,0x0004003b,0x00000013, + 0x000004d4,0x00000007,0x0004003b,0x00000007,0x000004d6,0x00000007,0x0004003b,0x00000007, + 0x000004d9,0x00000007,0x0004003b,0x0000004d,0x000004da,0x00000007,0x0004003b,0x00000013, + 0x000004dc,0x00000007,0x0004003b,0x00000007,0x000004df,0x00000007,0x0004003b,0x00000007, + 0x000004e0,0x00000007,0x0004003b,0x00000007,0x000004e2,0x00000007,0x0004003b,0x00000007, + 0x000004e5,0x00000007,0x0004003b,0x0000004d,0x000004e6,0x00000007,0x0004003b,0x00000013, + 0x000004e8,0x00000007,0x0004003b,0x00000013,0x000004ea,0x00000007,0x0004003b,0x00000007, + 0x000004ec,0x00000007,0x0004003b,0x00000007,0x000004ee,0x00000007,0x0004003b,0x00000076, + 0x000004f1,0x00000007,0x0004003b,0x0000004d,0x000004fc,0x00000007,0x0004003b,0x00000076, + 0x000004fe,0x00000007,0x0004003b,0x00000007,0x00000501,0x00000007,0x0004003b,0x0000004d, + 0x00000502,0x00000007,0x0004003b,0x0000004d,0x0000050b,0x00000007,0x0004003b,0x0000004d, + 0x0000050d,0x00000007,0x0004003b,0x00000007,0x0000050e,0x00000007,0x0004003d,0x00000035, + 0x000004a0,0x000000d8,0x0004006f,0x00000012,0x000004a1,0x000004a0,0x00050050,0x00000012, + 0x000004a2,0x000001c0,0x000001c0,0x00050081,0x00000012,0x000004a3,0x000004a1,0x000004a2, + 0x00040039,0x00000035,0x000004a4,0x00000037,0x0004006f,0x00000012,0x000004a5,0x000004a4, + 0x00050088,0x00000012,0x000004a6,0x000004a3,0x000004a5,0x0003003e,0x0000049f,0x000004a6, + 0x0004003d,0x00000035,0x000004a9,0x000000d8,0x0003003e,0x000004a8,0x000004a9,0x00050039, + 0x00000012,0x000004aa,0x0000006f,0x000004a8,0x0003003e,0x000004a7,0x000004aa,0x0004003d, + 0x00000012,0x000004ad,0x000004a7,0x0003003e,0x000004ac,0x000004ad,0x00050039,0x00000006, + 0x000004ae,0x00000084,0x000004ac,0x0003003e,0x000004ab,0x000004ae,0x0004003d,0x00000012, + 0x000004b0,0x0000049f,0x0004003d,0x00000012,0x000004b1,0x000004a7,0x00050081,0x00000012, + 0x000004b2,0x000004b0,0x000004b1,0x0003003e,0x000004af,0x000004b2,0x0004003d,0x00000035, + 0x000004b5,0x000000d8,0x0003003e,0x000004b4,0x000004b5,0x00050039,0x00000006,0x000004b6, + 0x00000072,0x000004b4,0x0003003e,0x000004b3,0x000004b6,0x0004003d,0x00000006,0x000004b9, + 0x000004b3,0x0003003e,0x000004b8,0x000004b9,0x00050039,0x00000006,0x000004ba,0x000000a9, + 0x000004b8,0x0003003e,0x000004b7,0x000004ba,0x0004003d,0x00000006,0x000004bd,0x000004b3, + 0x0003003e,0x000004bc,0x000004bd,0x00050039,0x00000006,0x000004be,0x000000a6,0x000004bc, + 0x0004003d,0x00000012,0x000004c0,0x0000049f,0x0003003e,0x000004bf,0x000004c0,0x0004003d, + 0x00000012,0x000004c2,0x000004a7,0x0003003e,0x000004c1,0x000004c2,0x0003003e,0x000004c3, + 0x000004be,0x00070039,0x00000006,0x000004c4,0x000000b9,0x000004bf,0x000004c1,0x000004c3, + 0x0003003e,0x000004bb,0x000004c4,0x0004003d,0x00000035,0x000004c7,0x000000d8,0x0003003e, + 0x000004c6,0x000004c7,0x0004003d,0x00000012,0x000004c9,0x0000049f,0x0003003e,0x000004c8, + 0x000004c9,0x00060039,0x00000006,0x000004ca,0x000000c3,0x000004c6,0x000004c8,0x0004003d, + 0x00000012,0x000004cc,0x0000049f,0x0003003e,0x000004cb,0x000004cc,0x00050039,0x00000006, + 0x000004cd,0x000000d5,0x000004cb,0x0003003e,0x000004ce,0x000004ca,0x0003003e,0x000004cf, + 0x000004cd,0x00060039,0x00000006,0x000004d0,0x0000002b,0x000004ce,0x000004cf,0x0003003e, + 0x000004c5,0x000004d0,0x0004003d,0x00000012,0x000004d3,0x0000049f,0x0003003e,0x000004d2, + 0x000004d3,0x0004003d,0x00000012,0x000004d5,0x000004a7,0x0003003e,0x000004d4,0x000004d5, + 0x0004003d,0x00000006,0x000004d7,0x000004b3,0x0003003e,0x000004d6,0x000004d7,0x00070039, + 0x00000006,0x000004d8,0x000000be,0x000004d2,0x000004d4,0x000004d6,0x0003003e,0x000004d1, + 0x000004d8,0x0004003d,0x00000035,0x000004db,0x000000d8,0x0003003e,0x000004da,0x000004db, + 0x0004003d,0x00000012,0x000004dd,0x0000049f,0x0003003e,0x000004dc,0x000004dd,0x00060039, + 0x00000006,0x000004de,0x000000c7,0x000004da,0x000004dc,0x0003003e,0x000004d9,0x000004de, + 0x0004003d,0x00000006,0x000004e1,0x000004d1,0x0003003e,0x000004e0,0x000004e1,0x0004003d, + 0x00000006,0x000004e3,0x000004d9,0x0003003e,0x000004e2,0x000004e3,0x00060039,0x00000006, + 0x000004e4,0x0000002b,0x000004e0,0x000004e2,0x0003003e,0x000004df,0x000004e4,0x0004003d, + 0x00000035,0x000004e7,0x000000d8,0x0003003e,0x000004e6,0x000004e7,0x0004003d,0x00000012, + 0x000004e9,0x0000049f,0x0003003e,0x000004e8,0x000004e9,0x0004003d,0x00000012,0x000004eb, + 0x000004a7,0x0003003e,0x000004ea,0x000004eb,0x0004003d,0x00000006,0x000004ed,0x000004bb, + 0x0003003e,0x000004ec,0x000004ed,0x0004003d,0x00000006,0x000004ef,0x000004c5,0x0003003e, + 0x000004ee,0x000004ef,0x00090039,0x00000006,0x000004f0,0x000000d2,0x000004e6,0x000004e8, + 0x000004ea,0x000004ec,0x000004ee,0x0003003e,0x000004e5,0x000004f0,0x0004003d,0x00000006, + 0x000004f2,0x000004df,0x00050041,0x00000007,0x000004f3,0x000004f1,0x00000143,0x0003003e, + 0x000004f3,0x000004f2,0x0004003d,0x00000006,0x000004f4,0x000004bb,0x00050041,0x00000007, + 0x000004f5,0x000004f1,0x000001f0,0x0003003e,0x000004f5,0x000004f4,0x0004003d,0x00000006, + 0x000004f6,0x000004c5,0x00050041,0x00000007,0x000004f8,0x000004f1,0x000004f7,0x0003003e, + 0x000004f8,0x000004f6,0x0004003d,0x00000006,0x000004f9,0x000004e5,0x00050041,0x00000007, + 0x000004fb,0x000004f1,0x000004fa,0x0003003e,0x000004fb,0x000004f9,0x0004003d,0x00000035, + 0x000004fd,0x000000d8,0x0003003e,0x000004fc,0x000004fd,0x0004003d,0x00000042,0x000004ff, + 0x000004f1,0x0003003e,0x000004fe,0x000004ff,0x00060039,0x00000002,0x00000500,0x0000007a, + 0x000004fc,0x000004fe,0x0004003d,0x00000035,0x00000503,0x000000d8,0x0003003e,0x00000502, + 0x00000503,0x00050039,0x00000006,0x00000504,0x000000ca,0x00000502,0x0003003e,0x00000501, + 0x00000504,0x0004003d,0x00000006,0x00000505,0x00000501,0x000500ba,0x0000008b,0x00000507, + 0x00000505,0x00000506,0x000300f7,0x00000509,0x00000000,0x000400fa,0x00000507,0x00000508, + 0x00000509,0x000200f8,0x00000508,0x0004003d,0x00000035,0x0000050a,0x000000d8,0x0003003e, + 0x0000050b,0x0000050a,0x00050039,0x00000035,0x0000050c,0x000000a3,0x0000050b,0x0003003e, + 0x0000050d,0x0000050c,0x0004003d,0x00000006,0x0000050f,0x00000501,0x0003003e,0x0000050e, + 0x0000050f,0x00060039,0x00000002,0x00000510,0x00000068,0x0000050d,0x0000050e,0x000200f9, + 0x00000509,0x000200f8,0x00000509,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_rcas_comp_spv.h b/gpu/vk/shaders/fsr3_rcas_comp_spv.h new file mode 100644 index 000000000..90f455760 --- /dev/null +++ b/gpu/vk/shaders/fsr3_rcas_comp_spv.h @@ -0,0 +1,694 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_RCAS_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000033d,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000038,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0008000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000031e, + 0x0000031f,0x00000320,0x00060010,0x00000004,0x00000011,0x00000040,0x00000001,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c, + 0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461,0x00003b31,0x00030005, + 0x0000000a,0x00000078,0x00060005,0x00000010,0x41786666,0x6e495573,0x28323374,0x003b3166, + 0x00030005,0x0000000f,0x00000078,0x000a0005,0x00000016,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000013,0x00637273, + 0x00030005,0x00000014,0x0066666f,0x00040005,0x00000015,0x73746962,0x00000000,0x000a0005, + 0x0000001b,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x00000018,0x00637273,0x00030005,0x00000019,0x00736e69,0x00040005, + 0x0000001a,0x73746962,0x00000000,0x00070005,0x00000021,0x4d786666,0x28337861,0x663b3166, + 0x31663b31,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00030005,0x0000001f,0x00000079, + 0x00030005,0x00000020,0x0000007a,0x00070005,0x00000026,0x4d786666,0x28336e69,0x663b3166, + 0x31663b31,0x0000003b,0x00030005,0x00000023,0x00000078,0x00030005,0x00000024,0x00000079, + 0x00030005,0x00000025,0x0000007a,0x00070005,0x0000002a,0x52786666,0x70696365,0x61636f72, + 0x3166286c,0x0000003b,0x00030005,0x00000029,0x00000078,0x00060005,0x0000002d,0x53786666, + 0x72757461,0x28657461,0x003b3166,0x00030005,0x0000002c,0x00000078,0x00060005,0x00000032, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000030,0x00000078,0x00030005, + 0x00000031,0x00000079,0x000b0005,0x00000035,0x41786666,0x6f727070,0x616d6978,0x65526574, + 0x72706963,0x6c61636f,0x6964654d,0x66286d75,0x00003b31,0x00040005,0x00000034,0x756c6176, + 0x00000065,0x00070005,0x0000003a,0x52786666,0x70616d65,0x51726f46,0x28646175,0x003b3175, + 0x00030005,0x00000039,0x00000061,0x00050005,0x0000003e,0x53414352,0x666e6f43,0x00286769, + 0x00070005,0x00000046,0x64616f4c,0x53414352,0x706e495f,0x76287475,0x003b3269,0x00040005, + 0x00000045,0x50785069,0x0000736f,0x000a0005,0x0000004d,0x726f7453,0x73705565,0x656c6163, + 0x74754f64,0x28747570,0x3b326976,0x3b336676,0x00000000,0x00040005,0x0000004b,0x50785069, + 0x0000736f,0x00040005,0x0000004c,0x6c6f4366,0x0000726f,0x00050005,0x00000050,0x6f707845, + 0x65727573,0x00000028,0x000a0005,0x00000056,0x74697257,0x73705565,0x656c6163,0x74754f64, + 0x28747570,0x3b327576,0x3b336676,0x00000000,0x00050005,0x00000054,0x48785069,0x736f5072, + 0x00000000,0x00060005,0x00000055,0x73705566,0x656c6163,0x6c6f4364,0x0000726f,0x00070005, + 0x00000059,0x52727346,0x4c736163,0x4664616f,0x32697628,0x0000003b,0x00030005,0x00000058, + 0x00000070,0x00080005,0x0000005f,0x52727346,0x49736163,0x7475706e,0x31662846,0x3b31663b, + 0x003b3166,0x00030005,0x0000005c,0x00000072,0x00030005,0x0000005d,0x00000067,0x00030005, + 0x0000005e,0x00000062,0x00090005,0x00000068,0x52727346,0x46736163,0x3b316628,0x663b3166, + 0x75763b31,0x75763b32,0x00003b34,0x00040005,0x00000063,0x52786970,0x00000000,0x00040005, + 0x00000064,0x47786970,0x00000000,0x00040005,0x00000065,0x42786970,0x00000000,0x00030005, + 0x00000066,0x00007069,0x00030005,0x00000067,0x006e6f63,0x00060005,0x0000006c,0x72727543, + 0x746c6946,0x76287265,0x003b3275,0x00030005,0x0000006b,0x00736f70,0x00070005,0x00000074, + 0x53414352,0x33757628,0x3375763b,0x3375763b,0x0000003b,0x00060005,0x00000071,0x61636f4c, + 0x7268546c,0x49646165,0x00000064,0x00050005,0x00000072,0x6b726f57,0x756f7247,0x00644970, + 0x00040005,0x00000073,0x64697444,0x00000000,0x00030005,0x000000ab,0x00000062,0x00040005, + 0x000000ad,0x61726170,0x0000006d,0x00040005,0x000000b1,0x61726170,0x0000006d,0x00040005, + 0x000000bf,0x61726170,0x0000006d,0x00040005,0x000000c1,0x61726170,0x0000006d,0x00040005, + 0x000000c2,0x61726170,0x0000006d,0x00040005,0x000000c4,0x61726170,0x0000006d,0x00040005, + 0x000000c6,0x61726170,0x0000006d,0x00040005,0x000000c7,0x61726170,0x0000006d,0x00040005, + 0x000000c9,0x61726170,0x0000006d,0x00040005,0x000000ca,0x61726170,0x0000006d,0x00040005, + 0x000000cc,0x61726170,0x0000006d,0x00050005,0x000000d1,0x43526263,0x745f5341,0x00000000, + 0x00060006,0x000000d1,0x00000000,0x73616372,0x666e6f43,0x00006769,0x00040005,0x000000d3, + 0x43526263,0x00005341,0x00060005,0x000000db,0x63725f72,0x695f7361,0x7475706e,0x00000000, + 0x00070005,0x000000e3,0x755f7772,0x61637370,0x5f64656c,0x7074756f,0x00007475,0x00050005, + 0x000000eb,0x6f707865,0x65727573,0x00000000,0x00070005,0x000000ec,0x6e695f72,0x5f747570, + 0x6f707865,0x65727573,0x00000000,0x00040005,0x000000fc,0x61726170,0x0000006d,0x00040005, + 0x000000fd,0x61726170,0x0000006d,0x00040005,0x00000101,0x6c6f4366,0x0000726f,0x00040005, + 0x00000102,0x61726170,0x0000006d,0x00030005,0x00000113,0x00007073,0x00030005,0x00000116, + 0x00000062,0x00040005,0x0000011b,0x61726170,0x0000006d,0x00030005,0x0000011e,0x00000064, + 0x00040005,0x00000122,0x61726170,0x0000006d,0x00030005,0x00000125,0x00000065,0x00040005, + 0x00000126,0x61726170,0x0000006d,0x00030005,0x0000012a,0x00000066,0x00040005,0x0000012f, + 0x61726170,0x0000006d,0x00030005,0x00000132,0x00000068,0x00040005,0x00000136,0x61726170, + 0x0000006d,0x00030005,0x00000139,0x00005262,0x00030005,0x0000013c,0x00004762,0x00030005, + 0x0000013f,0x00004262,0x00030005,0x00000142,0x00005264,0x00030005,0x00000145,0x00004764, + 0x00030005,0x00000148,0x00004264,0x00030005,0x0000014b,0x00005265,0x00030005,0x0000014e, + 0x00004765,0x00030005,0x00000151,0x00004265,0x00030005,0x00000154,0x00005266,0x00030005, + 0x00000157,0x00004766,0x00030005,0x0000015a,0x00004266,0x00030005,0x0000015d,0x00005268, + 0x00030005,0x00000160,0x00004768,0x00030005,0x00000163,0x00004268,0x00040005,0x00000166, + 0x61726170,0x0000006d,0x00040005,0x00000168,0x61726170,0x0000006d,0x00040005,0x0000016a, + 0x61726170,0x0000006d,0x00040005,0x00000170,0x61726170,0x0000006d,0x00040005,0x00000172, + 0x61726170,0x0000006d,0x00040005,0x00000174,0x61726170,0x0000006d,0x00040005,0x0000017a, + 0x61726170,0x0000006d,0x00040005,0x0000017c,0x61726170,0x0000006d,0x00040005,0x0000017e, + 0x61726170,0x0000006d,0x00040005,0x00000184,0x61726170,0x0000006d,0x00040005,0x00000186, + 0x61726170,0x0000006d,0x00040005,0x00000188,0x61726170,0x0000006d,0x00040005,0x0000018e, + 0x61726170,0x0000006d,0x00040005,0x00000190,0x61726170,0x0000006d,0x00040005,0x00000192, + 0x61726170,0x0000006d,0x00030005,0x00000198,0x00004c62,0x00030005,0x000001a1,0x00004c64, + 0x00030005,0x000001a9,0x00004c65,0x00030005,0x000001b1,0x00004c66,0x00030005,0x000001b9, + 0x00004c68,0x00030005,0x000001c1,0x00007a6e,0x00040005,0x000001d2,0x61726170,0x0000006d, + 0x00040005,0x000001d4,0x61726170,0x0000006d,0x00040005,0x000001d6,0x61726170,0x0000006d, + 0x00040005,0x000001d9,0x61726170,0x0000006d,0x00040005,0x000001da,0x61726170,0x0000006d, + 0x00040005,0x000001dc,0x61726170,0x0000006d,0x00040005,0x000001df,0x61726170,0x0000006d, + 0x00040005,0x000001e1,0x61726170,0x0000006d,0x00040005,0x000001e3,0x61726170,0x0000006d, + 0x00040005,0x000001e6,0x61726170,0x0000006d,0x00040005,0x000001e7,0x61726170,0x0000006d, + 0x00040005,0x000001e9,0x61726170,0x0000006d,0x00040005,0x000001ed,0x61726170,0x0000006d, + 0x00040005,0x000001f0,0x61726170,0x0000006d,0x00040005,0x000001f6,0x52346e6d,0x00000000, + 0x00040005,0x000001f7,0x61726170,0x0000006d,0x00040005,0x000001f9,0x61726170,0x0000006d, + 0x00040005,0x000001fb,0x61726170,0x0000006d,0x00040005,0x000001fe,0x61726170,0x0000006d, + 0x00040005,0x000001ff,0x61726170,0x0000006d,0x00040005,0x00000202,0x47346e6d,0x00000000, + 0x00040005,0x00000203,0x61726170,0x0000006d,0x00040005,0x00000205,0x61726170,0x0000006d, + 0x00040005,0x00000207,0x61726170,0x0000006d,0x00040005,0x0000020a,0x61726170,0x0000006d, + 0x00040005,0x0000020b,0x61726170,0x0000006d,0x00040005,0x0000020e,0x42346e6d,0x00000000, + 0x00040005,0x0000020f,0x61726170,0x0000006d,0x00040005,0x00000211,0x61726170,0x0000006d, + 0x00040005,0x00000213,0x61726170,0x0000006d,0x00040005,0x00000216,0x61726170,0x0000006d, + 0x00040005,0x00000217,0x61726170,0x0000006d,0x00040005,0x0000021a,0x5234786d,0x00000000, + 0x00040005,0x0000021b,0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d, + 0x00040005,0x0000021f,0x61726170,0x0000006d,0x00040005,0x00000224,0x4734786d,0x00000000, + 0x00040005,0x00000225,0x61726170,0x0000006d,0x00040005,0x00000227,0x61726170,0x0000006d, + 0x00040005,0x00000229,0x61726170,0x0000006d,0x00040005,0x0000022e,0x4234786d,0x00000000, + 0x00040005,0x0000022f,0x61726170,0x0000006d,0x00040005,0x00000231,0x61726170,0x0000006d, + 0x00040005,0x00000233,0x61726170,0x0000006d,0x00040005,0x0000023a,0x6b616570,0x00000043, + 0x00040005,0x0000023d,0x4d746968,0x00526e69,0x00040005,0x00000242,0x61726170,0x0000006d, + 0x00040005,0x00000245,0x4d746968,0x00476e69,0x00040005,0x00000249,0x61726170,0x0000006d, + 0x00040005,0x0000024c,0x4d746968,0x00426e69,0x00040005,0x00000250,0x61726170,0x0000006d, + 0x00040005,0x00000253,0x4d746968,0x00527861,0x00040005,0x0000025d,0x61726170,0x0000006d, + 0x00040005,0x00000260,0x4d746968,0x00477861,0x00040005,0x0000026a,0x61726170,0x0000006d, + 0x00040005,0x0000026d,0x4d746968,0x00427861,0x00040005,0x00000277,0x61726170,0x0000006d, + 0x00040005,0x0000027a,0x65626f6c,0x00000052,0x00040005,0x0000027f,0x65626f6c,0x00000047, + 0x00040005,0x00000284,0x65626f6c,0x00000042,0x00040005,0x00000289,0x65626f6c,0x00000000, + 0x00040005,0x0000028b,0x61726170,0x0000006d,0x00040005,0x0000028d,0x61726170,0x0000006d, + 0x00040005,0x0000028f,0x61726170,0x0000006d,0x00040005,0x00000292,0x61726170,0x0000006d, + 0x00040005,0x00000293,0x61726170,0x0000006d,0x00040005,0x00000296,0x61726170,0x0000006d, + 0x00040005,0x0000029e,0x4c706372,0x00000000,0x00040005,0x000002a2,0x61726170,0x0000006d, + 0x00030005,0x000002de,0x00000063,0x00040005,0x000002e0,0x61726170,0x0000006d,0x00040005, + 0x000002e1,0x61726170,0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005, + 0x000002e3,0x61726170,0x0000006d,0x00040005,0x000002e5,0x61726170,0x0000006d,0x00040005, + 0x000002f1,0x61726170,0x0000006d,0x00040005,0x000002f3,0x61726170,0x0000006d,0x00030005, + 0x000002f6,0x00797867,0x00040005,0x000002f7,0x61726170,0x0000006d,0x00040005,0x00000305, + 0x61726170,0x0000006d,0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005,0x00000314, + 0x61726170,0x0000006d,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00080005,0x0000031e, + 0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00060005,0x0000031f, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000320,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000321,0x61726170,0x0000006d, + 0x00040005,0x00000323,0x61726170,0x0000006d,0x00040005,0x00000325,0x61726170,0x0000006d, + 0x00070005,0x0000032b,0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006, + 0x0000032b,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000032b,0x00000001, + 0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006, + 0x0000032b,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000032b, + 0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065, + 0x00070006,0x0000032b,0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006, + 0x0000032b,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000032b, + 0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000032b, + 0x00000007,0x74694a66,0x00726574,0x00090006,0x0000032b,0x00000008,0x65725066,0x756f6976, + 0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x0000032b,0x00000009,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000032b,0x0000000a,0x776f4466, + 0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000032b,0x0000000b,0x746f4d66, + 0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006, + 0x0000032b,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000032b,0x0000000d, + 0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000032b, + 0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000032b,0x0000000f,0x6c654466, + 0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000032b,0x00000010,0x65695666, + 0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000032b, + 0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000032b,0x00000012,0x6c655666, + 0x7469636f,0x63614679,0x00726f74,0x00080006,0x0000032b,0x00000013,0x61655266,0x76697463, + 0x73656e65,0x61635373,0x0000656c,0x00080006,0x0000032b,0x00000014,0x61685366,0x676e6964, + 0x6e616843,0x63536567,0x00656c61,0x000a0006,0x0000032b,0x00000015,0x63634166,0x6c756d75, + 0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000032b,0x00000016, + 0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000, + 0x00060005,0x0000032d,0x53466263,0x70553352,0x6c616373,0x00007265,0x00060005,0x00000330, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00060005,0x00000331,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00030047,0x000000d1,0x00000002,0x00050048,0x000000d1,0x00000000, + 0x00000023,0x00000000,0x00040047,0x000000d3,0x00000021,0x00000004,0x00040047,0x000000d3, + 0x00000022,0x00000000,0x00040047,0x000000db,0x00000021,0x00000001,0x00040047,0x000000db, + 0x00000022,0x00000000,0x00030047,0x000000e3,0x00000019,0x00040047,0x000000e3,0x00000021, + 0x00000002,0x00040047,0x000000e3,0x00000022,0x00000000,0x00040047,0x000000ec,0x00000021, + 0x00000000,0x00040047,0x000000ec,0x00000022,0x00000000,0x00040047,0x0000031e,0x0000000b, + 0x0000001b,0x00040047,0x0000031f,0x0000000b,0x0000001a,0x00040047,0x00000320,0x0000000b, + 0x0000001c,0x00030047,0x0000032b,0x00000002,0x00050048,0x0000032b,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000032b,0x00000001,0x00000023,0x00000008,0x00050048,0x0000032b, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000032b,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000032b,0x00000004,0x00000023,0x00000020,0x00050048,0x0000032b,0x00000005, + 0x00000023,0x00000028,0x00050048,0x0000032b,0x00000006,0x00000023,0x00000030,0x00050048, + 0x0000032b,0x00000007,0x00000023,0x00000040,0x00050048,0x0000032b,0x00000008,0x00000023, + 0x00000048,0x00050048,0x0000032b,0x00000009,0x00000023,0x00000050,0x00050048,0x0000032b, + 0x0000000a,0x00000023,0x00000058,0x00050048,0x0000032b,0x0000000b,0x00000023,0x00000060, + 0x00050048,0x0000032b,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000032b,0x0000000d, + 0x00000023,0x0000006c,0x00050048,0x0000032b,0x0000000e,0x00000023,0x00000070,0x00050048, + 0x0000032b,0x0000000f,0x00000023,0x00000074,0x00050048,0x0000032b,0x00000010,0x00000023, + 0x00000078,0x00050048,0x0000032b,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000032b, + 0x00000012,0x00000023,0x00000080,0x00050048,0x0000032b,0x00000013,0x00000023,0x00000084, + 0x00050048,0x0000032b,0x00000014,0x00000023,0x00000088,0x00050048,0x0000032b,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000032b,0x00000016,0x00000023,0x00000090,0x00040047, + 0x0000032d,0x00000021,0x00000003,0x00040047,0x0000032d,0x00000022,0x00000000,0x00040047, + 0x00000330,0x00000021,0x000003e8,0x00040047,0x00000330,0x00000022,0x00000000,0x00040047, + 0x00000331,0x00000021,0x000003e9,0x00040047,0x00000331,0x00000022,0x00000000,0x00040047, + 0x0000033c,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040020, + 0x0000000d,0x00000007,0x00000008,0x00040021,0x0000000e,0x00000006,0x0000000d,0x00060021, + 0x00000012,0x00000006,0x00000007,0x00000007,0x00000007,0x00060021,0x0000001d,0x00000008, + 0x0000000d,0x0000000d,0x0000000d,0x00040021,0x00000028,0x00000008,0x0000000d,0x00050021, + 0x0000002f,0x00000008,0x0000000d,0x0000000d,0x00040017,0x00000037,0x00000006,0x00000002, + 0x00040021,0x00000038,0x00000037,0x00000007,0x00040017,0x0000003c,0x00000006,0x00000004, + 0x00030021,0x0000003d,0x0000003c,0x00040015,0x00000040,0x00000020,0x00000001,0x00040017, + 0x00000041,0x00000040,0x00000002,0x00040020,0x00000042,0x00000007,0x00000041,0x00040017, + 0x00000043,0x00000008,0x00000004,0x00040021,0x00000044,0x00000043,0x00000042,0x00040017, + 0x00000048,0x00000008,0x00000003,0x00040020,0x00000049,0x00000007,0x00000048,0x00050021, + 0x0000004a,0x00000002,0x00000042,0x00000049,0x00030021,0x0000004f,0x00000008,0x00040020, + 0x00000052,0x00000007,0x00000037,0x00050021,0x00000053,0x00000002,0x00000052,0x00000049, + 0x00060021,0x0000005b,0x00000002,0x0000000d,0x0000000d,0x0000000d,0x00040020,0x00000061, + 0x00000007,0x0000003c,0x00080021,0x00000062,0x00000002,0x0000000d,0x0000000d,0x0000000d, + 0x00000052,0x00000061,0x00040021,0x0000006a,0x00000002,0x00000052,0x00040017,0x0000006e, + 0x00000006,0x00000003,0x00040020,0x0000006f,0x00000007,0x0000006e,0x00060021,0x00000070, + 0x00000002,0x0000006f,0x0000006f,0x0000006f,0x0004002b,0x00000040,0x00000088,0x00000000, + 0x0004002b,0x00000008,0x0000009c,0x3f800000,0x0004002b,0x00000008,0x000000a2,0x00000000, + 0x0004002b,0x00000006,0x000000ac,0x7ef19fff,0x0004002b,0x00000008,0x000000b8,0x40000000, + 0x0004002b,0x00000006,0x000000bd,0x00000001,0x0004002b,0x00000006,0x000000be,0x00000003, + 0x0003001e,0x000000d1,0x0000003c,0x00040020,0x000000d2,0x00000002,0x000000d1,0x0004003b, + 0x000000d2,0x000000d3,0x00000002,0x00040020,0x000000d4,0x00000002,0x0000003c,0x00090019, + 0x000000d9,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x000000da,0x00000000,0x000000d9,0x0004003b,0x000000da,0x000000db,0x00000000, + 0x00090019,0x000000e1,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x000000e2,0x00000000,0x000000e1,0x0004003b,0x000000e2,0x000000e3, + 0x00000000,0x0004003b,0x000000da,0x000000ec,0x00000000,0x0005002c,0x00000041,0x000000ee, + 0x00000088,0x00000088,0x0004002b,0x00000006,0x000000f0,0x00000000,0x00020014,0x000000f3, + 0x00040020,0x00000100,0x00000007,0x00000043,0x0004002b,0x00000006,0x0000010d,0x00000002, + 0x0004002b,0x00000040,0x00000118,0xffffffff,0x0005002c,0x00000041,0x00000119,0x00000088, + 0x00000118,0x0005002c,0x00000041,0x00000120,0x00000118,0x00000088,0x0004002b,0x00000040, + 0x0000012c,0x00000001,0x0005002c,0x00000041,0x0000012d,0x0000012c,0x00000088,0x0005002c, + 0x00000041,0x00000134,0x00000088,0x0000012c,0x0004002b,0x00000008,0x0000019a,0x3f000000, + 0x0004002b,0x00000008,0x000001c2,0x3e800000,0x0004002b,0x00000008,0x000001f2,0xbf000000, + 0x00040017,0x00000238,0x00000008,0x00000002,0x00040020,0x00000239,0x00000007,0x00000238, + 0x0004002b,0x00000008,0x0000023b,0xc0800000,0x0005002c,0x00000238,0x0000023c,0x0000009c, + 0x0000023b,0x0004002b,0x00000008,0x0000023f,0x40800000,0x0004002b,0x00000008,0x0000028a, + 0xbe400000,0x0004002b,0x00000006,0x000002fd,0x00000004,0x0004002b,0x00000006,0x00000307, + 0x00000008,0x00040020,0x0000031d,0x00000001,0x0000006e,0x0004003b,0x0000031d,0x0000031e, + 0x00000001,0x0004003b,0x0000031d,0x0000031f,0x00000001,0x0004003b,0x0000031d,0x00000320, + 0x00000001,0x0004002b,0x00000008,0x00000328,0x387fda40,0x0004002b,0x00000008,0x00000329, + 0x477fe000,0x0004002b,0x00000008,0x0000032a,0x37801002,0x0019001e,0x0000032b,0x00000041, + 0x00000041,0x00000041,0x00000041,0x00000041,0x00000041,0x00000043,0x00000238,0x00000238, + 0x00000238,0x00000238,0x00000238,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008, + 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00040020,0x0000032c, + 0x00000002,0x0000032b,0x0004003b,0x0000032c,0x0000032d,0x00000002,0x0002001a,0x0000032e, + 0x00040020,0x0000032f,0x00000000,0x0000032e,0x0004003b,0x0000032f,0x00000330,0x00000000, + 0x0004003b,0x0000032f,0x00000331,0x00000000,0x0004002b,0x00000008,0x00000332,0x7f7fffff, + 0x0004002b,0x00000008,0x00000333,0x00800000,0x0004002b,0x00000008,0x00000334,0x3a1fe868, + 0x0004002b,0x00000008,0x00000335,0x3d800000,0x0004002b,0x00000008,0x00000336,0x3d3d70a4, + 0x0004002b,0x00000008,0x00000337,0x3e400000,0x0004002b,0x00000040,0x00000338,0x00000002, + 0x0004002b,0x00000040,0x00000339,0x00000003,0x0004002b,0x00000008,0x0000033a,0x461c4000, + 0x0004002b,0x00000006,0x0000033b,0x00000040,0x0006002c,0x0000006e,0x0000033c,0x0000033b, + 0x000000bd,0x000000bd,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x0000006f,0x00000321,0x00000007,0x0004003b,0x0000006f,0x00000323, + 0x00000007,0x0004003b,0x0000006f,0x00000325,0x00000007,0x0004003d,0x0000006e,0x00000322, + 0x0000031e,0x0003003e,0x00000321,0x00000322,0x0004003d,0x0000006e,0x00000324,0x0000031f, + 0x0003003e,0x00000323,0x00000324,0x0004003d,0x0000006e,0x00000326,0x00000320,0x0003003e, + 0x00000325,0x00000326,0x00070039,0x00000002,0x00000327,0x00000074,0x00000321,0x00000323, + 0x00000325,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000076, + 0x0000000a,0x0004007c,0x00000008,0x00000077,0x00000076,0x000200fe,0x00000077,0x00010038, + 0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f, + 0x000200f8,0x00000011,0x0004003d,0x00000008,0x0000007a,0x0000000f,0x0004007c,0x00000006, + 0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038,0x00050036,0x00000006,0x00000016, + 0x00000000,0x00000012,0x00030037,0x00000007,0x00000013,0x00030037,0x00000007,0x00000014, + 0x00030037,0x00000007,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000006,0x0000007e, + 0x00000013,0x0004003d,0x00000006,0x0000007f,0x00000014,0x0004007c,0x00000040,0x00000080, + 0x0000007f,0x0004003d,0x00000006,0x00000081,0x00000015,0x0004007c,0x00000040,0x00000082, + 0x00000081,0x000600cb,0x00000006,0x00000083,0x0000007e,0x00000080,0x00000082,0x000200fe, + 0x00000083,0x00010038,0x00050036,0x00000006,0x0000001b,0x00000000,0x00000012,0x00030037, + 0x00000007,0x00000018,0x00030037,0x00000007,0x00000019,0x00030037,0x00000007,0x0000001a, + 0x000200f8,0x0000001c,0x0004003d,0x00000006,0x00000086,0x00000018,0x0004003d,0x00000006, + 0x00000087,0x00000019,0x0004003d,0x00000006,0x00000089,0x0000001a,0x0004007c,0x00000040, + 0x0000008a,0x00000089,0x000700c9,0x00000006,0x0000008b,0x00000086,0x00000087,0x00000088, + 0x0000008a,0x000200fe,0x0000008b,0x00010038,0x00050036,0x00000008,0x00000021,0x00000000, + 0x0000001d,0x00030037,0x0000000d,0x0000001e,0x00030037,0x0000000d,0x0000001f,0x00030037, + 0x0000000d,0x00000020,0x000200f8,0x00000022,0x0004003d,0x00000008,0x0000008e,0x0000001e, + 0x0004003d,0x00000008,0x0000008f,0x0000001f,0x0004003d,0x00000008,0x00000090,0x00000020, + 0x0007000c,0x00000008,0x00000091,0x00000001,0x00000028,0x0000008f,0x00000090,0x0007000c, + 0x00000008,0x00000092,0x00000001,0x00000028,0x0000008e,0x00000091,0x000200fe,0x00000092, + 0x00010038,0x00050036,0x00000008,0x00000026,0x00000000,0x0000001d,0x00030037,0x0000000d, + 0x00000023,0x00030037,0x0000000d,0x00000024,0x00030037,0x0000000d,0x00000025,0x000200f8, + 0x00000027,0x0004003d,0x00000008,0x00000095,0x00000023,0x0004003d,0x00000008,0x00000096, + 0x00000024,0x0004003d,0x00000008,0x00000097,0x00000025,0x0007000c,0x00000008,0x00000098, + 0x00000001,0x00000025,0x00000096,0x00000097,0x0007000c,0x00000008,0x00000099,0x00000001, + 0x00000025,0x00000095,0x00000098,0x000200fe,0x00000099,0x00010038,0x00050036,0x00000008, + 0x0000002a,0x00000000,0x00000028,0x00030037,0x0000000d,0x00000029,0x000200f8,0x0000002b, + 0x0004003d,0x00000008,0x0000009d,0x00000029,0x00050088,0x00000008,0x0000009e,0x0000009c, + 0x0000009d,0x000200fe,0x0000009e,0x00010038,0x00050036,0x00000008,0x0000002d,0x00000000, + 0x00000028,0x00030037,0x0000000d,0x0000002c,0x000200f8,0x0000002e,0x0004003d,0x00000008, + 0x000000a1,0x0000002c,0x0008000c,0x00000008,0x000000a3,0x00000001,0x0000002b,0x000000a1, + 0x000000a2,0x0000009c,0x000200fe,0x000000a3,0x00010038,0x00050036,0x00000008,0x00000032, + 0x00000000,0x0000002f,0x00030037,0x0000000d,0x00000030,0x00030037,0x0000000d,0x00000031, + 0x000200f8,0x00000033,0x0004003d,0x00000008,0x000000a6,0x00000030,0x0004003d,0x00000008, + 0x000000a7,0x00000031,0x0007000c,0x00000008,0x000000a8,0x00000001,0x00000025,0x000000a6, + 0x000000a7,0x000200fe,0x000000a8,0x00010038,0x00050036,0x00000008,0x00000035,0x00000000, + 0x00000028,0x00030037,0x0000000d,0x00000034,0x000200f8,0x00000036,0x0004003b,0x0000000d, + 0x000000ab,0x00000007,0x0004003b,0x0000000d,0x000000ad,0x00000007,0x0004003b,0x00000007, + 0x000000b1,0x00000007,0x0004003d,0x00000008,0x000000ae,0x00000034,0x0003003e,0x000000ad, + 0x000000ae,0x00050039,0x00000006,0x000000af,0x00000010,0x000000ad,0x00050082,0x00000006, + 0x000000b0,0x000000ac,0x000000af,0x0003003e,0x000000b1,0x000000b0,0x00050039,0x00000008, + 0x000000b2,0x0000000b,0x000000b1,0x0003003e,0x000000ab,0x000000b2,0x0004003d,0x00000008, + 0x000000b3,0x000000ab,0x0004003d,0x00000008,0x000000b4,0x000000ab,0x0004007f,0x00000008, + 0x000000b5,0x000000b4,0x0004003d,0x00000008,0x000000b6,0x00000034,0x00050085,0x00000008, + 0x000000b7,0x000000b5,0x000000b6,0x00050081,0x00000008,0x000000b9,0x000000b7,0x000000b8, + 0x00050085,0x00000008,0x000000ba,0x000000b3,0x000000b9,0x000200fe,0x000000ba,0x00010038, + 0x00050036,0x00000037,0x0000003a,0x00000000,0x00000038,0x00030037,0x00000007,0x00000039, + 0x000200f8,0x0000003b,0x0004003b,0x00000007,0x000000bf,0x00000007,0x0004003b,0x00000007, + 0x000000c1,0x00000007,0x0004003b,0x00000007,0x000000c2,0x00000007,0x0004003b,0x00000007, + 0x000000c4,0x00000007,0x0004003b,0x00000007,0x000000c6,0x00000007,0x0004003b,0x00000007, + 0x000000c7,0x00000007,0x0004003b,0x00000007,0x000000c9,0x00000007,0x0004003b,0x00000007, + 0x000000ca,0x00000007,0x0004003b,0x00000007,0x000000cc,0x00000007,0x0004003d,0x00000006, + 0x000000c0,0x00000039,0x0003003e,0x000000bf,0x000000c0,0x0003003e,0x000000c1,0x000000bd, + 0x0003003e,0x000000c2,0x000000be,0x00070039,0x00000006,0x000000c3,0x00000016,0x000000bf, + 0x000000c1,0x000000c2,0x0004003d,0x00000006,0x000000c5,0x00000039,0x0003003e,0x000000c4, + 0x000000c5,0x0003003e,0x000000c6,0x000000be,0x0003003e,0x000000c7,0x000000be,0x00070039, + 0x00000006,0x000000c8,0x00000016,0x000000c4,0x000000c6,0x000000c7,0x0003003e,0x000000c9, + 0x000000c8,0x0004003d,0x00000006,0x000000cb,0x00000039,0x0003003e,0x000000ca,0x000000cb, + 0x0003003e,0x000000cc,0x000000bd,0x00070039,0x00000006,0x000000cd,0x0000001b,0x000000c9, + 0x000000ca,0x000000cc,0x00050050,0x00000037,0x000000ce,0x000000c3,0x000000cd,0x000200fe, + 0x000000ce,0x00010038,0x00050036,0x0000003c,0x0000003e,0x00000000,0x0000003d,0x000200f8, + 0x0000003f,0x00050041,0x000000d4,0x000000d5,0x000000d3,0x00000088,0x0004003d,0x0000003c, + 0x000000d6,0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000043,0x00000046, + 0x00000000,0x00000044,0x00030037,0x00000042,0x00000045,0x000200f8,0x00000047,0x0004003d, + 0x000000d9,0x000000dc,0x000000db,0x0004003d,0x00000041,0x000000dd,0x00000045,0x0007005f, + 0x00000043,0x000000de,0x000000dc,0x000000dd,0x00000002,0x00000088,0x000200fe,0x000000de, + 0x00010038,0x00050036,0x00000002,0x0000004d,0x00000000,0x0000004a,0x00030037,0x00000042, + 0x0000004b,0x00030037,0x00000049,0x0000004c,0x000200f8,0x0000004e,0x0004003d,0x000000e1, + 0x000000e4,0x000000e3,0x0004003d,0x00000041,0x000000e5,0x0000004b,0x0004003d,0x00000048, + 0x000000e6,0x0000004c,0x00050051,0x00000008,0x000000e7,0x000000e6,0x00000000,0x00050051, + 0x00000008,0x000000e8,0x000000e6,0x00000001,0x00050051,0x00000008,0x000000e9,0x000000e6, + 0x00000002,0x00070050,0x00000043,0x000000ea,0x000000e7,0x000000e8,0x000000e9,0x0000009c, + 0x00040063,0x000000e4,0x000000e5,0x000000ea,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x00000050,0x00000000,0x0000004f,0x000200f8,0x00000051,0x0004003b,0x0000000d,0x000000eb, + 0x00000007,0x0004003d,0x000000d9,0x000000ed,0x000000ec,0x0007005f,0x00000043,0x000000ef, + 0x000000ed,0x000000ee,0x00000002,0x00000088,0x00050051,0x00000008,0x000000f1,0x000000ef, + 0x00000000,0x0003003e,0x000000eb,0x000000f1,0x0004003d,0x00000008,0x000000f2,0x000000eb, + 0x000500b4,0x000000f3,0x000000f4,0x000000f2,0x000000a2,0x000300f7,0x000000f6,0x00000000, + 0x000400fa,0x000000f4,0x000000f5,0x000000f6,0x000200f8,0x000000f5,0x0003003e,0x000000eb, + 0x0000009c,0x000200f9,0x000000f6,0x000200f8,0x000000f6,0x0004003d,0x00000008,0x000000f7, + 0x000000eb,0x000200fe,0x000000f7,0x00010038,0x00050036,0x00000002,0x00000056,0x00000000, + 0x00000053,0x00030037,0x00000052,0x00000054,0x00030037,0x00000049,0x00000055,0x000200f8, + 0x00000057,0x0004003b,0x00000042,0x000000fc,0x00000007,0x0004003b,0x00000049,0x000000fd, + 0x00000007,0x0004003d,0x00000037,0x000000fa,0x00000054,0x0004007c,0x00000041,0x000000fb, + 0x000000fa,0x0003003e,0x000000fc,0x000000fb,0x0004003d,0x00000048,0x000000fe,0x00000055, + 0x0003003e,0x000000fd,0x000000fe,0x00060039,0x00000002,0x000000ff,0x0000004d,0x000000fc, + 0x000000fd,0x000100fd,0x00010038,0x00050036,0x00000043,0x00000059,0x00000000,0x00000044, + 0x00030037,0x00000042,0x00000058,0x000200f8,0x0000005a,0x0004003b,0x00000100,0x00000101, + 0x00000007,0x0004003b,0x00000042,0x00000102,0x00000007,0x0004003d,0x00000041,0x00000103, + 0x00000058,0x0003003e,0x00000102,0x00000103,0x00050039,0x00000043,0x00000104,0x00000046, + 0x00000102,0x0003003e,0x00000101,0x00000104,0x00040039,0x00000008,0x00000105,0x00000050, + 0x0004003d,0x00000043,0x00000106,0x00000101,0x0008004f,0x00000048,0x00000107,0x00000106, + 0x00000106,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000048,0x00000108,0x00000107, + 0x00000105,0x00050041,0x0000000d,0x00000109,0x00000101,0x000000f0,0x00050051,0x00000008, + 0x0000010a,0x00000108,0x00000000,0x0003003e,0x00000109,0x0000010a,0x00050041,0x0000000d, + 0x0000010b,0x00000101,0x000000bd,0x00050051,0x00000008,0x0000010c,0x00000108,0x00000001, + 0x0003003e,0x0000010b,0x0000010c,0x00050041,0x0000000d,0x0000010e,0x00000101,0x0000010d, + 0x00050051,0x00000008,0x0000010f,0x00000108,0x00000002,0x0003003e,0x0000010e,0x0000010f, + 0x0004003d,0x00000043,0x00000110,0x00000101,0x000200fe,0x00000110,0x00010038,0x00050036, + 0x00000002,0x0000005f,0x00000000,0x0000005b,0x00030037,0x0000000d,0x0000005c,0x00030037, + 0x0000000d,0x0000005d,0x00030037,0x0000000d,0x0000005e,0x000200f8,0x00000060,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000068,0x00000000,0x00000062,0x00030037,0x0000000d, + 0x00000063,0x00030037,0x0000000d,0x00000064,0x00030037,0x0000000d,0x00000065,0x00030037, + 0x00000052,0x00000066,0x00030037,0x00000061,0x00000067,0x000200f8,0x00000069,0x0004003b, + 0x00000042,0x00000113,0x00000007,0x0004003b,0x00000049,0x00000116,0x00000007,0x0004003b, + 0x00000042,0x0000011b,0x00000007,0x0004003b,0x00000049,0x0000011e,0x00000007,0x0004003b, + 0x00000042,0x00000122,0x00000007,0x0004003b,0x00000049,0x00000125,0x00000007,0x0004003b, + 0x00000042,0x00000126,0x00000007,0x0004003b,0x00000049,0x0000012a,0x00000007,0x0004003b, + 0x00000042,0x0000012f,0x00000007,0x0004003b,0x00000049,0x00000132,0x00000007,0x0004003b, + 0x00000042,0x00000136,0x00000007,0x0004003b,0x0000000d,0x00000139,0x00000007,0x0004003b, + 0x0000000d,0x0000013c,0x00000007,0x0004003b,0x0000000d,0x0000013f,0x00000007,0x0004003b, + 0x0000000d,0x00000142,0x00000007,0x0004003b,0x0000000d,0x00000145,0x00000007,0x0004003b, + 0x0000000d,0x00000148,0x00000007,0x0004003b,0x0000000d,0x0000014b,0x00000007,0x0004003b, + 0x0000000d,0x0000014e,0x00000007,0x0004003b,0x0000000d,0x00000151,0x00000007,0x0004003b, + 0x0000000d,0x00000154,0x00000007,0x0004003b,0x0000000d,0x00000157,0x00000007,0x0004003b, + 0x0000000d,0x0000015a,0x00000007,0x0004003b,0x0000000d,0x0000015d,0x00000007,0x0004003b, + 0x0000000d,0x00000160,0x00000007,0x0004003b,0x0000000d,0x00000163,0x00000007,0x0004003b, + 0x0000000d,0x00000166,0x00000007,0x0004003b,0x0000000d,0x00000168,0x00000007,0x0004003b, + 0x0000000d,0x0000016a,0x00000007,0x0004003b,0x0000000d,0x00000170,0x00000007,0x0004003b, + 0x0000000d,0x00000172,0x00000007,0x0004003b,0x0000000d,0x00000174,0x00000007,0x0004003b, + 0x0000000d,0x0000017a,0x00000007,0x0004003b,0x0000000d,0x0000017c,0x00000007,0x0004003b, + 0x0000000d,0x0000017e,0x00000007,0x0004003b,0x0000000d,0x00000184,0x00000007,0x0004003b, + 0x0000000d,0x00000186,0x00000007,0x0004003b,0x0000000d,0x00000188,0x00000007,0x0004003b, + 0x0000000d,0x0000018e,0x00000007,0x0004003b,0x0000000d,0x00000190,0x00000007,0x0004003b, + 0x0000000d,0x00000192,0x00000007,0x0004003b,0x0000000d,0x00000198,0x00000007,0x0004003b, + 0x0000000d,0x000001a1,0x00000007,0x0004003b,0x0000000d,0x000001a9,0x00000007,0x0004003b, + 0x0000000d,0x000001b1,0x00000007,0x0004003b,0x0000000d,0x000001b9,0x00000007,0x0004003b, + 0x0000000d,0x000001c1,0x00000007,0x0004003b,0x0000000d,0x000001d2,0x00000007,0x0004003b, + 0x0000000d,0x000001d4,0x00000007,0x0004003b,0x0000000d,0x000001d6,0x00000007,0x0004003b, + 0x0000000d,0x000001d9,0x00000007,0x0004003b,0x0000000d,0x000001da,0x00000007,0x0004003b, + 0x0000000d,0x000001dc,0x00000007,0x0004003b,0x0000000d,0x000001df,0x00000007,0x0004003b, + 0x0000000d,0x000001e1,0x00000007,0x0004003b,0x0000000d,0x000001e3,0x00000007,0x0004003b, + 0x0000000d,0x000001e6,0x00000007,0x0004003b,0x0000000d,0x000001e7,0x00000007,0x0004003b, + 0x0000000d,0x000001e9,0x00000007,0x0004003b,0x0000000d,0x000001ed,0x00000007,0x0004003b, + 0x0000000d,0x000001f0,0x00000007,0x0004003b,0x0000000d,0x000001f6,0x00000007,0x0004003b, + 0x0000000d,0x000001f7,0x00000007,0x0004003b,0x0000000d,0x000001f9,0x00000007,0x0004003b, + 0x0000000d,0x000001fb,0x00000007,0x0004003b,0x0000000d,0x000001fe,0x00000007,0x0004003b, + 0x0000000d,0x000001ff,0x00000007,0x0004003b,0x0000000d,0x00000202,0x00000007,0x0004003b, + 0x0000000d,0x00000203,0x00000007,0x0004003b,0x0000000d,0x00000205,0x00000007,0x0004003b, + 0x0000000d,0x00000207,0x00000007,0x0004003b,0x0000000d,0x0000020a,0x00000007,0x0004003b, + 0x0000000d,0x0000020b,0x00000007,0x0004003b,0x0000000d,0x0000020e,0x00000007,0x0004003b, + 0x0000000d,0x0000020f,0x00000007,0x0004003b,0x0000000d,0x00000211,0x00000007,0x0004003b, + 0x0000000d,0x00000213,0x00000007,0x0004003b,0x0000000d,0x00000216,0x00000007,0x0004003b, + 0x0000000d,0x00000217,0x00000007,0x0004003b,0x0000000d,0x0000021a,0x00000007,0x0004003b, + 0x0000000d,0x0000021b,0x00000007,0x0004003b,0x0000000d,0x0000021d,0x00000007,0x0004003b, + 0x0000000d,0x0000021f,0x00000007,0x0004003b,0x0000000d,0x00000224,0x00000007,0x0004003b, + 0x0000000d,0x00000225,0x00000007,0x0004003b,0x0000000d,0x00000227,0x00000007,0x0004003b, + 0x0000000d,0x00000229,0x00000007,0x0004003b,0x0000000d,0x0000022e,0x00000007,0x0004003b, + 0x0000000d,0x0000022f,0x00000007,0x0004003b,0x0000000d,0x00000231,0x00000007,0x0004003b, + 0x0000000d,0x00000233,0x00000007,0x0004003b,0x00000239,0x0000023a,0x00000007,0x0004003b, + 0x0000000d,0x0000023d,0x00000007,0x0004003b,0x0000000d,0x00000242,0x00000007,0x0004003b, + 0x0000000d,0x00000245,0x00000007,0x0004003b,0x0000000d,0x00000249,0x00000007,0x0004003b, + 0x0000000d,0x0000024c,0x00000007,0x0004003b,0x0000000d,0x00000250,0x00000007,0x0004003b, + 0x0000000d,0x00000253,0x00000007,0x0004003b,0x0000000d,0x0000025d,0x00000007,0x0004003b, + 0x0000000d,0x00000260,0x00000007,0x0004003b,0x0000000d,0x0000026a,0x00000007,0x0004003b, + 0x0000000d,0x0000026d,0x00000007,0x0004003b,0x0000000d,0x00000277,0x00000007,0x0004003b, + 0x0000000d,0x0000027a,0x00000007,0x0004003b,0x0000000d,0x0000027f,0x00000007,0x0004003b, + 0x0000000d,0x00000284,0x00000007,0x0004003b,0x0000000d,0x00000289,0x00000007,0x0004003b, + 0x0000000d,0x0000028b,0x00000007,0x0004003b,0x0000000d,0x0000028d,0x00000007,0x0004003b, + 0x0000000d,0x0000028f,0x00000007,0x0004003b,0x0000000d,0x00000292,0x00000007,0x0004003b, + 0x0000000d,0x00000293,0x00000007,0x0004003b,0x00000007,0x00000296,0x00000007,0x0004003b, + 0x0000000d,0x0000029e,0x00000007,0x0004003b,0x0000000d,0x000002a2,0x00000007,0x0004003d, + 0x00000037,0x00000114,0x00000066,0x0004007c,0x00000041,0x00000115,0x00000114,0x0003003e, + 0x00000113,0x00000115,0x0004003d,0x00000041,0x00000117,0x00000113,0x00050080,0x00000041, + 0x0000011a,0x00000117,0x00000119,0x0003003e,0x0000011b,0x0000011a,0x00050039,0x00000043, + 0x0000011c,0x00000059,0x0000011b,0x0008004f,0x00000048,0x0000011d,0x0000011c,0x0000011c, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000116,0x0000011d,0x0004003d,0x00000041, + 0x0000011f,0x00000113,0x00050080,0x00000041,0x00000121,0x0000011f,0x00000120,0x0003003e, + 0x00000122,0x00000121,0x00050039,0x00000043,0x00000123,0x00000059,0x00000122,0x0008004f, + 0x00000048,0x00000124,0x00000123,0x00000123,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x0000011e,0x00000124,0x0004003d,0x00000041,0x00000127,0x00000113,0x0003003e,0x00000126, + 0x00000127,0x00050039,0x00000043,0x00000128,0x00000059,0x00000126,0x0008004f,0x00000048, + 0x00000129,0x00000128,0x00000128,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000125, + 0x00000129,0x0004003d,0x00000041,0x0000012b,0x00000113,0x00050080,0x00000041,0x0000012e, + 0x0000012b,0x0000012d,0x0003003e,0x0000012f,0x0000012e,0x00050039,0x00000043,0x00000130, + 0x00000059,0x0000012f,0x0008004f,0x00000048,0x00000131,0x00000130,0x00000130,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x0000012a,0x00000131,0x0004003d,0x00000041,0x00000133, + 0x00000113,0x00050080,0x00000041,0x00000135,0x00000133,0x00000134,0x0003003e,0x00000136, + 0x00000135,0x00050039,0x00000043,0x00000137,0x00000059,0x00000136,0x0008004f,0x00000048, + 0x00000138,0x00000137,0x00000137,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000132, + 0x00000138,0x00050041,0x0000000d,0x0000013a,0x00000116,0x000000f0,0x0004003d,0x00000008, + 0x0000013b,0x0000013a,0x0003003e,0x00000139,0x0000013b,0x00050041,0x0000000d,0x0000013d, + 0x00000116,0x000000bd,0x0004003d,0x00000008,0x0000013e,0x0000013d,0x0003003e,0x0000013c, + 0x0000013e,0x00050041,0x0000000d,0x00000140,0x00000116,0x0000010d,0x0004003d,0x00000008, + 0x00000141,0x00000140,0x0003003e,0x0000013f,0x00000141,0x00050041,0x0000000d,0x00000143, + 0x0000011e,0x000000f0,0x0004003d,0x00000008,0x00000144,0x00000143,0x0003003e,0x00000142, + 0x00000144,0x00050041,0x0000000d,0x00000146,0x0000011e,0x000000bd,0x0004003d,0x00000008, + 0x00000147,0x00000146,0x0003003e,0x00000145,0x00000147,0x00050041,0x0000000d,0x00000149, + 0x0000011e,0x0000010d,0x0004003d,0x00000008,0x0000014a,0x00000149,0x0003003e,0x00000148, + 0x0000014a,0x00050041,0x0000000d,0x0000014c,0x00000125,0x000000f0,0x0004003d,0x00000008, + 0x0000014d,0x0000014c,0x0003003e,0x0000014b,0x0000014d,0x00050041,0x0000000d,0x0000014f, + 0x00000125,0x000000bd,0x0004003d,0x00000008,0x00000150,0x0000014f,0x0003003e,0x0000014e, + 0x00000150,0x00050041,0x0000000d,0x00000152,0x00000125,0x0000010d,0x0004003d,0x00000008, + 0x00000153,0x00000152,0x0003003e,0x00000151,0x00000153,0x00050041,0x0000000d,0x00000155, + 0x0000012a,0x000000f0,0x0004003d,0x00000008,0x00000156,0x00000155,0x0003003e,0x00000154, + 0x00000156,0x00050041,0x0000000d,0x00000158,0x0000012a,0x000000bd,0x0004003d,0x00000008, + 0x00000159,0x00000158,0x0003003e,0x00000157,0x00000159,0x00050041,0x0000000d,0x0000015b, + 0x0000012a,0x0000010d,0x0004003d,0x00000008,0x0000015c,0x0000015b,0x0003003e,0x0000015a, + 0x0000015c,0x00050041,0x0000000d,0x0000015e,0x00000132,0x000000f0,0x0004003d,0x00000008, + 0x0000015f,0x0000015e,0x0003003e,0x0000015d,0x0000015f,0x00050041,0x0000000d,0x00000161, + 0x00000132,0x000000bd,0x0004003d,0x00000008,0x00000162,0x00000161,0x0003003e,0x00000160, + 0x00000162,0x00050041,0x0000000d,0x00000164,0x00000132,0x0000010d,0x0004003d,0x00000008, + 0x00000165,0x00000164,0x0003003e,0x00000163,0x00000165,0x0004003d,0x00000008,0x00000167, + 0x00000139,0x0003003e,0x00000166,0x00000167,0x0004003d,0x00000008,0x00000169,0x0000013c, + 0x0003003e,0x00000168,0x00000169,0x0004003d,0x00000008,0x0000016b,0x0000013f,0x0003003e, + 0x0000016a,0x0000016b,0x00070039,0x00000002,0x0000016c,0x0000005f,0x00000166,0x00000168, + 0x0000016a,0x0004003d,0x00000008,0x0000016d,0x00000166,0x0003003e,0x00000139,0x0000016d, + 0x0004003d,0x00000008,0x0000016e,0x00000168,0x0003003e,0x0000013c,0x0000016e,0x0004003d, + 0x00000008,0x0000016f,0x0000016a,0x0003003e,0x0000013f,0x0000016f,0x0004003d,0x00000008, + 0x00000171,0x00000142,0x0003003e,0x00000170,0x00000171,0x0004003d,0x00000008,0x00000173, + 0x00000145,0x0003003e,0x00000172,0x00000173,0x0004003d,0x00000008,0x00000175,0x00000148, + 0x0003003e,0x00000174,0x00000175,0x00070039,0x00000002,0x00000176,0x0000005f,0x00000170, + 0x00000172,0x00000174,0x0004003d,0x00000008,0x00000177,0x00000170,0x0003003e,0x00000142, + 0x00000177,0x0004003d,0x00000008,0x00000178,0x00000172,0x0003003e,0x00000145,0x00000178, + 0x0004003d,0x00000008,0x00000179,0x00000174,0x0003003e,0x00000148,0x00000179,0x0004003d, + 0x00000008,0x0000017b,0x0000014b,0x0003003e,0x0000017a,0x0000017b,0x0004003d,0x00000008, + 0x0000017d,0x0000014e,0x0003003e,0x0000017c,0x0000017d,0x0004003d,0x00000008,0x0000017f, + 0x00000151,0x0003003e,0x0000017e,0x0000017f,0x00070039,0x00000002,0x00000180,0x0000005f, + 0x0000017a,0x0000017c,0x0000017e,0x0004003d,0x00000008,0x00000181,0x0000017a,0x0003003e, + 0x0000014b,0x00000181,0x0004003d,0x00000008,0x00000182,0x0000017c,0x0003003e,0x0000014e, + 0x00000182,0x0004003d,0x00000008,0x00000183,0x0000017e,0x0003003e,0x00000151,0x00000183, + 0x0004003d,0x00000008,0x00000185,0x00000154,0x0003003e,0x00000184,0x00000185,0x0004003d, + 0x00000008,0x00000187,0x00000157,0x0003003e,0x00000186,0x00000187,0x0004003d,0x00000008, + 0x00000189,0x0000015a,0x0003003e,0x00000188,0x00000189,0x00070039,0x00000002,0x0000018a, + 0x0000005f,0x00000184,0x00000186,0x00000188,0x0004003d,0x00000008,0x0000018b,0x00000184, + 0x0003003e,0x00000154,0x0000018b,0x0004003d,0x00000008,0x0000018c,0x00000186,0x0003003e, + 0x00000157,0x0000018c,0x0004003d,0x00000008,0x0000018d,0x00000188,0x0003003e,0x0000015a, + 0x0000018d,0x0004003d,0x00000008,0x0000018f,0x0000015d,0x0003003e,0x0000018e,0x0000018f, + 0x0004003d,0x00000008,0x00000191,0x00000160,0x0003003e,0x00000190,0x00000191,0x0004003d, + 0x00000008,0x00000193,0x00000163,0x0003003e,0x00000192,0x00000193,0x00070039,0x00000002, + 0x00000194,0x0000005f,0x0000018e,0x00000190,0x00000192,0x0004003d,0x00000008,0x00000195, + 0x0000018e,0x0003003e,0x0000015d,0x00000195,0x0004003d,0x00000008,0x00000196,0x00000190, + 0x0003003e,0x00000160,0x00000196,0x0004003d,0x00000008,0x00000197,0x00000192,0x0003003e, + 0x00000163,0x00000197,0x0004003d,0x00000008,0x00000199,0x0000013f,0x00050085,0x00000008, + 0x0000019b,0x00000199,0x0000019a,0x0004003d,0x00000008,0x0000019c,0x00000139,0x00050085, + 0x00000008,0x0000019d,0x0000019c,0x0000019a,0x0004003d,0x00000008,0x0000019e,0x0000013c, + 0x00050081,0x00000008,0x0000019f,0x0000019d,0x0000019e,0x00050081,0x00000008,0x000001a0, + 0x0000019b,0x0000019f,0x0003003e,0x00000198,0x000001a0,0x0004003d,0x00000008,0x000001a2, + 0x00000148,0x00050085,0x00000008,0x000001a3,0x000001a2,0x0000019a,0x0004003d,0x00000008, + 0x000001a4,0x00000142,0x00050085,0x00000008,0x000001a5,0x000001a4,0x0000019a,0x0004003d, + 0x00000008,0x000001a6,0x00000145,0x00050081,0x00000008,0x000001a7,0x000001a5,0x000001a6, + 0x00050081,0x00000008,0x000001a8,0x000001a3,0x000001a7,0x0003003e,0x000001a1,0x000001a8, + 0x0004003d,0x00000008,0x000001aa,0x00000151,0x00050085,0x00000008,0x000001ab,0x000001aa, + 0x0000019a,0x0004003d,0x00000008,0x000001ac,0x0000014b,0x00050085,0x00000008,0x000001ad, + 0x000001ac,0x0000019a,0x0004003d,0x00000008,0x000001ae,0x0000014e,0x00050081,0x00000008, + 0x000001af,0x000001ad,0x000001ae,0x00050081,0x00000008,0x000001b0,0x000001ab,0x000001af, + 0x0003003e,0x000001a9,0x000001b0,0x0004003d,0x00000008,0x000001b2,0x0000015a,0x00050085, + 0x00000008,0x000001b3,0x000001b2,0x0000019a,0x0004003d,0x00000008,0x000001b4,0x00000154, + 0x00050085,0x00000008,0x000001b5,0x000001b4,0x0000019a,0x0004003d,0x00000008,0x000001b6, + 0x00000157,0x00050081,0x00000008,0x000001b7,0x000001b5,0x000001b6,0x00050081,0x00000008, + 0x000001b8,0x000001b3,0x000001b7,0x0003003e,0x000001b1,0x000001b8,0x0004003d,0x00000008, + 0x000001ba,0x00000163,0x00050085,0x00000008,0x000001bb,0x000001ba,0x0000019a,0x0004003d, + 0x00000008,0x000001bc,0x0000015d,0x00050085,0x00000008,0x000001bd,0x000001bc,0x0000019a, + 0x0004003d,0x00000008,0x000001be,0x00000160,0x00050081,0x00000008,0x000001bf,0x000001bd, + 0x000001be,0x00050081,0x00000008,0x000001c0,0x000001bb,0x000001bf,0x0003003e,0x000001b9, + 0x000001c0,0x0004003d,0x00000008,0x000001c3,0x00000198,0x00050085,0x00000008,0x000001c4, + 0x000001c2,0x000001c3,0x0004003d,0x00000008,0x000001c5,0x000001a1,0x00050085,0x00000008, + 0x000001c6,0x000001c2,0x000001c5,0x00050081,0x00000008,0x000001c7,0x000001c4,0x000001c6, + 0x0004003d,0x00000008,0x000001c8,0x000001b1,0x00050085,0x00000008,0x000001c9,0x000001c2, + 0x000001c8,0x00050081,0x00000008,0x000001ca,0x000001c7,0x000001c9,0x0004003d,0x00000008, + 0x000001cb,0x000001b9,0x00050085,0x00000008,0x000001cc,0x000001c2,0x000001cb,0x00050081, + 0x00000008,0x000001cd,0x000001ca,0x000001cc,0x0004003d,0x00000008,0x000001ce,0x000001a9, + 0x00050083,0x00000008,0x000001cf,0x000001cd,0x000001ce,0x0003003e,0x000001c1,0x000001cf, + 0x0004003d,0x00000008,0x000001d0,0x000001c1,0x0006000c,0x00000008,0x000001d1,0x00000001, + 0x00000004,0x000001d0,0x0004003d,0x00000008,0x000001d3,0x00000198,0x0003003e,0x000001d2, + 0x000001d3,0x0004003d,0x00000008,0x000001d5,0x000001a1,0x0003003e,0x000001d4,0x000001d5, + 0x0004003d,0x00000008,0x000001d7,0x000001a9,0x0003003e,0x000001d6,0x000001d7,0x00070039, + 0x00000008,0x000001d8,0x00000021,0x000001d2,0x000001d4,0x000001d6,0x0003003e,0x000001d9, + 0x000001d8,0x0004003d,0x00000008,0x000001db,0x000001b1,0x0003003e,0x000001da,0x000001db, + 0x0004003d,0x00000008,0x000001dd,0x000001b9,0x0003003e,0x000001dc,0x000001dd,0x00070039, + 0x00000008,0x000001de,0x00000021,0x000001d9,0x000001da,0x000001dc,0x0004003d,0x00000008, + 0x000001e0,0x00000198,0x0003003e,0x000001df,0x000001e0,0x0004003d,0x00000008,0x000001e2, + 0x000001a1,0x0003003e,0x000001e1,0x000001e2,0x0004003d,0x00000008,0x000001e4,0x000001a9, + 0x0003003e,0x000001e3,0x000001e4,0x00070039,0x00000008,0x000001e5,0x00000026,0x000001df, + 0x000001e1,0x000001e3,0x0003003e,0x000001e6,0x000001e5,0x0004003d,0x00000008,0x000001e8, + 0x000001b1,0x0003003e,0x000001e7,0x000001e8,0x0004003d,0x00000008,0x000001ea,0x000001b9, + 0x0003003e,0x000001e9,0x000001ea,0x00070039,0x00000008,0x000001eb,0x00000026,0x000001e6, + 0x000001e7,0x000001e9,0x00050083,0x00000008,0x000001ec,0x000001de,0x000001eb,0x0003003e, + 0x000001ed,0x000001ec,0x00050039,0x00000008,0x000001ee,0x00000035,0x000001ed,0x00050085, + 0x00000008,0x000001ef,0x000001d1,0x000001ee,0x0003003e,0x000001f0,0x000001ef,0x00050039, + 0x00000008,0x000001f1,0x0000002d,0x000001f0,0x0003003e,0x000001c1,0x000001f1,0x0004003d, + 0x00000008,0x000001f3,0x000001c1,0x00050085,0x00000008,0x000001f4,0x000001f2,0x000001f3, + 0x00050081,0x00000008,0x000001f5,0x000001f4,0x0000009c,0x0003003e,0x000001c1,0x000001f5, + 0x0004003d,0x00000008,0x000001f8,0x00000139,0x0003003e,0x000001f7,0x000001f8,0x0004003d, + 0x00000008,0x000001fa,0x00000142,0x0003003e,0x000001f9,0x000001fa,0x0004003d,0x00000008, + 0x000001fc,0x00000154,0x0003003e,0x000001fb,0x000001fc,0x00070039,0x00000008,0x000001fd, + 0x00000026,0x000001f7,0x000001f9,0x000001fb,0x0003003e,0x000001fe,0x000001fd,0x0004003d, + 0x00000008,0x00000200,0x0000015d,0x0003003e,0x000001ff,0x00000200,0x00060039,0x00000008, + 0x00000201,0x00000032,0x000001fe,0x000001ff,0x0003003e,0x000001f6,0x00000201,0x0004003d, + 0x00000008,0x00000204,0x0000013c,0x0003003e,0x00000203,0x00000204,0x0004003d,0x00000008, + 0x00000206,0x00000145,0x0003003e,0x00000205,0x00000206,0x0004003d,0x00000008,0x00000208, + 0x00000157,0x0003003e,0x00000207,0x00000208,0x00070039,0x00000008,0x00000209,0x00000026, + 0x00000203,0x00000205,0x00000207,0x0003003e,0x0000020a,0x00000209,0x0004003d,0x00000008, + 0x0000020c,0x00000160,0x0003003e,0x0000020b,0x0000020c,0x00060039,0x00000008,0x0000020d, + 0x00000032,0x0000020a,0x0000020b,0x0003003e,0x00000202,0x0000020d,0x0004003d,0x00000008, + 0x00000210,0x0000013f,0x0003003e,0x0000020f,0x00000210,0x0004003d,0x00000008,0x00000212, + 0x00000148,0x0003003e,0x00000211,0x00000212,0x0004003d,0x00000008,0x00000214,0x0000015a, + 0x0003003e,0x00000213,0x00000214,0x00070039,0x00000008,0x00000215,0x00000026,0x0000020f, + 0x00000211,0x00000213,0x0003003e,0x00000216,0x00000215,0x0004003d,0x00000008,0x00000218, + 0x00000163,0x0003003e,0x00000217,0x00000218,0x00060039,0x00000008,0x00000219,0x00000032, + 0x00000216,0x00000217,0x0003003e,0x0000020e,0x00000219,0x0004003d,0x00000008,0x0000021c, + 0x00000139,0x0003003e,0x0000021b,0x0000021c,0x0004003d,0x00000008,0x0000021e,0x00000142, + 0x0003003e,0x0000021d,0x0000021e,0x0004003d,0x00000008,0x00000220,0x00000154,0x0003003e, + 0x0000021f,0x00000220,0x00070039,0x00000008,0x00000221,0x00000021,0x0000021b,0x0000021d, + 0x0000021f,0x0004003d,0x00000008,0x00000222,0x0000015d,0x0007000c,0x00000008,0x00000223, + 0x00000001,0x00000028,0x00000221,0x00000222,0x0003003e,0x0000021a,0x00000223,0x0004003d, + 0x00000008,0x00000226,0x0000013c,0x0003003e,0x00000225,0x00000226,0x0004003d,0x00000008, + 0x00000228,0x00000145,0x0003003e,0x00000227,0x00000228,0x0004003d,0x00000008,0x0000022a, + 0x00000157,0x0003003e,0x00000229,0x0000022a,0x00070039,0x00000008,0x0000022b,0x00000021, + 0x00000225,0x00000227,0x00000229,0x0004003d,0x00000008,0x0000022c,0x00000160,0x0007000c, + 0x00000008,0x0000022d,0x00000001,0x00000028,0x0000022b,0x0000022c,0x0003003e,0x00000224, + 0x0000022d,0x0004003d,0x00000008,0x00000230,0x0000013f,0x0003003e,0x0000022f,0x00000230, + 0x0004003d,0x00000008,0x00000232,0x00000148,0x0003003e,0x00000231,0x00000232,0x0004003d, + 0x00000008,0x00000234,0x0000015a,0x0003003e,0x00000233,0x00000234,0x00070039,0x00000008, + 0x00000235,0x00000021,0x0000022f,0x00000231,0x00000233,0x0004003d,0x00000008,0x00000236, + 0x00000163,0x0007000c,0x00000008,0x00000237,0x00000001,0x00000028,0x00000235,0x00000236, + 0x0003003e,0x0000022e,0x00000237,0x0003003e,0x0000023a,0x0000023c,0x0004003d,0x00000008, + 0x0000023e,0x000001f6,0x0004003d,0x00000008,0x00000240,0x0000021a,0x00050085,0x00000008, + 0x00000241,0x0000023f,0x00000240,0x0003003e,0x00000242,0x00000241,0x00050039,0x00000008, + 0x00000243,0x0000002a,0x00000242,0x00050085,0x00000008,0x00000244,0x0000023e,0x00000243, + 0x0003003e,0x0000023d,0x00000244,0x0004003d,0x00000008,0x00000246,0x00000202,0x0004003d, + 0x00000008,0x00000247,0x00000224,0x00050085,0x00000008,0x00000248,0x0000023f,0x00000247, + 0x0003003e,0x00000249,0x00000248,0x00050039,0x00000008,0x0000024a,0x0000002a,0x00000249, + 0x00050085,0x00000008,0x0000024b,0x00000246,0x0000024a,0x0003003e,0x00000245,0x0000024b, + 0x0004003d,0x00000008,0x0000024d,0x0000020e,0x0004003d,0x00000008,0x0000024e,0x0000022e, + 0x00050085,0x00000008,0x0000024f,0x0000023f,0x0000024e,0x0003003e,0x00000250,0x0000024f, + 0x00050039,0x00000008,0x00000251,0x0000002a,0x00000250,0x00050085,0x00000008,0x00000252, + 0x0000024d,0x00000251,0x0003003e,0x0000024c,0x00000252,0x00050041,0x0000000d,0x00000254, + 0x0000023a,0x000000f0,0x0004003d,0x00000008,0x00000255,0x00000254,0x0004003d,0x00000008, + 0x00000256,0x0000021a,0x00050083,0x00000008,0x00000257,0x00000255,0x00000256,0x0004003d, + 0x00000008,0x00000258,0x000001f6,0x00050085,0x00000008,0x00000259,0x0000023f,0x00000258, + 0x00050041,0x0000000d,0x0000025a,0x0000023a,0x000000bd,0x0004003d,0x00000008,0x0000025b, + 0x0000025a,0x00050081,0x00000008,0x0000025c,0x00000259,0x0000025b,0x0003003e,0x0000025d, + 0x0000025c,0x00050039,0x00000008,0x0000025e,0x0000002a,0x0000025d,0x00050085,0x00000008, + 0x0000025f,0x00000257,0x0000025e,0x0003003e,0x00000253,0x0000025f,0x00050041,0x0000000d, + 0x00000261,0x0000023a,0x000000f0,0x0004003d,0x00000008,0x00000262,0x00000261,0x0004003d, + 0x00000008,0x00000263,0x00000224,0x00050083,0x00000008,0x00000264,0x00000262,0x00000263, + 0x0004003d,0x00000008,0x00000265,0x00000202,0x00050085,0x00000008,0x00000266,0x0000023f, + 0x00000265,0x00050041,0x0000000d,0x00000267,0x0000023a,0x000000bd,0x0004003d,0x00000008, + 0x00000268,0x00000267,0x00050081,0x00000008,0x00000269,0x00000266,0x00000268,0x0003003e, + 0x0000026a,0x00000269,0x00050039,0x00000008,0x0000026b,0x0000002a,0x0000026a,0x00050085, + 0x00000008,0x0000026c,0x00000264,0x0000026b,0x0003003e,0x00000260,0x0000026c,0x00050041, + 0x0000000d,0x0000026e,0x0000023a,0x000000f0,0x0004003d,0x00000008,0x0000026f,0x0000026e, + 0x0004003d,0x00000008,0x00000270,0x0000022e,0x00050083,0x00000008,0x00000271,0x0000026f, + 0x00000270,0x0004003d,0x00000008,0x00000272,0x0000020e,0x00050085,0x00000008,0x00000273, + 0x0000023f,0x00000272,0x00050041,0x0000000d,0x00000274,0x0000023a,0x000000bd,0x0004003d, + 0x00000008,0x00000275,0x00000274,0x00050081,0x00000008,0x00000276,0x00000273,0x00000275, + 0x0003003e,0x00000277,0x00000276,0x00050039,0x00000008,0x00000278,0x0000002a,0x00000277, + 0x00050085,0x00000008,0x00000279,0x00000271,0x00000278,0x0003003e,0x0000026d,0x00000279, + 0x0004003d,0x00000008,0x0000027b,0x0000023d,0x0004007f,0x00000008,0x0000027c,0x0000027b, + 0x0004003d,0x00000008,0x0000027d,0x00000253,0x0007000c,0x00000008,0x0000027e,0x00000001, + 0x00000028,0x0000027c,0x0000027d,0x0003003e,0x0000027a,0x0000027e,0x0004003d,0x00000008, + 0x00000280,0x00000245,0x0004007f,0x00000008,0x00000281,0x00000280,0x0004003d,0x00000008, + 0x00000282,0x00000260,0x0007000c,0x00000008,0x00000283,0x00000001,0x00000028,0x00000281, + 0x00000282,0x0003003e,0x0000027f,0x00000283,0x0004003d,0x00000008,0x00000285,0x0000024c, + 0x0004007f,0x00000008,0x00000286,0x00000285,0x0004003d,0x00000008,0x00000287,0x0000026d, + 0x0007000c,0x00000008,0x00000288,0x00000001,0x00000028,0x00000286,0x00000287,0x0003003e, + 0x00000284,0x00000288,0x0004003d,0x00000008,0x0000028c,0x0000027a,0x0003003e,0x0000028b, + 0x0000028c,0x0004003d,0x00000008,0x0000028e,0x0000027f,0x0003003e,0x0000028d,0x0000028e, + 0x0004003d,0x00000008,0x00000290,0x00000284,0x0003003e,0x0000028f,0x00000290,0x00070039, + 0x00000008,0x00000291,0x00000021,0x0000028b,0x0000028d,0x0000028f,0x0003003e,0x00000292, + 0x00000291,0x0003003e,0x00000293,0x000000a2,0x00060039,0x00000008,0x00000294,0x00000032, + 0x00000292,0x00000293,0x0007000c,0x00000008,0x00000295,0x00000001,0x00000028,0x0000028a, + 0x00000294,0x00050041,0x00000007,0x00000297,0x00000067,0x000000f0,0x0004003d,0x00000006, + 0x00000298,0x00000297,0x0003003e,0x00000296,0x00000298,0x00050039,0x00000008,0x00000299, + 0x0000000b,0x00000296,0x00050085,0x00000008,0x0000029a,0x00000295,0x00000299,0x0003003e, + 0x00000289,0x0000029a,0x0004003d,0x00000008,0x0000029b,0x000001c1,0x0004003d,0x00000008, + 0x0000029c,0x00000289,0x00050085,0x00000008,0x0000029d,0x0000029c,0x0000029b,0x0003003e, + 0x00000289,0x0000029d,0x0004003d,0x00000008,0x0000029f,0x00000289,0x00050085,0x00000008, + 0x000002a0,0x0000023f,0x0000029f,0x00050081,0x00000008,0x000002a1,0x000002a0,0x0000009c, + 0x0003003e,0x000002a2,0x000002a1,0x00050039,0x00000008,0x000002a3,0x00000035,0x000002a2, + 0x0003003e,0x0000029e,0x000002a3,0x0004003d,0x00000008,0x000002a4,0x00000289,0x0004003d, + 0x00000008,0x000002a5,0x00000139,0x00050085,0x00000008,0x000002a6,0x000002a4,0x000002a5, + 0x0004003d,0x00000008,0x000002a7,0x00000289,0x0004003d,0x00000008,0x000002a8,0x00000142, + 0x00050085,0x00000008,0x000002a9,0x000002a7,0x000002a8,0x00050081,0x00000008,0x000002aa, + 0x000002a6,0x000002a9,0x0004003d,0x00000008,0x000002ab,0x00000289,0x0004003d,0x00000008, + 0x000002ac,0x0000015d,0x00050085,0x00000008,0x000002ad,0x000002ab,0x000002ac,0x00050081, + 0x00000008,0x000002ae,0x000002aa,0x000002ad,0x0004003d,0x00000008,0x000002af,0x00000289, + 0x0004003d,0x00000008,0x000002b0,0x00000154,0x00050085,0x00000008,0x000002b1,0x000002af, + 0x000002b0,0x00050081,0x00000008,0x000002b2,0x000002ae,0x000002b1,0x0004003d,0x00000008, + 0x000002b3,0x0000014b,0x00050081,0x00000008,0x000002b4,0x000002b2,0x000002b3,0x0004003d, + 0x00000008,0x000002b5,0x0000029e,0x00050085,0x00000008,0x000002b6,0x000002b4,0x000002b5, + 0x0003003e,0x00000063,0x000002b6,0x0004003d,0x00000008,0x000002b7,0x00000289,0x0004003d, + 0x00000008,0x000002b8,0x0000013c,0x00050085,0x00000008,0x000002b9,0x000002b7,0x000002b8, + 0x0004003d,0x00000008,0x000002ba,0x00000289,0x0004003d,0x00000008,0x000002bb,0x00000145, + 0x00050085,0x00000008,0x000002bc,0x000002ba,0x000002bb,0x00050081,0x00000008,0x000002bd, + 0x000002b9,0x000002bc,0x0004003d,0x00000008,0x000002be,0x00000289,0x0004003d,0x00000008, + 0x000002bf,0x00000160,0x00050085,0x00000008,0x000002c0,0x000002be,0x000002bf,0x00050081, + 0x00000008,0x000002c1,0x000002bd,0x000002c0,0x0004003d,0x00000008,0x000002c2,0x00000289, + 0x0004003d,0x00000008,0x000002c3,0x00000157,0x00050085,0x00000008,0x000002c4,0x000002c2, + 0x000002c3,0x00050081,0x00000008,0x000002c5,0x000002c1,0x000002c4,0x0004003d,0x00000008, + 0x000002c6,0x0000014e,0x00050081,0x00000008,0x000002c7,0x000002c5,0x000002c6,0x0004003d, + 0x00000008,0x000002c8,0x0000029e,0x00050085,0x00000008,0x000002c9,0x000002c7,0x000002c8, + 0x0003003e,0x00000064,0x000002c9,0x0004003d,0x00000008,0x000002ca,0x00000289,0x0004003d, + 0x00000008,0x000002cb,0x0000013f,0x00050085,0x00000008,0x000002cc,0x000002ca,0x000002cb, + 0x0004003d,0x00000008,0x000002cd,0x00000289,0x0004003d,0x00000008,0x000002ce,0x00000148, + 0x00050085,0x00000008,0x000002cf,0x000002cd,0x000002ce,0x00050081,0x00000008,0x000002d0, + 0x000002cc,0x000002cf,0x0004003d,0x00000008,0x000002d1,0x00000289,0x0004003d,0x00000008, + 0x000002d2,0x00000163,0x00050085,0x00000008,0x000002d3,0x000002d1,0x000002d2,0x00050081, + 0x00000008,0x000002d4,0x000002d0,0x000002d3,0x0004003d,0x00000008,0x000002d5,0x00000289, + 0x0004003d,0x00000008,0x000002d6,0x0000015a,0x00050085,0x00000008,0x000002d7,0x000002d5, + 0x000002d6,0x00050081,0x00000008,0x000002d8,0x000002d4,0x000002d7,0x0004003d,0x00000008, + 0x000002d9,0x00000151,0x00050081,0x00000008,0x000002da,0x000002d8,0x000002d9,0x0004003d, + 0x00000008,0x000002db,0x0000029e,0x00050085,0x00000008,0x000002dc,0x000002da,0x000002db, + 0x0003003e,0x00000065,0x000002dc,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000006c, + 0x00000000,0x0000006a,0x00030037,0x00000052,0x0000006b,0x000200f8,0x0000006d,0x0004003b, + 0x00000049,0x000002de,0x00000007,0x0004003b,0x0000000d,0x000002e0,0x00000007,0x0004003b, + 0x0000000d,0x000002e1,0x00000007,0x0004003b,0x0000000d,0x000002e2,0x00000007,0x0004003b, + 0x00000052,0x000002e3,0x00000007,0x0004003b,0x00000061,0x000002e5,0x00000007,0x0004003b, + 0x00000052,0x000002f1,0x00000007,0x0004003b,0x00000049,0x000002f3,0x00000007,0x00040039, + 0x0000003c,0x000002df,0x0000003e,0x0004003d,0x00000037,0x000002e4,0x0000006b,0x0003003e, + 0x000002e3,0x000002e4,0x0003003e,0x000002e5,0x000002df,0x00090039,0x00000002,0x000002e6, + 0x00000068,0x000002e0,0x000002e1,0x000002e2,0x000002e3,0x000002e5,0x0004003d,0x00000008, + 0x000002e7,0x000002e0,0x00050041,0x0000000d,0x000002e8,0x000002de,0x000000f0,0x0003003e, + 0x000002e8,0x000002e7,0x0004003d,0x00000008,0x000002e9,0x000002e1,0x00050041,0x0000000d, + 0x000002ea,0x000002de,0x000000bd,0x0003003e,0x000002ea,0x000002e9,0x0004003d,0x00000008, + 0x000002eb,0x000002e2,0x00050041,0x0000000d,0x000002ec,0x000002de,0x0000010d,0x0003003e, + 0x000002ec,0x000002eb,0x00040039,0x00000008,0x000002ed,0x00000050,0x0004003d,0x00000048, + 0x000002ee,0x000002de,0x00060050,0x00000048,0x000002ef,0x000002ed,0x000002ed,0x000002ed, + 0x00050088,0x00000048,0x000002f0,0x000002ee,0x000002ef,0x0003003e,0x000002de,0x000002f0, + 0x0004003d,0x00000037,0x000002f2,0x0000006b,0x0003003e,0x000002f1,0x000002f2,0x0004003d, + 0x00000048,0x000002f4,0x000002de,0x0003003e,0x000002f3,0x000002f4,0x00060039,0x00000002, + 0x000002f5,0x00000056,0x000002f1,0x000002f3,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000074,0x00000000,0x00000070,0x00030037,0x0000006f,0x00000071,0x00030037,0x0000006f, + 0x00000072,0x00030037,0x0000006f,0x00000073,0x000200f8,0x00000075,0x0004003b,0x00000052, + 0x000002f6,0x00000007,0x0004003b,0x00000007,0x000002f7,0x00000007,0x0004003b,0x00000052, + 0x00000305,0x00000007,0x0004003b,0x00000052,0x0000030d,0x00000007,0x0004003b,0x00000052, + 0x00000314,0x00000007,0x0004003b,0x00000052,0x0000031b,0x00000007,0x00050041,0x00000007, + 0x000002f8,0x00000071,0x000000f0,0x0004003d,0x00000006,0x000002f9,0x000002f8,0x0003003e, + 0x000002f7,0x000002f9,0x00050039,0x00000037,0x000002fa,0x0000003a,0x000002f7,0x00050041, + 0x00000007,0x000002fb,0x00000072,0x000000f0,0x0004003d,0x00000006,0x000002fc,0x000002fb, + 0x000500c4,0x00000006,0x000002fe,0x000002fc,0x000002fd,0x00050041,0x00000007,0x000002ff, + 0x00000072,0x000000bd,0x0004003d,0x00000006,0x00000300,0x000002ff,0x000500c4,0x00000006, + 0x00000301,0x00000300,0x000002fd,0x00050050,0x00000037,0x00000302,0x000002fe,0x00000301, + 0x00050080,0x00000037,0x00000303,0x000002fa,0x00000302,0x0003003e,0x000002f6,0x00000303, + 0x0004003d,0x00000037,0x00000304,0x000002f6,0x0003003e,0x00000305,0x00000304,0x00050039, + 0x00000002,0x00000306,0x0000006c,0x00000305,0x00050041,0x00000007,0x00000308,0x000002f6, + 0x000000f0,0x0004003d,0x00000006,0x00000309,0x00000308,0x00050080,0x00000006,0x0000030a, + 0x00000309,0x00000307,0x00050041,0x00000007,0x0000030b,0x000002f6,0x000000f0,0x0003003e, + 0x0000030b,0x0000030a,0x0004003d,0x00000037,0x0000030c,0x000002f6,0x0003003e,0x0000030d, + 0x0000030c,0x00050039,0x00000002,0x0000030e,0x0000006c,0x0000030d,0x00050041,0x00000007, + 0x0000030f,0x000002f6,0x000000bd,0x0004003d,0x00000006,0x00000310,0x0000030f,0x00050080, + 0x00000006,0x00000311,0x00000310,0x00000307,0x00050041,0x00000007,0x00000312,0x000002f6, + 0x000000bd,0x0003003e,0x00000312,0x00000311,0x0004003d,0x00000037,0x00000313,0x000002f6, + 0x0003003e,0x00000314,0x00000313,0x00050039,0x00000002,0x00000315,0x0000006c,0x00000314, + 0x00050041,0x00000007,0x00000316,0x000002f6,0x000000f0,0x0004003d,0x00000006,0x00000317, + 0x00000316,0x00050082,0x00000006,0x00000318,0x00000317,0x00000307,0x00050041,0x00000007, + 0x00000319,0x000002f6,0x000000f0,0x0003003e,0x00000319,0x00000318,0x0004003d,0x00000037, + 0x0000031a,0x000002f6,0x0003003e,0x0000031b,0x0000031a,0x00050039,0x00000002,0x0000031c, + 0x0000006c,0x0000031b,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_shading_change_comp_spv.h b/gpu/vk/shaders/fsr3_shading_change_comp_spv.h new file mode 100644 index 000000000..892d24cc5 --- /dev/null +++ b/gpu/vk/shaders/fsr3_shading_change_comp_spv.h @@ -0,0 +1,282 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_SHADING_CHANGE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000013d,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000128,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005, + 0x0000000a,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x00000009,0x00000078, + 0x00060005,0x00000011,0x4d786666,0x76286e69,0x763b3266,0x003b3266,0x00030005,0x0000000f, + 0x00000078,0x00030005,0x00000010,0x00000079,0x00060005,0x00000016,0x4d786666,0x66287861, + 0x31663b31,0x0000003b,0x00030005,0x00000014,0x00000078,0x00030005,0x00000015,0x00000079, + 0x00060005,0x0000001a,0x4d786666,0x76287861,0x763b3266,0x003b3266,0x00030005,0x00000018, + 0x00000078,0x00030005,0x00000019,0x00000079,0x00050005,0x0000001f,0x646e6552,0x69537265, + 0x0028657a,0x00040005,0x00000022,0x7474694a,0x00287265,0x00080005,0x00000028,0x53746547, + 0x694d4450,0x6d694470,0x69736e65,0x28736e6f,0x003b3175,0x00050005,0x00000027,0x70694d75, + 0x6576654c,0x0000006c,0x00090005,0x0000002d,0x706d6153,0x5053656c,0x70694d44,0x6576654c, + 0x6676286c,0x31753b32,0x0000003b,0x00030005,0x0000002b,0x00565566,0x00050005,0x0000002c, + 0x4c70696d,0x6c657665,0x00000000,0x00090005,0x00000033,0x726f7453,0x61685365,0x676e6964, + 0x6e616843,0x76286567,0x663b3269,0x00003b31,0x00040005,0x00000031,0x50785069,0x0000736f, + 0x00060005,0x00000032,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00090005,0x00000035, + 0x64616853,0x43676e69,0x676e6168,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00080005, + 0x0000003b,0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976,0x00000000,0x00030005, + 0x00000038,0x00765566,0x00060005,0x00000039,0x78655469,0x65727574,0x657a6953,0x00000000, + 0x00060005,0x0000003a,0x73655269,0x6372756f,0x7a695365,0x00000065,0x00070005,0x00000041, + 0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000003f,0x00736f70, + 0x00040005,0x00000040,0x657a6973,0x00000000,0x00080005,0x00000045,0x64616853,0x43676e69, + 0x676e6168,0x6d754c65,0x666e4961,0x0000006f,0x00060006,0x00000045,0x00000000,0x6d615366, + 0x73656c70,0x00000000,0x000c0005,0x0000004a,0x706d6f43,0x53657475,0x69646168,0x6843676e, + 0x65676e61,0x616d754c,0x32697628,0x3266763b,0x3269763b,0x0000003b,0x00040005,0x00000047, + 0x50785069,0x0000736f,0x00030005,0x00000048,0x00765566,0x00060005,0x00000049,0x72754369, + 0x746e6572,0x657a6953,0x00000000,0x00070005,0x0000004e,0x64616853,0x43676e69,0x676e6168, + 0x69762865,0x00003b32,0x00040005,0x0000004d,0x50785069,0x0000736f,0x00070005,0x00000066, + 0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x00000066,0x00000000, + 0x6e655269,0x53726564,0x00657a69,0x000a0006,0x00000066,0x00000001,0x65725069,0x756f6976, + 0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x00000066,0x00000002, + 0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x00000066,0x00000003,0x65725069, + 0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000066, + 0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x00000066,0x00000005, + 0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x00000066,0x00000006,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x00000066,0x00000007,0x74694a66, + 0x00726574,0x00090006,0x00000066,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d, + 0x72657474,0x00000000,0x00080006,0x00000066,0x00000009,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00080006,0x00000066,0x0000000a,0x776f4466,0x6163736e,0x6146656c, + 0x726f7463,0x00000000,0x000b0006,0x00000066,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365, + 0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x00000066,0x0000000c, + 0x6e615466,0x666c6148,0x00564f46,0x00090006,0x00000066,0x0000000d,0x74694a66,0x53726574, + 0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x00000066,0x0000000e,0x6c654466, + 0x69546174,0x0000656d,0x00080006,0x00000066,0x0000000f,0x6c654466,0x72506174,0x70784565, + 0x7275736f,0x00000065,0x000a0006,0x00000066,0x00000010,0x65695666,0x61705377,0x6f546563, + 0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x00000066,0x00000011,0x61724666, + 0x6e49656d,0x00786564,0x00070006,0x00000066,0x00000012,0x6c655666,0x7469636f,0x63614679, + 0x00726f74,0x00080006,0x00000066,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373, + 0x0000656c,0x00080006,0x00000066,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567, + 0x00656c61,0x000a0006,0x00000066,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e, + 0x65506465,0x61724672,0x0000656d,0x000b0006,0x00000066,0x00000016,0x6e694d66,0x6f736944, + 0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x00000068, + 0x53466263,0x70553352,0x6c616373,0x00007265,0x00050005,0x00000077,0x70735f72,0x696d5f64, + 0x00007370,0x00060005,0x00000081,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00070005, + 0x0000008e,0x735f7772,0x69646168,0x635f676e,0x676e6168,0x00000065,0x00060005,0x0000009a, + 0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x0000009f,0x616c4366,0x6465706d, + 0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x000000a4,0x61726170,0x0000006d,0x00040005, + 0x000000a6,0x61726170,0x0000006d,0x00040005,0x000000a8,0x61726170,0x0000006d,0x00040005, + 0x000000a9,0x61726170,0x0000006d,0x00050005,0x000000ab,0x616c4366,0x6465706d,0x00007655, + 0x00040005,0x000000bd,0x70694d66,0x00007655,0x00040005,0x000000c0,0x61726170,0x0000006d, + 0x00040005,0x000000c2,0x61726170,0x0000006d,0x00040005,0x000000c4,0x61726170,0x0000006d, + 0x00040005,0x000000c5,0x61726170,0x0000006d,0x00050005,0x000000c8,0x70694d69,0x6576654c, + 0x0000006c,0x00040005,0x000000d1,0x6d615366,0x00656c70,0x00040005,0x000000d4,0x61726170, + 0x0000006d,0x00040005,0x000000d6,0x61726170,0x0000006d,0x00040005,0x000000d9,0x6f666e69, + 0x00000000,0x00040005,0x000000eb,0x61726170,0x0000006d,0x00040005,0x000000ec,0x61726170, + 0x0000006d,0x00030005,0x000000f0,0x00765566,0x00050005,0x000000f8,0x4a765566,0x65747469, + 0x00646572,0x00040005,0x000000ff,0x6f666e69,0x00000000,0x00040005,0x00000101,0x61726170, + 0x0000006d,0x00040005,0x00000103,0x61726170,0x0000006d,0x00060005,0x00000106,0x61685366, + 0x676e6964,0x6e616843,0x00006567,0x00050005,0x00000107,0x70694d69,0x6576654c,0x0000006c, + 0x00040005,0x00000116,0x61726170,0x0000006d,0x00040005,0x00000118,0x61726170,0x0000006d, + 0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d, + 0x00040005,0x00000124,0x61726170,0x0000006d,0x00080005,0x00000128,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x0000012c,0x61726170,0x0000006d, + 0x00060005,0x00000131,0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00030047,0x00000066, + 0x00000002,0x00050048,0x00000066,0x00000000,0x00000023,0x00000000,0x00050048,0x00000066, + 0x00000001,0x00000023,0x00000008,0x00050048,0x00000066,0x00000002,0x00000023,0x00000010, + 0x00050048,0x00000066,0x00000003,0x00000023,0x00000018,0x00050048,0x00000066,0x00000004, + 0x00000023,0x00000020,0x00050048,0x00000066,0x00000005,0x00000023,0x00000028,0x00050048, + 0x00000066,0x00000006,0x00000023,0x00000030,0x00050048,0x00000066,0x00000007,0x00000023, + 0x00000040,0x00050048,0x00000066,0x00000008,0x00000023,0x00000048,0x00050048,0x00000066, + 0x00000009,0x00000023,0x00000050,0x00050048,0x00000066,0x0000000a,0x00000023,0x00000058, + 0x00050048,0x00000066,0x0000000b,0x00000023,0x00000060,0x00050048,0x00000066,0x0000000c, + 0x00000023,0x00000068,0x00050048,0x00000066,0x0000000d,0x00000023,0x0000006c,0x00050048, + 0x00000066,0x0000000e,0x00000023,0x00000070,0x00050048,0x00000066,0x0000000f,0x00000023, + 0x00000074,0x00050048,0x00000066,0x00000010,0x00000023,0x00000078,0x00050048,0x00000066, + 0x00000011,0x00000023,0x0000007c,0x00050048,0x00000066,0x00000012,0x00000023,0x00000080, + 0x00050048,0x00000066,0x00000013,0x00000023,0x00000084,0x00050048,0x00000066,0x00000014, + 0x00000023,0x00000088,0x00050048,0x00000066,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x00000066,0x00000016,0x00000023,0x00000090,0x00040047,0x00000068,0x00000021,0x00000002, + 0x00040047,0x00000068,0x00000022,0x00000000,0x00040047,0x00000077,0x00000021,0x00000000, + 0x00040047,0x00000077,0x00000022,0x00000000,0x00040047,0x00000081,0x00000021,0x000003e9, + 0x00040047,0x00000081,0x00000022,0x00000000,0x00040047,0x0000008e,0x00000021,0x00000001, + 0x00040047,0x0000008e,0x00000022,0x00000000,0x00040047,0x00000128,0x0000000b,0x0000001c, + 0x00040047,0x00000131,0x00000021,0x000003e8,0x00040047,0x00000131,0x00000022,0x00000000, + 0x00040047,0x0000013c,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002, + 0x00040020,0x0000000d,0x00000007,0x0000000c,0x00050021,0x0000000e,0x0000000c,0x0000000d, + 0x0000000d,0x00050021,0x00000013,0x00000006,0x00000007,0x00000007,0x00040015,0x0000001c, + 0x00000020,0x00000001,0x00040017,0x0000001d,0x0000001c,0x00000002,0x00030021,0x0000001e, + 0x0000001d,0x00030021,0x00000021,0x0000000c,0x00040015,0x00000024,0x00000020,0x00000000, + 0x00040020,0x00000025,0x00000007,0x00000024,0x00040021,0x00000026,0x0000001d,0x00000025, + 0x00050021,0x0000002a,0x0000000c,0x0000000d,0x00000025,0x00040020,0x0000002f,0x00000007, + 0x0000001d,0x00050021,0x00000030,0x00000002,0x0000002f,0x00000007,0x00060021,0x00000037, + 0x0000000c,0x0000000d,0x0000002f,0x0000002f,0x00020014,0x0000003d,0x00050021,0x0000003e, + 0x0000003d,0x0000002f,0x0000002f,0x0004002b,0x00000024,0x00000043,0x00000003,0x0004001c, + 0x00000044,0x00000006,0x00000043,0x0003001e,0x00000045,0x00000044,0x00060021,0x00000046, + 0x00000045,0x0000002f,0x0000000d,0x0000001d,0x00040021,0x0000004c,0x00000002,0x0000002f, + 0x0004002b,0x00000006,0x00000051,0x00000000,0x0004002b,0x00000006,0x00000052,0x3f800000, + 0x00040017,0x00000065,0x00000006,0x00000004,0x0019001e,0x00000066,0x0000001d,0x0000001d, + 0x0000001d,0x0000001d,0x0000001d,0x0000001d,0x00000065,0x0000000c,0x0000000c,0x0000000c, + 0x0000000c,0x0000000c,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000067,0x00000002, + 0x00000066,0x0004003b,0x00000067,0x00000068,0x00000002,0x0004002b,0x0000001c,0x00000069, + 0x00000000,0x00040020,0x0000006a,0x00000002,0x0000001d,0x0004002b,0x0000001c,0x0000006f, + 0x00000007,0x00040020,0x00000070,0x00000002,0x0000000c,0x00090019,0x00000075,0x00000006, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000076, + 0x00000000,0x00000075,0x0004003b,0x00000076,0x00000077,0x00000000,0x0002001a,0x0000007f, + 0x00040020,0x00000080,0x00000000,0x0000007f,0x0004003b,0x00000080,0x00000081,0x00000000, + 0x0003001b,0x00000083,0x00000075,0x00090019,0x0000008c,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x0000000f,0x00040020,0x0000008d,0x00000000,0x0000008c, + 0x0004003b,0x0000008d,0x0000008e,0x00000000,0x0004002b,0x00000006,0x00000095,0x3f000000, + 0x0005002c,0x0000000c,0x000000a0,0x00000095,0x00000095,0x00040017,0x000000b4,0x00000024, + 0x00000002,0x00040017,0x000000b8,0x0000003d,0x00000002,0x0004002b,0x00000024,0x000000bf, + 0x00000000,0x00040020,0x000000c7,0x00000007,0x0000001c,0x0004002b,0x0000001c,0x000000cf, + 0x00000003,0x00040020,0x000000d8,0x00000007,0x00000045,0x0004002b,0x00000024,0x000000dd, + 0x00000001,0x0004002b,0x0000001c,0x000000e4,0x00000001,0x00040017,0x00000126,0x00000024, + 0x00000003,0x00040020,0x00000127,0x00000001,0x00000126,0x0004003b,0x00000127,0x00000128, + 0x00000001,0x0004002b,0x00000006,0x0000012e,0x387fda40,0x0004002b,0x00000006,0x0000012f, + 0x477fe000,0x0004002b,0x00000006,0x00000130,0x37801002,0x0004003b,0x00000080,0x00000131, + 0x00000000,0x0004002b,0x00000006,0x00000132,0x7f7fffff,0x0004002b,0x00000006,0x00000133, + 0x00800000,0x0004002b,0x00000006,0x00000134,0x3a1fe868,0x0004002b,0x00000006,0x00000135, + 0x3d800000,0x0004002b,0x00000006,0x00000136,0x3d3d70a4,0x0004002b,0x00000006,0x00000137, + 0x3e400000,0x0004002b,0x00000006,0x00000138,0x40000000,0x0004002b,0x0000001c,0x00000139, + 0x00000002,0x0004002b,0x00000006,0x0000013a,0x461c4000,0x0004002b,0x00000024,0x0000013b, + 0x00000008,0x0006002c,0x00000126,0x0000013c,0x0000013b,0x0000013b,0x000000dd,0x00050036, + 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000002f, + 0x0000012c,0x00000007,0x0004003d,0x00000126,0x00000129,0x00000128,0x0007004f,0x000000b4, + 0x0000012a,0x00000129,0x00000129,0x00000000,0x00000001,0x0004007c,0x0000001d,0x0000012b, + 0x0000012a,0x0003003e,0x0000012c,0x0000012b,0x00050039,0x00000002,0x0000012d,0x0000004e, + 0x0000012c,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003d,0x00000006,0x00000050, + 0x00000009,0x0008000c,0x00000006,0x00000053,0x00000001,0x0000002b,0x00000050,0x00000051, + 0x00000052,0x000200fe,0x00000053,0x00010038,0x00050036,0x0000000c,0x00000011,0x00000000, + 0x0000000e,0x00030037,0x0000000d,0x0000000f,0x00030037,0x0000000d,0x00000010,0x000200f8, + 0x00000012,0x0004003d,0x0000000c,0x00000056,0x0000000f,0x0004003d,0x0000000c,0x00000057, + 0x00000010,0x0007000c,0x0000000c,0x00000058,0x00000001,0x00000025,0x00000056,0x00000057, + 0x000200fe,0x00000058,0x00010038,0x00050036,0x00000006,0x00000016,0x00000000,0x00000013, + 0x00030037,0x00000007,0x00000014,0x00030037,0x00000007,0x00000015,0x000200f8,0x00000017, + 0x0004003d,0x00000006,0x0000005b,0x00000014,0x0004003d,0x00000006,0x0000005c,0x00000015, + 0x0007000c,0x00000006,0x0000005d,0x00000001,0x00000028,0x0000005b,0x0000005c,0x000200fe, + 0x0000005d,0x00010038,0x00050036,0x0000000c,0x0000001a,0x00000000,0x0000000e,0x00030037, + 0x0000000d,0x00000018,0x00030037,0x0000000d,0x00000019,0x000200f8,0x0000001b,0x0004003d, + 0x0000000c,0x00000060,0x00000018,0x0004003d,0x0000000c,0x00000061,0x00000019,0x0007000c, + 0x0000000c,0x00000062,0x00000001,0x00000028,0x00000060,0x00000061,0x000200fe,0x00000062, + 0x00010038,0x00050036,0x0000001d,0x0000001f,0x00000000,0x0000001e,0x000200f8,0x00000020, + 0x00050041,0x0000006a,0x0000006b,0x00000068,0x00000069,0x0004003d,0x0000001d,0x0000006c, + 0x0000006b,0x000200fe,0x0000006c,0x00010038,0x00050036,0x0000000c,0x00000022,0x00000000, + 0x00000021,0x000200f8,0x00000023,0x00050041,0x00000070,0x00000071,0x00000068,0x0000006f, + 0x0004003d,0x0000000c,0x00000072,0x00000071,0x000200fe,0x00000072,0x00010038,0x00050036, + 0x0000001d,0x00000028,0x00000000,0x00000026,0x00030037,0x00000025,0x00000027,0x000200f8, + 0x00000029,0x0004003d,0x00000075,0x00000078,0x00000077,0x0004003d,0x00000024,0x00000079, + 0x00000027,0x0004007c,0x0000001c,0x0000007a,0x00000079,0x00050067,0x0000001d,0x0000007b, + 0x00000078,0x0000007a,0x000200fe,0x0000007b,0x00010038,0x00050036,0x0000000c,0x0000002d, + 0x00000000,0x0000002a,0x00030037,0x0000000d,0x0000002b,0x00030037,0x00000025,0x0000002c, + 0x000200f8,0x0000002e,0x0004003d,0x00000075,0x0000007e,0x00000077,0x0004003d,0x0000007f, + 0x00000082,0x00000081,0x00050056,0x00000083,0x00000084,0x0000007e,0x00000082,0x0004003d, + 0x0000000c,0x00000085,0x0000002b,0x0004003d,0x00000024,0x00000086,0x0000002c,0x00040070, + 0x00000006,0x00000087,0x00000086,0x00070058,0x00000065,0x00000088,0x00000084,0x00000085, + 0x00000002,0x00000087,0x0007004f,0x0000000c,0x00000089,0x00000088,0x00000088,0x00000000, + 0x00000001,0x000200fe,0x00000089,0x00010038,0x00050036,0x00000002,0x00000033,0x00000000, + 0x00000030,0x00030037,0x0000002f,0x00000031,0x00030037,0x00000007,0x00000032,0x000200f8, + 0x00000034,0x0004003d,0x0000008c,0x0000008f,0x0000008e,0x0004003d,0x0000001d,0x00000090, + 0x00000031,0x0004003d,0x00000006,0x00000091,0x00000032,0x00070050,0x00000065,0x00000092, + 0x00000091,0x00000051,0x00000051,0x00000051,0x00040063,0x0000008f,0x00000090,0x00000092, + 0x000100fd,0x00010038,0x00050036,0x0000001d,0x00000035,0x00000000,0x0000001e,0x000200f8, + 0x00000036,0x00040039,0x0000001d,0x00000093,0x0000001f,0x0004006f,0x0000000c,0x00000094, + 0x00000093,0x0005008e,0x0000000c,0x00000096,0x00000094,0x00000095,0x0004006e,0x0000001d, + 0x00000097,0x00000096,0x000200fe,0x00000097,0x00010038,0x00050036,0x0000000c,0x0000003b, + 0x00000000,0x00000037,0x00030037,0x0000000d,0x00000038,0x00030037,0x0000002f,0x00000039, + 0x00030037,0x0000002f,0x0000003a,0x000200f8,0x0000003c,0x0004003b,0x0000000d,0x0000009a, + 0x00000007,0x0004003b,0x0000000d,0x0000009f,0x00000007,0x0004003b,0x0000000d,0x000000a4, + 0x00000007,0x0004003b,0x0000000d,0x000000a6,0x00000007,0x0004003b,0x0000000d,0x000000a8, + 0x00000007,0x0004003b,0x0000000d,0x000000a9,0x00000007,0x0004003b,0x0000000d,0x000000ab, + 0x00000007,0x0004003d,0x0000000c,0x0000009b,0x00000038,0x0004003d,0x0000001d,0x0000009c, + 0x00000039,0x0004006f,0x0000000c,0x0000009d,0x0000009c,0x00050085,0x0000000c,0x0000009e, + 0x0000009b,0x0000009d,0x0003003e,0x0000009a,0x0000009e,0x0004003d,0x0000001d,0x000000a1, + 0x00000039,0x0004006f,0x0000000c,0x000000a2,0x000000a1,0x00050083,0x0000000c,0x000000a3, + 0x000000a2,0x000000a0,0x0004003d,0x0000000c,0x000000a5,0x0000009a,0x0003003e,0x000000a4, + 0x000000a5,0x0003003e,0x000000a6,0x000000a3,0x00060039,0x0000000c,0x000000a7,0x00000011, + 0x000000a4,0x000000a6,0x0003003e,0x000000a8,0x000000a0,0x0003003e,0x000000a9,0x000000a7, + 0x00060039,0x0000000c,0x000000aa,0x0000001a,0x000000a8,0x000000a9,0x0003003e,0x0000009f, + 0x000000aa,0x0004003d,0x0000000c,0x000000ac,0x0000009f,0x0004003d,0x0000001d,0x000000ad, + 0x0000003a,0x0004006f,0x0000000c,0x000000ae,0x000000ad,0x00050088,0x0000000c,0x000000af, + 0x000000ac,0x000000ae,0x0003003e,0x000000ab,0x000000af,0x0004003d,0x0000000c,0x000000b0, + 0x000000ab,0x000200fe,0x000000b0,0x00010038,0x00050036,0x0000003d,0x00000041,0x00000000, + 0x0000003e,0x00030037,0x0000002f,0x0000003f,0x00030037,0x0000002f,0x00000040,0x000200f8, + 0x00000042,0x0004003d,0x0000001d,0x000000b3,0x0000003f,0x0004007c,0x000000b4,0x000000b5, + 0x000000b3,0x0004003d,0x0000001d,0x000000b6,0x00000040,0x0004007c,0x000000b4,0x000000b7, + 0x000000b6,0x000500b0,0x000000b8,0x000000b9,0x000000b5,0x000000b7,0x0004009b,0x0000003d, + 0x000000ba,0x000000b9,0x000200fe,0x000000ba,0x00010038,0x00050036,0x00000045,0x0000004a, + 0x00000000,0x00000046,0x00030037,0x0000002f,0x00000047,0x00030037,0x0000000d,0x00000048, + 0x00030037,0x0000001d,0x00000049,0x000200f8,0x0000004b,0x0004003b,0x0000000d,0x000000bd, + 0x00000007,0x0004003b,0x00000025,0x000000c0,0x00000007,0x0004003b,0x0000000d,0x000000c2, + 0x00000007,0x0004003b,0x0000002f,0x000000c4,0x00000007,0x0004003b,0x0000002f,0x000000c5, + 0x00000007,0x0004003b,0x000000c7,0x000000c8,0x00000007,0x0004003b,0x0000000d,0x000000d1, + 0x00000007,0x0004003b,0x0000000d,0x000000d4,0x00000007,0x0004003b,0x00000025,0x000000d6, + 0x00000007,0x0004003b,0x000000d8,0x000000d9,0x00000007,0x00040039,0x0000001d,0x000000be, + 0x00000035,0x0003003e,0x000000c0,0x000000bf,0x00050039,0x0000001d,0x000000c1,0x00000028, + 0x000000c0,0x0004003d,0x0000000c,0x000000c3,0x00000048,0x0003003e,0x000000c2,0x000000c3, + 0x0003003e,0x000000c4,0x000000be,0x0003003e,0x000000c5,0x000000c1,0x00070039,0x0000000c, + 0x000000c6,0x0000003b,0x000000c2,0x000000c4,0x000000c5,0x0003003e,0x000000bd,0x000000c6, + 0x0003003e,0x000000c8,0x00000069,0x000200f9,0x000000c9,0x000200f8,0x000000c9,0x000400f6, + 0x000000cb,0x000000cc,0x00000000,0x000200f9,0x000000cd,0x000200f8,0x000000cd,0x0004003d, + 0x0000001c,0x000000ce,0x000000c8,0x000500b1,0x0000003d,0x000000d0,0x000000ce,0x000000cf, + 0x000400fa,0x000000d0,0x000000ca,0x000000cb,0x000200f8,0x000000ca,0x0004003d,0x0000001c, + 0x000000d2,0x000000c8,0x0004007c,0x00000024,0x000000d3,0x000000d2,0x0004003d,0x0000000c, + 0x000000d5,0x000000bd,0x0003003e,0x000000d4,0x000000d5,0x0003003e,0x000000d6,0x000000d3, + 0x00060039,0x0000000c,0x000000d7,0x0000002d,0x000000d4,0x000000d6,0x0003003e,0x000000d1, + 0x000000d7,0x0004003d,0x0000001c,0x000000da,0x000000c8,0x00050041,0x00000007,0x000000db, + 0x000000d1,0x000000bf,0x0004003d,0x00000006,0x000000dc,0x000000db,0x00050041,0x00000007, + 0x000000de,0x000000d1,0x000000dd,0x0004003d,0x00000006,0x000000df,0x000000de,0x00050085, + 0x00000006,0x000000e0,0x000000dc,0x000000df,0x0006000c,0x00000006,0x000000e1,0x00000001, + 0x00000004,0x000000e0,0x00060041,0x00000007,0x000000e2,0x000000d9,0x00000069,0x000000da, + 0x0003003e,0x000000e2,0x000000e1,0x000200f9,0x000000cc,0x000200f8,0x000000cc,0x0004003d, + 0x0000001c,0x000000e3,0x000000c8,0x00050080,0x0000001c,0x000000e5,0x000000e3,0x000000e4, + 0x0003003e,0x000000c8,0x000000e5,0x000200f9,0x000000c9,0x000200f8,0x000000cb,0x0004003d, + 0x00000045,0x000000e6,0x000000d9,0x000200fe,0x000000e6,0x00010038,0x00050036,0x00000002, + 0x0000004e,0x00000000,0x0000004c,0x00030037,0x0000002f,0x0000004d,0x000200f8,0x0000004f, + 0x0004003b,0x0000002f,0x000000eb,0x00000007,0x0004003b,0x0000002f,0x000000ec,0x00000007, + 0x0004003b,0x0000000d,0x000000f0,0x00000007,0x0004003b,0x0000000d,0x000000f8,0x00000007, + 0x0004003b,0x000000d8,0x000000ff,0x00000007,0x0004003b,0x0000002f,0x00000101,0x00000007, + 0x0004003b,0x0000000d,0x00000103,0x00000007,0x0004003b,0x00000007,0x00000106,0x00000007, + 0x0004003b,0x000000c7,0x00000107,0x00000007,0x0004003b,0x00000007,0x00000116,0x00000007, + 0x0004003b,0x00000007,0x00000118,0x00000007,0x0004003b,0x00000007,0x0000011f,0x00000007, + 0x0004003b,0x0000002f,0x00000122,0x00000007,0x0004003b,0x00000007,0x00000124,0x00000007, + 0x0004003d,0x0000001d,0x000000e9,0x0000004d,0x00040039,0x0000001d,0x000000ea,0x00000035, + 0x0003003e,0x000000eb,0x000000e9,0x0003003e,0x000000ec,0x000000ea,0x00060039,0x0000003d, + 0x000000ed,0x00000041,0x000000eb,0x000000ec,0x000300f7,0x000000ef,0x00000000,0x000400fa, + 0x000000ed,0x000000ee,0x000000ef,0x000200f8,0x000000ee,0x0004003d,0x0000001d,0x000000f1, + 0x0000004d,0x0004006f,0x0000000c,0x000000f2,0x000000f1,0x00050050,0x0000000c,0x000000f3, + 0x00000095,0x00000095,0x00050081,0x0000000c,0x000000f4,0x000000f2,0x000000f3,0x00040039, + 0x0000001d,0x000000f5,0x00000035,0x0004006f,0x0000000c,0x000000f6,0x000000f5,0x00050088, + 0x0000000c,0x000000f7,0x000000f4,0x000000f6,0x0003003e,0x000000f0,0x000000f7,0x0004003d, + 0x0000000c,0x000000f9,0x000000f0,0x00040039,0x0000000c,0x000000fa,0x00000022,0x00040039, + 0x0000001d,0x000000fb,0x0000001f,0x0004006f,0x0000000c,0x000000fc,0x000000fb,0x00050088, + 0x0000000c,0x000000fd,0x000000fa,0x000000fc,0x00050081,0x0000000c,0x000000fe,0x000000f9, + 0x000000fd,0x0003003e,0x000000f8,0x000000fe,0x00040039,0x0000001d,0x00000100,0x00000035, + 0x0004003d,0x0000001d,0x00000102,0x0000004d,0x0003003e,0x00000101,0x00000102,0x0004003d, + 0x0000000c,0x00000104,0x000000f8,0x0003003e,0x00000103,0x00000104,0x00070039,0x00000045, + 0x00000105,0x0000004a,0x00000101,0x00000103,0x00000100,0x0003003e,0x000000ff,0x00000105, + 0x0003003e,0x00000106,0x00000051,0x0003003e,0x00000107,0x00000069,0x000200f9,0x00000108, + 0x000200f8,0x00000108,0x000400f6,0x0000010a,0x0000010b,0x00000000,0x000200f9,0x0000010c, + 0x000200f8,0x0000010c,0x0004003d,0x0000001c,0x0000010d,0x00000107,0x000500b1,0x0000003d, + 0x0000010e,0x0000010d,0x000000cf,0x000400fa,0x0000010e,0x00000109,0x0000010a,0x000200f8, + 0x00000109,0x0004003d,0x0000001c,0x0000010f,0x00000107,0x00060041,0x00000007,0x00000110, + 0x000000ff,0x00000069,0x0000010f,0x0004003d,0x00000006,0x00000111,0x00000110,0x000500ba, + 0x0000003d,0x00000112,0x00000111,0x00000051,0x000300f7,0x00000114,0x00000000,0x000400fa, + 0x00000112,0x00000113,0x00000114,0x000200f8,0x00000113,0x0004003d,0x0000001c,0x00000115, + 0x00000107,0x0004003d,0x00000006,0x00000117,0x00000106,0x0003003e,0x00000116,0x00000117, + 0x00060041,0x00000007,0x00000119,0x000000ff,0x00000069,0x00000115,0x0004003d,0x00000006, + 0x0000011a,0x00000119,0x0003003e,0x00000118,0x0000011a,0x00060039,0x00000006,0x0000011b, + 0x00000016,0x00000116,0x00000118,0x00050085,0x00000006,0x0000011c,0x0000011b,0x00000052, + 0x0003003e,0x00000106,0x0000011c,0x000200f9,0x00000114,0x000200f8,0x00000114,0x000200f9, + 0x0000010b,0x000200f8,0x0000010b,0x0004003d,0x0000001c,0x0000011d,0x00000107,0x00050080, + 0x0000001c,0x0000011e,0x0000011d,0x000000e4,0x0003003e,0x00000107,0x0000011e,0x000200f9, + 0x00000108,0x000200f8,0x0000010a,0x0004003d,0x00000006,0x00000120,0x00000106,0x0003003e, + 0x0000011f,0x00000120,0x00050039,0x00000006,0x00000121,0x0000000a,0x0000011f,0x0004003d, + 0x0000001d,0x00000123,0x0000004d,0x0003003e,0x00000122,0x00000123,0x0003003e,0x00000124, + 0x00000121,0x00060039,0x00000002,0x00000125,0x00000033,0x00000122,0x00000124,0x000200f9, + 0x000000ef,0x000200f8,0x000000ef,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h new file mode 100644 index 000000000..ec5446d11 --- /dev/null +++ b/gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h @@ -0,0 +1,1903 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_SHADING_CHANGE_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000091b,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x00000905,0x00000907,0x00060010,0x00000004,0x00000011, + 0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469, + 0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47, + 0x735f5248,0x65646168,0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004, + 0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273, + 0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005, + 0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005, + 0x00000010,0x73746962,0x00000000,0x00060005,0x00000018,0x4d786666,0x66286e69,0x31663b31, + 0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017,0x00000079,0x00060005, + 0x0000001f,0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x0000001d,0x00000078, + 0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023,0x4d786666,0x66287861,0x31663b31, + 0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022,0x00000079,0x00060005, + 0x00000027,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000025,0x00000078, + 0x00030005,0x00000026,0x00000079,0x00060005,0x0000002b,0x50786666,0x6628776f,0x31663b31, + 0x0000003b,0x00030005,0x00000029,0x00000078,0x00030005,0x0000002a,0x00000079,0x000a0005, + 0x00000030,0x52786666,0x70616d65,0x57726f46,0x52657661,0x63756465,0x6e6f6974,0x3b317528, + 0x00000000,0x00030005,0x0000002f,0x00000061,0x00050005,0x00000034,0x646e6552,0x69537265, + 0x0028657a,0x00090005,0x00000036,0x76657250,0x73756f69,0x6d617246,0x6e655265,0x53726564, + 0x28657a69,0x00000000,0x00040005,0x0000003a,0x7474694a,0x00287265,0x00080005,0x0000003c, + 0x76657250,0x73756f69,0x6d617246,0x74694a65,0x28726574,0x00000000,0x00070005,0x0000003f, + 0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028,0x00050005,0x00000042,0x4370694d, + 0x746e756f,0x00000028,0x00060005,0x00000044,0x576d754e,0x476b726f,0x70756f72,0x00002873, + 0x00070005,0x00000047,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000,0x00080005, + 0x0000004c,0x64616f4c,0x72727543,0x4c746e65,0x28616d75,0x3b326976,0x00000000,0x00040005, + 0x0000004b,0x50785069,0x0000736f,0x00080005,0x0000004f,0x64616f4c,0x76657250,0x73756f69, + 0x616d754c,0x32697628,0x0000003b,0x00040005,0x0000004e,0x50785069,0x0000736f,0x000a0005, + 0x00000053,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976, + 0x00000000,0x00050005,0x00000052,0x49785069,0x7475706e,0x00000000,0x00050005,0x00000055, + 0x6f707845,0x65727573,0x00000028,0x00080005,0x0000005a,0x6f4c5752,0x79506461,0x696d6172, + 0x69762864,0x31753b32,0x0000003b,0x00040005,0x00000058,0x50785069,0x0000736f,0x00040005, + 0x00000059,0x65646e69,0x00000078,0x00090005,0x00000061,0x726f7453,0x72795065,0x64696d61, + 0x32697628,0x3266763b,0x3b31753b,0x00000000,0x00040005,0x0000005e,0x50785069,0x0000736f, + 0x00050005,0x0000005f,0x5674756f,0x65756c61,0x00000000,0x00040005,0x00000060,0x65646e69, + 0x00000078,0x000a0005,0x00000065,0x5f445053,0x72636e49,0x65736165,0x6d6f7441,0x6f436369, + 0x65746e75,0x31752872,0x0000003b,0x00050005,0x00000064,0x43647073,0x746e756f,0x00007265, + 0x00080005,0x00000067,0x5f445053,0x65736552,0x6f744174,0x4363696d,0x746e756f,0x00287265, + 0x00080005,0x0000006c,0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31, + 0x00030005,0x0000006a,0x00003076,0x00030005,0x0000006b,0x00003176,0x00060005,0x00000071, + 0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000070,0x00765566,0x00080005, + 0x00000077,0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005, + 0x00000074,0x53785069,0x6c706d61,0x00000065,0x00050005,0x00000075,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x00000076,0x78655469,0x65727574,0x657a6953,0x00000000,0x000a0005, + 0x0000007a,0x49647053,0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528, + 0x00000000,0x00040005,0x00000079,0x63696c73,0x00000065,0x00080005,0x0000007c,0x47647053, + 0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000,0x00090005,0x0000007f,0x52647053, + 0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x0000007e, + 0x63696c73,0x00000065,0x00050005,0x00000083,0x706d6153,0x6553656c,0x00000074,0x00060006, + 0x00000083,0x00000000,0x6d615366,0x73656c70,0x00000000,0x000b0005,0x00000087,0x74726f53, + 0x28746553,0x75727473,0x532d7463,0x6c706d61,0x74655365,0x5b31662d,0x3b315d35,0x00000000, + 0x00040005,0x00000086,0x74655366,0x00000000,0x00160005,0x0000008d,0x706d6f43,0x4d657475, + 0x6d696e69,0x69446d75,0x72656666,0x65636e65,0x32697628,0x7274733b,0x2d746375,0x706d6153, + 0x6553656c,0x31662d74,0x315d355b,0x7274733b,0x2d746375,0x706d6153,0x6553656c,0x31662d74, + 0x315d355b,0x0000003b,0x00040005,0x0000008a,0x50785069,0x0000736f,0x00040005,0x0000008b, + 0x74655366,0x00000030,0x00040005,0x0000008c,0x74655366,0x00000031,0x000b0005,0x00000091, + 0x43746547,0x65727275,0x754c746e,0x6942616d,0x656e696c,0x61537261,0x656c706d,0x66762873, + 0x00003b32,0x00030005,0x00000090,0x00765566,0x000a0005,0x00000093,0x76657250,0x73756f69, + 0x616d754c,0x696c6942,0x7261656e,0x706d6153,0x4473656c,0x00617461,0x00050006,0x00000093, + 0x00000000,0x74655366,0x00000000,0x00080006,0x00000093,0x00000001,0x45734962,0x74736978, + 0x53676e69,0x6c706d61,0x00000065,0x000c0005,0x00000097,0x50746547,0x69766572,0x4c73756f, + 0x42616d75,0x6e696c69,0x53726165,0x6c706d61,0x76287365,0x763b3266,0x003b3266,0x00030005, + 0x00000095,0x00765566,0x00060005,0x00000096,0x746f4d66,0x566e6f69,0x6f746365,0x00000072, + 0x00090005,0x0000009d,0x706d6f43,0x44657475,0x28666669,0x3b326976,0x3b326676,0x3b326676, + 0x00000000,0x00040005,0x0000009a,0x50785069,0x0000736f,0x00030005,0x0000009b,0x00765566, + 0x00060005,0x0000009c,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00090005,0x000000a3, + 0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266,0x00003b31,0x00040005, + 0x000000a1,0x50785069,0x0000736f,0x00040005,0x000000a2,0x63696c73,0x00000065,0x00060005, + 0x000000a8,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x000000a6,0x00786574, + 0x00040005,0x000000a7,0x63696c73,0x00000065,0x00090005,0x000000b0,0x52647053,0x63756465, + 0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x000000ac,0x00003076, + 0x00030005,0x000000ad,0x00003176,0x00030005,0x000000ae,0x00003276,0x00030005,0x000000af, + 0x00003376,0x00080005,0x000000b7,0x53647053,0x65726f74,0x32697628,0x3466763b,0x3b31753b, + 0x003b3175,0x00030005,0x000000b3,0x00786970,0x00050005,0x000000b4,0x5674756f,0x65756c61, + 0x00000000,0x00040005,0x000000b5,0x65646e69,0x00000078,0x00040005,0x000000b6,0x63696c73, + 0x00000065,0x00090005,0x000000bc,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461, + 0x753b3175,0x00003b31,0x00030005,0x000000ba,0x00000078,0x00030005,0x000000bb,0x00000079, + 0x000a0005,0x000000c2,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528, + 0x763b3175,0x003b3466,0x00030005,0x000000bf,0x00000078,0x00030005,0x000000c0,0x00000079, + 0x00040005,0x000000c1,0x756c6176,0x00000065,0x000a0005,0x000000c4,0x53786666,0x6f576470, + 0x72676b72,0x5370756f,0x66667568,0x6142656c,0x65697272,0x00002872,0x00090005,0x000000ca, + 0x45647053,0x57746978,0x676b726f,0x70756f72,0x3b317528,0x753b3175,0x00003b31,0x00060005, + 0x000000c7,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00080005,0x000000c8,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x000000c9,0x63696c73, + 0x00000065,0x00070005,0x000000ce,0x52647053,0x63756465,0x61755165,0x66762864,0x00003b34, + 0x00030005,0x000000cd,0x00000076,0x000b0005,0x000000d7,0x52647053,0x63756465,0x616f4c65, + 0x76283464,0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x000000d2, + 0x00003069,0x00030005,0x000000d3,0x00003169,0x00030005,0x000000d4,0x00003269,0x00030005, + 0x000000d5,0x00003369,0x00040005,0x000000d6,0x63696c73,0x00000065,0x00080005,0x000000dc, + 0x52647053,0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x000000da, + 0x65736162,0x00000000,0x00040005,0x000000db,0x63696c73,0x00000065,0x000e0005,0x000000e3, + 0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32, + 0x75763b32,0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000de,0x00003069,0x00030005, + 0x000000df,0x00003169,0x00030005,0x000000e0,0x00003269,0x00030005,0x000000e1,0x00003369, + 0x00040005,0x000000e2,0x63696c73,0x00000065,0x000b0005,0x000000e7,0x52647053,0x63756465, + 0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005, + 0x000000e5,0x65736162,0x00000000,0x00040005,0x000000e6,0x63696c73,0x00000065,0x00100005, + 0x000000f0,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x6e495f31,0x6e697274, + 0x73636973,0x3b317528,0x763b3175,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00030005, + 0x000000ea,0x00000078,0x00030005,0x000000eb,0x00000079,0x00050005,0x000000ec,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000ed,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x000000ee,0x0070696d,0x00040005,0x000000ef,0x63696c73, + 0x00000065,0x000d0005,0x000000f8,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73, + 0x31752831,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000f2, + 0x00000078,0x00030005,0x000000f3,0x00000079,0x00050005,0x000000f4,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000f5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000f6,0x0070696d,0x00040005,0x000000f7,0x63696c73,0x00000065, + 0x000c0005,0x00000100,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31, + 0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000fa,0x00000078,0x00030005, + 0x000000fb,0x00000079,0x00050005,0x000000fc,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000fd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000fe,0x0070696d,0x00040005,0x000000ff,0x63696c73,0x00000065,0x000c0005,0x00000108, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x00000102,0x00000078,0x00030005,0x00000103,0x00000079, + 0x00050005,0x00000104,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000105,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000106,0x0070696d, + 0x00040005,0x00000107,0x63696c73,0x00000065,0x000c0005,0x00000110,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x0000010a,0x00000078,0x00030005,0x0000010b,0x00000079,0x00050005,0x0000010c, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000010d,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x0000010e,0x0070696d,0x00040005,0x0000010f, + 0x63696c73,0x00000065,0x000b0005,0x00000117,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7628355f,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x00000113,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x00000114,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x00000115,0x0070696d,0x00040005,0x00000116,0x63696c73, + 0x00000065,0x000b0005,0x0000011e,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73, + 0x31752837,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x0000011a,0x00000078,0x00030005, + 0x0000011b,0x00000079,0x00040005,0x0000011c,0x7370696d,0x00000000,0x00040005,0x0000011d, + 0x63696c73,0x00000065,0x000e0005,0x00000128,0x44647053,0x736e776f,0x6c706d61,0x78654e65, + 0x756f4674,0x31752872,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000, + 0x00030005,0x00000121,0x00000078,0x00030005,0x00000122,0x00000079,0x00050005,0x00000123, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000124,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000125,0x65736162,0x0070694d,0x00040005, + 0x00000126,0x7370696d,0x00000000,0x00040005,0x00000127,0x63696c73,0x00000065,0x000a0005, + 0x00000130,0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175, + 0x00003b31,0x00050005,0x0000012b,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000012c, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x0000012d, + 0x7370696d,0x00000000,0x00060005,0x0000012e,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00040005,0x0000012f,0x63696c73,0x00000065,0x000b0005,0x00000139,0x44647053,0x736e776f, + 0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005, + 0x00000133,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000134,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000135,0x7370696d,0x00000000, + 0x00060005,0x00000136,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x00000137, + 0x63696c73,0x00000065,0x00060005,0x00000138,0x6b726f77,0x756f7247,0x66664f70,0x00746573, + 0x000b0005,0x00000140,0x706d6f43,0x53657475,0x69646168,0x6843676e,0x65676e61,0x61727950, + 0x2864696d,0x3b337576,0x003b3175,0x00050005,0x0000013e,0x6b726f57,0x756f7247,0x00644970, + 0x00070005,0x0000013f,0x61636f4c,0x7268546c,0x49646165,0x7865646e,0x00000000,0x00040005, + 0x0000016d,0x61726170,0x0000006d,0x00040005,0x0000016f,0x61726170,0x0000006d,0x00040005, + 0x00000170,0x61726170,0x0000006d,0x00040005,0x00000173,0x61726170,0x0000006d,0x00040005, + 0x00000174,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005, + 0x00000178,0x61726170,0x0000006d,0x00040005,0x0000017a,0x61726170,0x0000006d,0x00040005, + 0x0000017b,0x61726170,0x0000006d,0x00040005,0x0000017d,0x61726170,0x0000006d,0x00040005, + 0x0000017f,0x61726170,0x0000006d,0x00040005,0x00000180,0x61726170,0x0000006d,0x00040005, + 0x00000182,0x61726170,0x0000006d,0x00040005,0x00000183,0x61726170,0x0000006d,0x00040005, + 0x00000184,0x61726170,0x0000006d,0x00070005,0x00000189,0x53466263,0x50553352,0x4c414353, + 0x745f5245,0x00000000,0x00060006,0x00000189,0x00000000,0x6e655269,0x53726564,0x00657a69, + 0x000a0006,0x00000189,0x00000001,0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e, + 0x657a6953,0x00000000,0x00070006,0x00000189,0x00000002,0x73705569,0x656c6163,0x657a6953, + 0x00000000,0x000a0006,0x00000189,0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d, + 0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000189,0x00000004,0x78614d69,0x646e6552, + 0x69537265,0x0000657a,0x00070006,0x00000189,0x00000005,0x78614d69,0x63737055,0x53656c61, + 0x00657a69,0x00080006,0x00000189,0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477, + 0x00006874,0x00050006,0x00000189,0x00000007,0x74694a66,0x00726574,0x00090006,0x00000189, + 0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006, + 0x00000189,0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006, + 0x00000189,0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006, + 0x00000189,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61, + 0x74616c6c,0x006e6f69,0x00060006,0x00000189,0x0000000c,0x6e615466,0x666c6148,0x00564f46, + 0x00090006,0x00000189,0x0000000d,0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65, + 0x00000068,0x00060006,0x00000189,0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006, + 0x00000189,0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006, + 0x00000189,0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463, + 0x00000000,0x00060006,0x00000189,0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006, + 0x00000189,0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74,0x00080006,0x00000189, + 0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c,0x00080006,0x00000189, + 0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61,0x000a0006,0x00000189, + 0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d, + 0x000b0006,0x00000189,0x00000016,0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341, + 0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x0000018b,0x53466263,0x70553352,0x6c616373, + 0x00007265,0x00040005,0x000001a7,0x50536263,0x00745f44,0x00050006,0x000001a7,0x00000000, + 0x7370696d,0x00000000,0x00070006,0x000001a7,0x00000001,0x576d756e,0x476b726f,0x70756f72, + 0x00000073,0x00070006,0x000001a7,0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573, + 0x00060006,0x000001a7,0x00000003,0x646e6572,0x69537265,0x0000657a,0x00040005,0x000001a9, + 0x50536263,0x00000044,0x00060005,0x000001bb,0x75635f72,0x6e657272,0x756c5f74,0x0000616d, + 0x00060005,0x000001c3,0x72705f72,0x6f697665,0x6c5f7375,0x00616d75,0x00090005,0x000001ca, + 0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005, + 0x000001d1,0x6f707865,0x65727573,0x00000000,0x00070005,0x000001d2,0x6e695f72,0x5f747570, + 0x6f707865,0x65727573,0x00000000,0x00050005,0x000001e6,0x735f7772,0x6d5f6470,0x00307069, + 0x00050005,0x000001f0,0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001fa,0x735f7772, + 0x6d5f6470,0x00327069,0x00050005,0x00000204,0x735f7772,0x6d5f6470,0x00337069,0x00050005, + 0x0000020f,0x735f7772,0x6d5f6470,0x00347069,0x00050005,0x00000219,0x735f7772,0x6d5f6470, + 0x00357069,0x00080005,0x00000260,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f, + 0x00000000,0x00030005,0x00000267,0x0000006d,0x00040005,0x00000268,0x61726170,0x0000006d, + 0x00040005,0x00000269,0x61726170,0x0000006d,0x00040005,0x00000270,0x61726170,0x0000006d, + 0x00040005,0x00000271,0x61726170,0x0000006d,0x00040005,0x00000290,0x75736572,0x0000746c, + 0x00040005,0x00000297,0x61726170,0x0000006d,0x00040005,0x0000029a,0x61726170,0x0000006d, + 0x00040005,0x0000029c,0x61726170,0x0000006d,0x00040005,0x0000029d,0x61726170,0x0000006d, + 0x00040005,0x000002a3,0x61726170,0x0000006d,0x00040005,0x000002a6,0x61726170,0x0000006d, + 0x00040005,0x000002a8,0x61726170,0x0000006d,0x00040005,0x000002a9,0x61726170,0x0000006d, + 0x00050005,0x000002b0,0x43647073,0x746e756f,0x00007265,0x00040005,0x000002b1,0x61726170, + 0x0000006d,0x00040005,0x000002b9,0x706d5466,0x00000000,0x00040005,0x000002bb,0x61726170, + 0x0000006d,0x00040005,0x000002be,0x61726170,0x0000006d,0x00040005,0x000002c2,0x61726170, + 0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00040005,0x000002cc,0x706d5466, + 0x00000000,0x00040005,0x000002ce,0x61726170,0x0000006d,0x00040005,0x000002d1,0x61726170, + 0x0000006d,0x00040005,0x000002d5,0x61726170,0x0000006d,0x00040005,0x000002d8,0x61726170, + 0x0000006d,0x00040005,0x000002df,0x706d5466,0x00000000,0x00040005,0x000002e0,0x61726170, + 0x0000006d,0x00040005,0x000002e3,0x61726170,0x0000006d,0x00040005,0x000002e7,0x61726170, + 0x0000006d,0x00040005,0x000002ea,0x61726170,0x0000006d,0x00040005,0x000002f1,0x706d5466, + 0x00000000,0x00040005,0x000002f2,0x61726170,0x0000006d,0x00040005,0x000002f5,0x61726170, + 0x0000006d,0x00040005,0x000002f9,0x61726170,0x0000006d,0x00040005,0x000002fc,0x61726170, + 0x0000006d,0x00040005,0x00000303,0x706d5466,0x00000000,0x00040005,0x00000304,0x61726170, + 0x0000006d,0x00040005,0x00000307,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170, + 0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d,0x00040005,0x00000315,0x706d5466, + 0x00000000,0x00040005,0x00000316,0x61726170,0x0000006d,0x00040005,0x00000319,0x61726170, + 0x0000006d,0x00040005,0x0000031d,0x61726170,0x0000006d,0x00040005,0x00000320,0x61726170, + 0x0000006d,0x00040005,0x00000327,0x706d5466,0x00000000,0x00040005,0x00000328,0x61726170, + 0x0000006d,0x00040005,0x0000032b,0x61726170,0x0000006d,0x00040005,0x0000032f,0x61726170, + 0x0000006d,0x00040005,0x00000332,0x61726170,0x0000006d,0x00040005,0x00000339,0x706d5466, + 0x00000000,0x00040005,0x0000033a,0x61726170,0x0000006d,0x00040005,0x0000033d,0x61726170, + 0x0000006d,0x00040005,0x00000341,0x61726170,0x0000006d,0x00040005,0x00000344,0x61726170, + 0x0000006d,0x00040005,0x0000034b,0x706d5466,0x00000000,0x00040005,0x0000034c,0x61726170, + 0x0000006d,0x00040005,0x0000034f,0x61726170,0x0000006d,0x00040005,0x00000353,0x61726170, + 0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d,0x00050005,0x0000035d,0x6e694d66, + 0x66666944,0x00000000,0x00030005,0x0000035f,0x00000061,0x00030005,0x00000360,0x00000062, + 0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000365,0x61726170,0x0000006d, + 0x00040005,0x00000369,0x78614d66,0x00000000,0x00040005,0x0000036a,0x61726170,0x0000006d, + 0x00040005,0x0000036d,0x61726170,0x0000006d,0x00030005,0x00000376,0x00000069,0x00040005, + 0x00000383,0x66694466,0x00000066,0x00050005,0x000003c2,0x4a765566,0x65747469,0x00646572, + 0x00050005,0x000003c9,0x73614269,0x736f5065,0x00000000,0x00060005,0x000003d0,0x6d615369, + 0x49656c70,0x7865646e,0x00000000,0x00050005,0x000003d8,0x6d615369,0x50656c70,0x0000736f, + 0x00040005,0x000003e2,0x61726170,0x0000006d,0x00040005,0x000003e4,0x61726170,0x0000006d, + 0x00050005,0x000003e6,0x65646e69,0x6c626178,0x00000065,0x00040005,0x000003e9,0x61726170, + 0x0000006d,0x00040005,0x000003eb,0x74655366,0x00000000,0x00040005,0x000003ed,0x61726170, + 0x0000006d,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005,0x000003f8,0x61726170, + 0x0000006d,0x00040005,0x000003fd,0x61726170,0x0000006d,0x00040005,0x00000400,0x61726170, + 0x0000006d,0x00050005,0x00000408,0x4a765566,0x65747469,0x00646572,0x00060005,0x0000040f, + 0x70655266,0x656a6f72,0x64657463,0x00007655,0x00040005,0x00000414,0x61746164,0x00000000, + 0x00040005,0x00000415,0x61726170,0x0000006d,0x00050005,0x0000041e,0x73614269,0x736f5065, + 0x00000000,0x00060005,0x00000425,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00050005, + 0x0000042d,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x00000430,0x61726170,0x0000006d, + 0x00040005,0x00000432,0x61726170,0x0000006d,0x00050005,0x00000433,0x65646e69,0x6c626178, + 0x00000065,0x00040005,0x00000436,0x61726170,0x0000006d,0x00040005,0x00000439,0x61726170, + 0x0000006d,0x00040005,0x00000443,0x61726170,0x0000006d,0x00040005,0x00000446,0x61726170, + 0x0000006d,0x00040005,0x0000044b,0x61726170,0x0000006d,0x00040005,0x0000044e,0x61726170, + 0x0000006d,0x00050005,0x00000456,0x6e694d66,0x66666944,0x00000000,0x00060005,0x00000457, + 0x72754366,0x746e6572,0x706d6153,0x0073656c,0x00040005,0x00000458,0x61726170,0x0000006d, + 0x00060005,0x0000045b,0x76657270,0x73756f69,0x61746144,0x00000000,0x00040005,0x0000045c, + 0x61726170,0x0000006d,0x00040005,0x0000045e,0x61726170,0x0000006d,0x00040005,0x00000465, + 0x61726170,0x0000006d,0x00040005,0x00000467,0x61726170,0x0000006d,0x00040005,0x00000469, + 0x61726170,0x0000006d,0x00060005,0x00000470,0x53785069,0x6c706d61,0x736f5065,0x00000000, + 0x00040005,0x00000474,0x61726170,0x0000006d,0x00040005,0x00000475,0x61726170,0x0000006d, + 0x00040005,0x00000476,0x61726170,0x0000006d,0x00080005,0x00000478,0x6c694466,0x64657461, + 0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005,0x00000479,0x61726170,0x0000006d, + 0x00030005,0x0000047c,0x00765566,0x00090005,0x00000485,0x61635366,0x4164656c,0x6953646e, + 0x64656e67,0x616d754c,0x66666944,0x00000000,0x00040005,0x00000486,0x61726170,0x0000006d, + 0x00040005,0x00000488,0x61726170,0x0000006d,0x00040005,0x0000048a,0x61726170,0x0000006d, + 0x00040005,0x0000048d,0x74754f66,0x00747570,0x00040005,0x0000049f,0x61726170,0x0000006d, + 0x00040005,0x000004a1,0x61726170,0x0000006d,0x00040005,0x000004b7,0x61726170,0x0000006d, + 0x00040005,0x000004b9,0x61726170,0x0000006d,0x00040005,0x000004bc,0x61726170,0x0000006d, + 0x00070005,0x000004c3,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005, + 0x000004c9,0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000004ce, + 0x49647073,0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x000004d3,0x49647073, + 0x7265746e,0x6964656d,0x41657461,0x00000000,0x00040005,0x000004f5,0x61726170,0x0000006d, + 0x00030005,0x000004ff,0x00003076,0x00030005,0x00000501,0x00003176,0x00030005,0x00000504, + 0x00003276,0x00030005,0x00000507,0x00003376,0x00040005,0x0000050a,0x61726170,0x0000006d, + 0x00040005,0x0000050c,0x61726170,0x0000006d,0x00040005,0x0000050e,0x61726170,0x0000006d, + 0x00040005,0x00000510,0x61726170,0x0000006d,0x00030005,0x00000517,0x00003076,0x00040005, + 0x0000051a,0x61726170,0x0000006d,0x00040005,0x0000051b,0x61726170,0x0000006d,0x00030005, + 0x0000051e,0x00003176,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000522, + 0x61726170,0x0000006d,0x00030005,0x00000525,0x00003276,0x00040005,0x00000528,0x61726170, + 0x0000006d,0x00040005,0x00000529,0x61726170,0x0000006d,0x00030005,0x0000052c,0x00003376, + 0x00040005,0x0000052f,0x61726170,0x0000006d,0x00040005,0x00000530,0x61726170,0x0000006d, + 0x00040005,0x00000533,0x61726170,0x0000006d,0x00040005,0x00000535,0x61726170,0x0000006d, + 0x00040005,0x00000537,0x61726170,0x0000006d,0x00040005,0x00000539,0x61726170,0x0000006d, + 0x00040005,0x0000054a,0x61726170,0x0000006d,0x00040005,0x0000054b,0x61726170,0x0000006d, + 0x00040005,0x0000054c,0x61726170,0x0000006d,0x00040005,0x0000054d,0x61726170,0x0000006d, + 0x00040005,0x0000054e,0x61726170,0x0000006d,0x00030005,0x00000553,0x00003076,0x00040005, + 0x00000557,0x61726170,0x0000006d,0x00040005,0x00000558,0x61726170,0x0000006d,0x00030005, + 0x0000055b,0x00003176,0x00040005,0x0000055f,0x61726170,0x0000006d,0x00040005,0x00000560, + 0x61726170,0x0000006d,0x00030005,0x00000563,0x00003276,0x00040005,0x00000567,0x61726170, + 0x0000006d,0x00040005,0x00000568,0x61726170,0x0000006d,0x00030005,0x0000056b,0x00003376, + 0x00040005,0x0000056f,0x61726170,0x0000006d,0x00040005,0x00000570,0x61726170,0x0000006d, + 0x00040005,0x00000573,0x61726170,0x0000006d,0x00040005,0x00000575,0x61726170,0x0000006d, + 0x00040005,0x00000577,0x61726170,0x0000006d,0x00040005,0x00000579,0x61726170,0x0000006d, + 0x00040005,0x00000586,0x61726170,0x0000006d,0x00040005,0x00000587,0x61726170,0x0000006d, + 0x00040005,0x00000588,0x61726170,0x0000006d,0x00040005,0x00000589,0x61726170,0x0000006d, + 0x00040005,0x0000058a,0x61726170,0x0000006d,0x00030005,0x0000058f,0x00786574,0x00030005, + 0x0000059d,0x00786970,0x00030005,0x000005ab,0x00000076,0x00040005,0x000005ae,0x61726170, + 0x0000006d,0x00040005,0x000005af,0x61726170,0x0000006d,0x00040005,0x000005b3,0x61726170, + 0x0000006d,0x00040005,0x000005b5,0x61726170,0x0000006d,0x00040005,0x000005b8,0x61726170, + 0x0000006d,0x00040005,0x000005b9,0x61726170,0x0000006d,0x00040005,0x000005d6,0x61726170, + 0x0000006d,0x00040005,0x000005d7,0x61726170,0x0000006d,0x00040005,0x000005db,0x61726170, + 0x0000006d,0x00040005,0x000005dd,0x61726170,0x0000006d,0x00040005,0x000005e0,0x61726170, + 0x0000006d,0x00040005,0x000005e1,0x61726170,0x0000006d,0x00040005,0x000005fe,0x61726170, + 0x0000006d,0x00040005,0x000005ff,0x61726170,0x0000006d,0x00040005,0x00000603,0x61726170, + 0x0000006d,0x00040005,0x00000605,0x61726170,0x0000006d,0x00040005,0x00000608,0x61726170, + 0x0000006d,0x00040005,0x00000609,0x61726170,0x0000006d,0x00040005,0x00000628,0x61726170, + 0x0000006d,0x00040005,0x00000629,0x61726170,0x0000006d,0x00040005,0x0000062d,0x61726170, + 0x0000006d,0x00040005,0x0000062f,0x61726170,0x0000006d,0x00040005,0x00000632,0x61726170, + 0x0000006d,0x00040005,0x00000633,0x61726170,0x0000006d,0x00040005,0x0000063b,0x61726170, + 0x0000006d,0x00040005,0x00000640,0x61726170,0x0000006d,0x00040005,0x00000645,0x61726170, + 0x0000006d,0x00040005,0x0000064a,0x61726170,0x0000006d,0x00040005,0x00000660,0x61726170, + 0x0000006d,0x00040005,0x00000661,0x61726170,0x0000006d,0x00040005,0x00000664,0x61726170, + 0x0000006d,0x00040005,0x00000665,0x61726170,0x0000006d,0x00040005,0x0000066c,0x61726170, + 0x0000006d,0x00040005,0x0000066d,0x61726170,0x0000006d,0x00040005,0x0000066e,0x61726170, + 0x0000006d,0x00040005,0x00000680,0x61726170,0x0000006d,0x00040005,0x00000681,0x61726170, + 0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005,0x00000685,0x61726170, + 0x0000006d,0x00040005,0x0000068d,0x61726170,0x0000006d,0x00040005,0x0000068e,0x61726170, + 0x0000006d,0x00040005,0x0000068f,0x61726170,0x0000006d,0x00040005,0x000006a0,0x61726170, + 0x0000006d,0x00040005,0x000006a1,0x61726170,0x0000006d,0x00040005,0x000006a4,0x61726170, + 0x0000006d,0x00040005,0x000006a5,0x61726170,0x0000006d,0x00040005,0x000006ad,0x61726170, + 0x0000006d,0x00040005,0x000006ae,0x61726170,0x0000006d,0x00040005,0x000006af,0x61726170, + 0x0000006d,0x00040005,0x000006c1,0x61726170,0x0000006d,0x00040005,0x000006c2,0x61726170, + 0x0000006d,0x00040005,0x000006c5,0x61726170,0x0000006d,0x00040005,0x000006c6,0x61726170, + 0x0000006d,0x00040005,0x000006cf,0x61726170,0x0000006d,0x00040005,0x000006d0,0x61726170, + 0x0000006d,0x00040005,0x000006d1,0x61726170,0x0000006d,0x00040005,0x000006d5,0x61726170, + 0x0000006d,0x00040005,0x000006d7,0x61726170,0x0000006d,0x00040005,0x000006d9,0x61726170, + 0x0000006d,0x00040005,0x000006db,0x61726170,0x0000006d,0x00040005,0x000006dd,0x61726170, + 0x0000006d,0x00040005,0x000006df,0x61726170,0x0000006d,0x00030005,0x000006e2,0x00000076, + 0x00040005,0x000006e3,0x61726170,0x0000006d,0x00040005,0x000006e5,0x61726170,0x0000006d, + 0x00040005,0x000006e8,0x61726170,0x0000006d,0x00040005,0x000006fc,0x61726170,0x0000006d, + 0x00040005,0x000006fd,0x61726170,0x0000006d,0x00040005,0x000006ff,0x61726170,0x0000006d, + 0x00040005,0x00000701,0x61726170,0x0000006d,0x00040005,0x00000709,0x61726170,0x0000006d, + 0x00040005,0x0000070a,0x61726170,0x0000006d,0x00040005,0x0000070c,0x61726170,0x0000006d, + 0x00030005,0x00000713,0x00000076,0x00040005,0x0000071b,0x61726170,0x0000006d,0x00040005, + 0x0000071c,0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d,0x00040005, + 0x00000732,0x61726170,0x0000006d,0x00040005,0x00000733,0x61726170,0x0000006d,0x00040005, + 0x00000735,0x61726170,0x0000006d,0x00040005,0x00000737,0x61726170,0x0000006d,0x00040005, + 0x00000741,0x61726170,0x0000006d,0x00040005,0x00000742,0x61726170,0x0000006d,0x00040005, + 0x00000743,0x61726170,0x0000006d,0x00030005,0x0000074a,0x00000076,0x00040005,0x00000751, + 0x61726170,0x0000006d,0x00040005,0x00000752,0x61726170,0x0000006d,0x00040005,0x00000754, + 0x61726170,0x0000006d,0x00040005,0x00000768,0x61726170,0x0000006d,0x00040005,0x00000769, + 0x61726170,0x0000006d,0x00040005,0x0000076b,0x61726170,0x0000006d,0x00040005,0x0000076d, + 0x61726170,0x0000006d,0x00040005,0x00000774,0x61726170,0x0000006d,0x00040005,0x00000775, + 0x61726170,0x0000006d,0x00040005,0x00000776,0x61726170,0x0000006d,0x00030005,0x0000077d, + 0x00000076,0x00040005,0x0000077e,0x61726170,0x0000006d,0x00040005,0x00000780,0x61726170, + 0x0000006d,0x00040005,0x00000782,0x61726170,0x0000006d,0x00040005,0x0000078c,0x61726170, + 0x0000006d,0x00040005,0x0000078d,0x61726170,0x0000006d,0x00040005,0x0000078f,0x61726170, + 0x0000006d,0x00040005,0x00000791,0x61726170,0x0000006d,0x00030005,0x00000794,0x00786574, + 0x00030005,0x0000079e,0x00786970,0x00030005,0x000007a8,0x00003076,0x00040005,0x000007ab, + 0x61726170,0x0000006d,0x00040005,0x000007ac,0x61726170,0x0000006d,0x00040005,0x000007b0, + 0x61726170,0x0000006d,0x00040005,0x000007b2,0x61726170,0x0000006d,0x00040005,0x000007b4, + 0x61726170,0x0000006d,0x00040005,0x000007b5,0x61726170,0x0000006d,0x00030005,0x000007ca, + 0x00003176,0x00040005,0x000007cd,0x61726170,0x0000006d,0x00040005,0x000007ce,0x61726170, + 0x0000006d,0x00040005,0x000007d1,0x61726170,0x0000006d,0x00040005,0x000007d3,0x61726170, + 0x0000006d,0x00040005,0x000007d5,0x61726170,0x0000006d,0x00040005,0x000007d6,0x61726170, + 0x0000006d,0x00030005,0x000007eb,0x00003276,0x00040005,0x000007ee,0x61726170,0x0000006d, + 0x00040005,0x000007ef,0x61726170,0x0000006d,0x00040005,0x000007f2,0x61726170,0x0000006d, + 0x00040005,0x000007f4,0x61726170,0x0000006d,0x00040005,0x000007f6,0x61726170,0x0000006d, + 0x00040005,0x000007f7,0x61726170,0x0000006d,0x00030005,0x0000080c,0x00003376,0x00040005, + 0x0000080f,0x61726170,0x0000006d,0x00040005,0x00000810,0x61726170,0x0000006d,0x00040005, + 0x00000813,0x61726170,0x0000006d,0x00040005,0x00000815,0x61726170,0x0000006d,0x00040005, + 0x00000817,0x61726170,0x0000006d,0x00040005,0x00000818,0x61726170,0x0000006d,0x00030005, + 0x00000821,0x00000076,0x00040005,0x00000822,0x61726170,0x0000006d,0x00040005,0x00000824, + 0x61726170,0x0000006d,0x00040005,0x00000826,0x61726170,0x0000006d,0x00040005,0x00000828, + 0x61726170,0x0000006d,0x00040005,0x00000830,0x61726170,0x0000006d,0x00040005,0x00000831, + 0x61726170,0x0000006d,0x00040005,0x00000833,0x61726170,0x0000006d,0x00040005,0x00000834, + 0x61726170,0x0000006d,0x00040005,0x00000837,0x61726170,0x0000006d,0x00040005,0x00000839, + 0x61726170,0x0000006d,0x00040005,0x0000083b,0x61726170,0x0000006d,0x00040005,0x00000845, + 0x61726170,0x0000006d,0x00040005,0x00000847,0x61726170,0x0000006d,0x00040005,0x00000849, + 0x61726170,0x0000006d,0x00040005,0x0000084b,0x61726170,0x0000006d,0x00040005,0x0000084d, + 0x61726170,0x0000006d,0x00040005,0x0000084f,0x61726170,0x0000006d,0x00040005,0x0000085c, + 0x61726170,0x0000006d,0x00040005,0x0000085e,0x61726170,0x0000006d,0x00040005,0x00000860, + 0x61726170,0x0000006d,0x00040005,0x00000862,0x61726170,0x0000006d,0x00040005,0x00000864, + 0x61726170,0x0000006d,0x00040005,0x00000865,0x61726170,0x0000006d,0x00040005,0x00000872, + 0x61726170,0x0000006d,0x00040005,0x00000874,0x61726170,0x0000006d,0x00040005,0x00000876, + 0x61726170,0x0000006d,0x00040005,0x00000878,0x61726170,0x0000006d,0x00040005,0x0000087a, + 0x61726170,0x0000006d,0x00040005,0x0000087b,0x61726170,0x0000006d,0x00040005,0x00000888, + 0x61726170,0x0000006d,0x00040005,0x0000088a,0x61726170,0x0000006d,0x00040005,0x0000088c, + 0x61726170,0x0000006d,0x00040005,0x0000088d,0x61726170,0x0000006d,0x00040005,0x00000890, + 0x5f627573,0x00007978,0x00040005,0x00000893,0x61726170,0x0000006d,0x00030005,0x00000895, + 0x00000078,0x00030005,0x0000089e,0x00000079,0x00040005,0x000008a5,0x61726170,0x0000006d, + 0x00040005,0x000008a7,0x61726170,0x0000006d,0x00040005,0x000008a9,0x61726170,0x0000006d, + 0x00040005,0x000008ab,0x61726170,0x0000006d,0x00040005,0x000008ad,0x61726170,0x0000006d, + 0x00040005,0x000008af,0x61726170,0x0000006d,0x00040005,0x000008b2,0x61726170,0x0000006d, + 0x00040005,0x000008b4,0x61726170,0x0000006d,0x00040005,0x000008b6,0x61726170,0x0000006d, + 0x00040005,0x000008b8,0x61726170,0x0000006d,0x00040005,0x000008ba,0x61726170,0x0000006d, + 0x00040005,0x000008bb,0x61726170,0x0000006d,0x00040005,0x000008bd,0x61726170,0x0000006d, + 0x00040005,0x000008c5,0x61726170,0x0000006d,0x00040005,0x000008c7,0x61726170,0x0000006d, + 0x00040005,0x000008c9,0x61726170,0x0000006d,0x00040005,0x000008cf,0x61726170,0x0000006d, + 0x00040005,0x000008d2,0x61726170,0x0000006d,0x00040005,0x000008d4,0x61726170,0x0000006d, + 0x00040005,0x000008d6,0x61726170,0x0000006d,0x00040005,0x000008d8,0x61726170,0x0000006d, + 0x00040005,0x000008db,0x61726170,0x0000006d,0x00040005,0x000008dd,0x61726170,0x0000006d, + 0x00040005,0x000008df,0x61726170,0x0000006d,0x00040005,0x000008e0,0x61726170,0x0000006d, + 0x00040005,0x000008e2,0x61726170,0x0000006d,0x00040005,0x000008e3,0x61726170,0x0000006d, + 0x00040005,0x000008e5,0x61726170,0x0000006d,0x00040005,0x000008eb,0x61726170,0x0000006d, + 0x00040005,0x000008ec,0x61726170,0x0000006d,0x00040005,0x000008ee,0x61726170,0x0000006d, + 0x00040005,0x000008f0,0x61726170,0x0000006d,0x00040005,0x000008f2,0x61726170,0x0000006d, + 0x00040005,0x000008fd,0x61726170,0x0000006d,0x00040005,0x000008fe,0x61726170,0x0000006d, + 0x00040005,0x000008ff,0x61726170,0x0000006d,0x00040005,0x00000900,0x61726170,0x0000006d, + 0x00040005,0x00000901,0x61726170,0x0000006d,0x00040005,0x00000902,0x61726170,0x0000006d, + 0x00060005,0x00000905,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000907, + 0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000908, + 0x61726170,0x0000006d,0x00040005,0x0000090a,0x61726170,0x0000006d,0x00060005,0x00000910, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00060005,0x00000911,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00030047,0x00000189,0x00000002,0x00050048,0x00000189,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000189,0x00000001,0x00000023,0x00000008,0x00050048, + 0x00000189,0x00000002,0x00000023,0x00000010,0x00050048,0x00000189,0x00000003,0x00000023, + 0x00000018,0x00050048,0x00000189,0x00000004,0x00000023,0x00000020,0x00050048,0x00000189, + 0x00000005,0x00000023,0x00000028,0x00050048,0x00000189,0x00000006,0x00000023,0x00000030, + 0x00050048,0x00000189,0x00000007,0x00000023,0x00000040,0x00050048,0x00000189,0x00000008, + 0x00000023,0x00000048,0x00050048,0x00000189,0x00000009,0x00000023,0x00000050,0x00050048, + 0x00000189,0x0000000a,0x00000023,0x00000058,0x00050048,0x00000189,0x0000000b,0x00000023, + 0x00000060,0x00050048,0x00000189,0x0000000c,0x00000023,0x00000068,0x00050048,0x00000189, + 0x0000000d,0x00000023,0x0000006c,0x00050048,0x00000189,0x0000000e,0x00000023,0x00000070, + 0x00050048,0x00000189,0x0000000f,0x00000023,0x00000074,0x00050048,0x00000189,0x00000010, + 0x00000023,0x00000078,0x00050048,0x00000189,0x00000011,0x00000023,0x0000007c,0x00050048, + 0x00000189,0x00000012,0x00000023,0x00000080,0x00050048,0x00000189,0x00000013,0x00000023, + 0x00000084,0x00050048,0x00000189,0x00000014,0x00000023,0x00000088,0x00050048,0x00000189, + 0x00000015,0x00000023,0x0000008c,0x00050048,0x00000189,0x00000016,0x00000023,0x00000090, + 0x00040047,0x0000018b,0x00000021,0x0000000b,0x00040047,0x0000018b,0x00000022,0x00000000, + 0x00030047,0x000001a7,0x00000002,0x00050048,0x000001a7,0x00000000,0x00000023,0x00000000, + 0x00050048,0x000001a7,0x00000001,0x00000023,0x00000004,0x00050048,0x000001a7,0x00000002, + 0x00000023,0x00000008,0x00050048,0x000001a7,0x00000003,0x00000023,0x00000010,0x00040047, + 0x000001a9,0x00000021,0x0000000c,0x00040047,0x000001a9,0x00000022,0x00000000,0x00040047, + 0x000001bb,0x00000021,0x00000000,0x00040047,0x000001bb,0x00000022,0x00000000,0x00040047, + 0x000001c3,0x00000021,0x00000001,0x00040047,0x000001c3,0x00000022,0x00000000,0x00040047, + 0x000001ca,0x00000021,0x00000002,0x00040047,0x000001ca,0x00000022,0x00000000,0x00040047, + 0x000001d2,0x00000021,0x00000003,0x00040047,0x000001d2,0x00000022,0x00000000,0x00040047, + 0x000001e6,0x00000021,0x00000005,0x00040047,0x000001e6,0x00000022,0x00000000,0x00040047, + 0x000001f0,0x00000021,0x00000006,0x00040047,0x000001f0,0x00000022,0x00000000,0x00040047, + 0x000001fa,0x00000021,0x00000007,0x00040047,0x000001fa,0x00000022,0x00000000,0x00040047, + 0x00000204,0x00000021,0x00000008,0x00040047,0x00000204,0x00000022,0x00000000,0x00040047, + 0x0000020f,0x00000021,0x00000009,0x00040047,0x0000020f,0x00000022,0x00000000,0x00030047, + 0x00000219,0x00000017,0x00040047,0x00000219,0x00000021,0x0000000a,0x00040047,0x00000219, + 0x00000022,0x00000000,0x00030047,0x00000260,0x00000017,0x00040047,0x00000260,0x00000021, + 0x00000004,0x00040047,0x00000260,0x00000022,0x00000000,0x00040047,0x00000905,0x0000000b, + 0x0000001a,0x00040047,0x00000907,0x0000000b,0x0000001d,0x00040047,0x00000910,0x00000021, + 0x000003e8,0x00040047,0x00000910,0x00000022,0x00000000,0x00040047,0x00000911,0x00000021, + 0x000003e9,0x00040047,0x00000911,0x00000022,0x00000000,0x00040047,0x0000091a,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008, + 0x00000006,0x00000007,0x00000007,0x00000007,0x00030016,0x00000013,0x00000020,0x00040020, + 0x00000014,0x00000007,0x00000013,0x00050021,0x00000015,0x00000013,0x00000014,0x00000014, + 0x00040015,0x0000001a,0x00000020,0x00000001,0x00040020,0x0000001b,0x00000007,0x0000001a, + 0x00050021,0x0000001c,0x0000001a,0x0000001b,0x0000001b,0x00040017,0x0000002d,0x00000006, + 0x00000002,0x00040021,0x0000002e,0x0000002d,0x00000007,0x00040017,0x00000032,0x0000001a, + 0x00000002,0x00030021,0x00000033,0x00000032,0x00040017,0x00000038,0x00000013,0x00000002, + 0x00030021,0x00000039,0x00000038,0x00030021,0x0000003e,0x00000013,0x00030021,0x00000041, + 0x00000006,0x00030021,0x00000046,0x0000002d,0x00040020,0x00000049,0x00000007,0x00000032, + 0x00040021,0x0000004a,0x00000013,0x00000049,0x00040021,0x00000051,0x00000038,0x00000049, + 0x00050021,0x00000057,0x00000038,0x00000049,0x00000007,0x00040020,0x0000005c,0x00000007, + 0x00000038,0x00060021,0x0000005d,0x00000002,0x00000049,0x0000005c,0x00000007,0x00040021, + 0x00000063,0x00000002,0x00000007,0x00050021,0x00000069,0x00000013,0x00000013,0x00000013, + 0x00020014,0x0000006e,0x00040021,0x0000006f,0x0000006e,0x0000005c,0x00060021,0x00000073, + 0x00000032,0x00000049,0x00000049,0x00000049,0x0004002b,0x00000006,0x00000081,0x00000005, + 0x0004001c,0x00000082,0x00000013,0x00000081,0x0003001e,0x00000083,0x00000082,0x00040020, + 0x00000084,0x00000007,0x00000083,0x00040021,0x00000085,0x00000002,0x00000084,0x00060021, + 0x00000089,0x00000013,0x00000049,0x00000084,0x00000084,0x00040021,0x0000008f,0x00000083, + 0x0000005c,0x0004001e,0x00000093,0x00000083,0x0000006e,0x00050021,0x00000094,0x00000093, + 0x0000005c,0x0000005c,0x00060021,0x00000099,0x00000013,0x00000049,0x0000005c,0x0000005c, + 0x00040017,0x0000009f,0x00000013,0x00000004,0x00050021,0x000000a0,0x0000009f,0x0000005c, + 0x00000007,0x00050021,0x000000a5,0x0000009f,0x00000049,0x00000007,0x00040020,0x000000aa, + 0x00000007,0x0000009f,0x00070021,0x000000ab,0x0000009f,0x000000aa,0x000000aa,0x000000aa, + 0x000000aa,0x00070021,0x000000b2,0x00000002,0x00000049,0x000000aa,0x00000007,0x00000007, + 0x00050021,0x000000b9,0x0000009f,0x00000007,0x00000007,0x00060021,0x000000be,0x00000002, + 0x00000007,0x00000007,0x000000aa,0x00060021,0x000000c6,0x0000006e,0x00000007,0x00000007, + 0x00000007,0x00040021,0x000000cc,0x0000009f,0x000000aa,0x00040020,0x000000d0,0x00000007, + 0x0000002d,0x00080021,0x000000d1,0x0000009f,0x000000d0,0x000000d0,0x000000d0,0x000000d0, + 0x00000007,0x00050021,0x000000d9,0x0000009f,0x000000d0,0x00000007,0x00090021,0x000000e9, + 0x00000002,0x00000007,0x00000007,0x000000d0,0x00000007,0x00000007,0x00000007,0x00070021, + 0x00000112,0x00000002,0x000000d0,0x00000007,0x00000007,0x00000007,0x00070021,0x00000119, + 0x00000002,0x00000007,0x00000007,0x00000007,0x00000007,0x000a0021,0x00000120,0x00000002, + 0x00000007,0x00000007,0x000000d0,0x00000007,0x00000007,0x00000007,0x00000007,0x00080021, + 0x0000012a,0x00000002,0x000000d0,0x00000007,0x00000007,0x00000007,0x00000007,0x00090021, + 0x00000132,0x00000002,0x000000d0,0x00000007,0x00000007,0x00000007,0x00000007,0x000000d0, + 0x00040017,0x0000013b,0x00000006,0x00000003,0x00040020,0x0000013c,0x00000007,0x0000013b, + 0x00050021,0x0000013d,0x00000002,0x0000013c,0x00000007,0x0004002b,0x0000001a,0x0000014c, + 0x00000000,0x0004002b,0x00000006,0x0000016b,0x00000002,0x0004002b,0x00000006,0x0000016c, + 0x00000003,0x0004002b,0x00000006,0x00000172,0x00000001,0x0019001e,0x00000189,0x00000032, + 0x00000032,0x00000032,0x00000032,0x00000032,0x00000032,0x0000009f,0x00000038,0x00000038, + 0x00000038,0x00000038,0x00000038,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013, + 0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00040020,0x0000018a, + 0x00000002,0x00000189,0x0004003b,0x0000018a,0x0000018b,0x00000002,0x00040020,0x0000018c, + 0x00000002,0x00000032,0x0004002b,0x0000001a,0x00000191,0x00000001,0x0004002b,0x0000001a, + 0x00000196,0x00000007,0x00040020,0x00000197,0x00000002,0x00000038,0x0004002b,0x0000001a, + 0x0000019c,0x00000008,0x0004002b,0x0000001a,0x000001a1,0x0000000f,0x00040020,0x000001a2, + 0x00000002,0x00000013,0x0006001e,0x000001a7,0x00000006,0x00000006,0x0000002d,0x0000002d, + 0x00040020,0x000001a8,0x00000002,0x000001a7,0x0004003b,0x000001a8,0x000001a9,0x00000002, + 0x00040020,0x000001aa,0x00000002,0x00000006,0x0004002b,0x0000001a,0x000001b3,0x00000002, + 0x00040020,0x000001b4,0x00000002,0x0000002d,0x00090019,0x000001b9,0x00000013,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001ba,0x00000000, + 0x000001b9,0x0004003b,0x000001ba,0x000001bb,0x00000000,0x0004002b,0x00000006,0x000001bf, + 0x00000000,0x0004003b,0x000001ba,0x000001c3,0x00000000,0x0004003b,0x000001ba,0x000001ca, + 0x00000000,0x0004003b,0x000001ba,0x000001d2,0x00000000,0x0005002c,0x00000032,0x000001d4, + 0x0000014c,0x0000014c,0x0004002b,0x00000013,0x000001d8,0x00000000,0x0004002b,0x00000013, + 0x000001dc,0x3f800000,0x00090019,0x000001e4,0x00000013,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000007,0x00040020,0x000001e5,0x00000000,0x000001e4,0x0004003b, + 0x000001e5,0x000001e6,0x00000000,0x0004003b,0x000001e5,0x000001f0,0x00000000,0x0004003b, + 0x000001e5,0x000001fa,0x00000000,0x0004003b,0x000001e5,0x00000204,0x00000000,0x0004002b, + 0x00000006,0x0000020b,0x00000004,0x0004003b,0x000001e5,0x0000020f,0x00000000,0x0004003b, + 0x000001e5,0x00000219,0x00000000,0x0005002c,0x00000038,0x0000021f,0x000001d8,0x000001d8, + 0x00090019,0x0000025e,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000021,0x00040020,0x0000025f,0x00000000,0x0000025e,0x0004003b,0x0000025f,0x00000260, + 0x00000000,0x00040020,0x00000261,0x0000000b,0x00000006,0x00040017,0x00000265,0x00000006, + 0x00000004,0x0007002c,0x00000265,0x00000266,0x000001bf,0x000001bf,0x000001bf,0x000001bf, + 0x00040020,0x000002af,0x00000004,0x00000006,0x0004003b,0x000002af,0x000002b0,0x00000004, + 0x0004002b,0x0000001a,0x000002ba,0x00000003,0x0004002b,0x0000001a,0x000002cd,0x00000004, + 0x0004002b,0x00000013,0x0000035e,0x477fdf00,0x0004002b,0x00000013,0x00000372,0x00800000, + 0x0004002b,0x0000001a,0x0000037d,0x00000005,0x0004002b,0x00000013,0x00000380,0x477fe000, + 0x0004002b,0x00000013,0x0000038d,0x387fda40,0x0004001c,0x000003d9,0x00000032,0x00000081, + 0x0004002b,0x0000001a,0x000003da,0xffffffff,0x0005002c,0x00000032,0x000003db,0x000003da, + 0x0000014c,0x0005002c,0x00000032,0x000003dc,0x00000191,0x0000014c,0x0005002c,0x00000032, + 0x000003dd,0x0000014c,0x000003da,0x0005002c,0x00000032,0x000003de,0x0000014c,0x00000191, + 0x0008002c,0x000003d9,0x000003df,0x000001d4,0x000003db,0x000003dc,0x000003dd,0x000003de, + 0x00040020,0x000003e5,0x00000007,0x000003d9,0x00040020,0x00000413,0x00000007,0x00000093, + 0x00040020,0x00000418,0x00000007,0x0000006e,0x0004002b,0x00000013,0x0000047f,0x3f000000, + 0x0007002c,0x0000009f,0x0000048e,0x000001d8,0x000001d8,0x000001d8,0x000001d8,0x0004002b, + 0x00000013,0x000004af,0x3e800000,0x0004002b,0x00000006,0x000004bf,0x00000010,0x0004001c, + 0x000004c0,0x00000013,0x000004bf,0x0004001c,0x000004c1,0x000004c0,0x000004bf,0x00040020, + 0x000004c2,0x00000004,0x000004c1,0x0004003b,0x000004c2,0x000004c3,0x00000004,0x00040020, + 0x000004c6,0x00000004,0x00000013,0x0004003b,0x000004c2,0x000004c9,0x00000004,0x0004003b, + 0x000004c2,0x000004ce,0x00000004,0x0004003b,0x000004c2,0x000004d3,0x00000004,0x0004002b, + 0x00000006,0x000004ef,0x00000d48,0x0004002b,0x00000006,0x000004f0,0x00000108,0x0005002c, + 0x0000002d,0x0000053f,0x000001bf,0x000001bf,0x0005002c,0x0000002d,0x00000542,0x000001bf, + 0x00000172,0x0005002c,0x0000002d,0x00000545,0x00000172,0x000001bf,0x0005002c,0x0000002d, + 0x00000548,0x00000172,0x00000172,0x0004002b,0x00000006,0x00000591,0x00000040,0x0004002b, + 0x00000006,0x0000059f,0x00000020,0x0004001c,0x000005a9,0x0000009f,0x0000020b,0x00040020, + 0x000005aa,0x00000007,0x000005a9,0x0004002b,0x00000006,0x00000678,0x00000008,0x0004002b, + 0x00000006,0x000007af,0x00000006,0x0004002b,0x00000006,0x0000081c,0x00000007,0x0004002b, + 0x0000001a,0x00000899,0x00000006,0x00040020,0x00000904,0x00000001,0x0000013b,0x0004003b, + 0x00000904,0x00000905,0x00000001,0x00040020,0x00000906,0x00000001,0x00000006,0x0004003b, + 0x00000906,0x00000907,0x00000001,0x0004002b,0x00000013,0x0000090d,0x37801002,0x0002001a, + 0x0000090e,0x00040020,0x0000090f,0x00000000,0x0000090e,0x0004003b,0x0000090f,0x00000910, + 0x00000000,0x0004003b,0x0000090f,0x00000911,0x00000000,0x0004002b,0x00000013,0x00000912, + 0x7f7fffff,0x0004002b,0x00000013,0x00000913,0x3a1fe868,0x0004002b,0x00000013,0x00000914, + 0x3d800000,0x0004002b,0x00000013,0x00000915,0x3d3d70a4,0x0004002b,0x00000013,0x00000916, + 0x3e400000,0x0004002b,0x00000013,0x00000917,0x40000000,0x0004002b,0x00000013,0x00000918, + 0x461c4000,0x0004002b,0x00000006,0x00000919,0x00000100,0x0006002c,0x0000013b,0x0000091a, + 0x00000919,0x00000172,0x00000172,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000013c,0x00000908,0x00000007,0x0004003b,0x00000007, + 0x0000090a,0x00000007,0x0004003d,0x0000013b,0x00000909,0x00000905,0x0003003e,0x00000908, + 0x00000909,0x0004003d,0x00000006,0x0000090b,0x00000907,0x0003003e,0x0000090a,0x0000090b, + 0x00060039,0x00000002,0x0000090c,0x00000140,0x00000908,0x0000090a,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d, + 0x0004003d,0x00000006,0x00000142,0x00000009,0x0004003d,0x00000006,0x00000143,0x0000000a, + 0x0004007c,0x0000001a,0x00000144,0x00000143,0x0004003d,0x00000006,0x00000145,0x0000000b, + 0x0004007c,0x0000001a,0x00000146,0x00000145,0x000600cb,0x00000006,0x00000147,0x00000142, + 0x00000144,0x00000146,0x000200fe,0x00000147,0x00010038,0x00050036,0x00000006,0x00000011, + 0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000006,0x0000014a, + 0x0000000e,0x0004003d,0x00000006,0x0000014b,0x0000000f,0x0004003d,0x00000006,0x0000014d, + 0x00000010,0x0004007c,0x0000001a,0x0000014e,0x0000014d,0x000700c9,0x00000006,0x0000014f, + 0x0000014a,0x0000014b,0x0000014c,0x0000014e,0x000200fe,0x0000014f,0x00010038,0x00050036, + 0x00000013,0x00000018,0x00000000,0x00000015,0x00030037,0x00000014,0x00000016,0x00030037, + 0x00000014,0x00000017,0x000200f8,0x00000019,0x0004003d,0x00000013,0x00000152,0x00000016, + 0x0004003d,0x00000013,0x00000153,0x00000017,0x0007000c,0x00000013,0x00000154,0x00000001, + 0x00000025,0x00000152,0x00000153,0x000200fe,0x00000154,0x00010038,0x00050036,0x0000001a, + 0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x00030037,0x0000001b, + 0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a,0x00000157,0x0000001d,0x0004003d, + 0x0000001a,0x00000158,0x0000001e,0x0007000c,0x0000001a,0x00000159,0x00000001,0x00000027, + 0x00000157,0x00000158,0x000200fe,0x00000159,0x00010038,0x00050036,0x00000013,0x00000023, + 0x00000000,0x00000015,0x00030037,0x00000014,0x00000021,0x00030037,0x00000014,0x00000022, + 0x000200f8,0x00000024,0x0004003d,0x00000013,0x0000015c,0x00000021,0x0004003d,0x00000013, + 0x0000015d,0x00000022,0x0007000c,0x00000013,0x0000015e,0x00000001,0x00000028,0x0000015c, + 0x0000015d,0x000200fe,0x0000015e,0x00010038,0x00050036,0x0000001a,0x00000027,0x00000000, + 0x0000001c,0x00030037,0x0000001b,0x00000025,0x00030037,0x0000001b,0x00000026,0x000200f8, + 0x00000028,0x0004003d,0x0000001a,0x00000161,0x00000025,0x0004003d,0x0000001a,0x00000162, + 0x00000026,0x0007000c,0x0000001a,0x00000163,0x00000001,0x0000002a,0x00000161,0x00000162, + 0x000200fe,0x00000163,0x00010038,0x00050036,0x00000013,0x0000002b,0x00000000,0x00000015, + 0x00030037,0x00000014,0x00000029,0x00030037,0x00000014,0x0000002a,0x000200f8,0x0000002c, + 0x0004003d,0x00000013,0x00000166,0x00000029,0x0004003d,0x00000013,0x00000167,0x0000002a, + 0x0007000c,0x00000013,0x00000168,0x00000001,0x0000001a,0x00000166,0x00000167,0x000200fe, + 0x00000168,0x00010038,0x00050036,0x0000002d,0x00000030,0x00000000,0x0000002e,0x00030037, + 0x00000007,0x0000002f,0x000200f8,0x00000031,0x0004003b,0x00000007,0x0000016d,0x00000007, + 0x0004003b,0x00000007,0x0000016f,0x00000007,0x0004003b,0x00000007,0x00000170,0x00000007, + 0x0004003b,0x00000007,0x00000173,0x00000007,0x0004003b,0x00000007,0x00000174,0x00000007, + 0x0004003b,0x00000007,0x00000176,0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007, + 0x0004003b,0x00000007,0x0000017a,0x00000007,0x0004003b,0x00000007,0x0000017b,0x00000007, + 0x0004003b,0x00000007,0x0000017d,0x00000007,0x0004003b,0x00000007,0x0000017f,0x00000007, + 0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b,0x00000007,0x00000182,0x00000007, + 0x0004003b,0x00000007,0x00000183,0x00000007,0x0004003b,0x00000007,0x00000184,0x00000007, + 0x0004003d,0x00000006,0x0000016e,0x0000002f,0x0003003e,0x0000016d,0x0000016e,0x0003003e, + 0x0000016f,0x0000016b,0x0003003e,0x00000170,0x0000016c,0x00070039,0x00000006,0x00000171, + 0x0000000c,0x0000016d,0x0000016f,0x00000170,0x0003003e,0x00000173,0x00000171,0x0004003d, + 0x00000006,0x00000175,0x0000002f,0x0003003e,0x00000174,0x00000175,0x0003003e,0x00000176, + 0x00000172,0x00070039,0x00000006,0x00000177,0x00000011,0x00000173,0x00000174,0x00000176, + 0x0004003d,0x00000006,0x00000179,0x0000002f,0x0003003e,0x00000178,0x00000179,0x0003003e, + 0x0000017a,0x0000016c,0x0003003e,0x0000017b,0x0000016c,0x00070039,0x00000006,0x0000017c, + 0x0000000c,0x00000178,0x0000017a,0x0000017b,0x0004003d,0x00000006,0x0000017e,0x0000002f, + 0x0003003e,0x0000017d,0x0000017e,0x0003003e,0x0000017f,0x00000172,0x0003003e,0x00000180, + 0x0000016b,0x00070039,0x00000006,0x00000181,0x0000000c,0x0000017d,0x0000017f,0x00000180, + 0x0003003e,0x00000182,0x0000017c,0x0003003e,0x00000183,0x00000181,0x0003003e,0x00000184, + 0x0000016b,0x00070039,0x00000006,0x00000185,0x00000011,0x00000182,0x00000183,0x00000184, + 0x00050050,0x0000002d,0x00000186,0x00000177,0x00000185,0x000200fe,0x00000186,0x00010038, + 0x00050036,0x00000032,0x00000034,0x00000000,0x00000033,0x000200f8,0x00000035,0x00050041, + 0x0000018c,0x0000018d,0x0000018b,0x0000014c,0x0004003d,0x00000032,0x0000018e,0x0000018d, + 0x000200fe,0x0000018e,0x00010038,0x00050036,0x00000032,0x00000036,0x00000000,0x00000033, + 0x000200f8,0x00000037,0x00050041,0x0000018c,0x00000192,0x0000018b,0x00000191,0x0004003d, + 0x00000032,0x00000193,0x00000192,0x000200fe,0x00000193,0x00010038,0x00050036,0x00000038, + 0x0000003a,0x00000000,0x00000039,0x000200f8,0x0000003b,0x00050041,0x00000197,0x00000198, + 0x0000018b,0x00000196,0x0004003d,0x00000038,0x00000199,0x00000198,0x000200fe,0x00000199, + 0x00010038,0x00050036,0x00000038,0x0000003c,0x00000000,0x00000039,0x000200f8,0x0000003d, + 0x00050041,0x00000197,0x0000019d,0x0000018b,0x0000019c,0x0004003d,0x00000038,0x0000019e, + 0x0000019d,0x000200fe,0x0000019e,0x00010038,0x00050036,0x00000013,0x0000003f,0x00000000, + 0x0000003e,0x000200f8,0x00000040,0x00050041,0x000001a2,0x000001a3,0x0000018b,0x000001a1, + 0x0004003d,0x00000013,0x000001a4,0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036, + 0x00000006,0x00000042,0x00000000,0x00000041,0x000200f8,0x00000043,0x00050041,0x000001aa, + 0x000001ab,0x000001a9,0x0000014c,0x0004003d,0x00000006,0x000001ac,0x000001ab,0x000200fe, + 0x000001ac,0x00010038,0x00050036,0x00000006,0x00000044,0x00000000,0x00000041,0x000200f8, + 0x00000045,0x00050041,0x000001aa,0x000001af,0x000001a9,0x00000191,0x0004003d,0x00000006, + 0x000001b0,0x000001af,0x000200fe,0x000001b0,0x00010038,0x00050036,0x0000002d,0x00000047, + 0x00000000,0x00000046,0x000200f8,0x00000048,0x00050041,0x000001b4,0x000001b5,0x000001a9, + 0x000001b3,0x0004003d,0x0000002d,0x000001b6,0x000001b5,0x000200fe,0x000001b6,0x00010038, + 0x00050036,0x00000013,0x0000004c,0x00000000,0x0000004a,0x00030037,0x00000049,0x0000004b, + 0x000200f8,0x0000004d,0x0004003d,0x000001b9,0x000001bc,0x000001bb,0x0004003d,0x00000032, + 0x000001bd,0x0000004b,0x0007005f,0x0000009f,0x000001be,0x000001bc,0x000001bd,0x00000002, + 0x0000014c,0x00050051,0x00000013,0x000001c0,0x000001be,0x00000000,0x000200fe,0x000001c0, + 0x00010038,0x00050036,0x00000013,0x0000004f,0x00000000,0x0000004a,0x00030037,0x00000049, + 0x0000004e,0x000200f8,0x00000050,0x0004003d,0x000001b9,0x000001c4,0x000001c3,0x0004003d, + 0x00000032,0x000001c5,0x0000004e,0x0007005f,0x0000009f,0x000001c6,0x000001c4,0x000001c5, + 0x00000002,0x0000014c,0x00050051,0x00000013,0x000001c7,0x000001c6,0x00000000,0x000200fe, + 0x000001c7,0x00010038,0x00050036,0x00000038,0x00000053,0x00000000,0x00000051,0x00030037, + 0x00000049,0x00000052,0x000200f8,0x00000054,0x0004003d,0x000001b9,0x000001cb,0x000001ca, + 0x0004003d,0x00000032,0x000001cc,0x00000052,0x0007005f,0x0000009f,0x000001cd,0x000001cb, + 0x000001cc,0x00000002,0x0000014c,0x0007004f,0x00000038,0x000001ce,0x000001cd,0x000001cd, + 0x00000000,0x00000001,0x000200fe,0x000001ce,0x00010038,0x00050036,0x00000013,0x00000055, + 0x00000000,0x0000003e,0x000200f8,0x00000056,0x0004003b,0x00000014,0x000001d1,0x00000007, + 0x0004003d,0x000001b9,0x000001d3,0x000001d2,0x0007005f,0x0000009f,0x000001d5,0x000001d3, + 0x000001d4,0x00000002,0x0000014c,0x00050051,0x00000013,0x000001d6,0x000001d5,0x00000000, + 0x0003003e,0x000001d1,0x000001d6,0x0004003d,0x00000013,0x000001d7,0x000001d1,0x000500b4, + 0x0000006e,0x000001d9,0x000001d7,0x000001d8,0x000300f7,0x000001db,0x00000000,0x000400fa, + 0x000001d9,0x000001da,0x000001db,0x000200f8,0x000001da,0x0003003e,0x000001d1,0x000001dc, + 0x000200f9,0x000001db,0x000200f8,0x000001db,0x0004003d,0x00000013,0x000001dd,0x000001d1, + 0x000200fe,0x000001dd,0x00010038,0x00050036,0x00000038,0x0000005a,0x00000000,0x00000057, + 0x00030037,0x00000049,0x00000058,0x00030037,0x00000007,0x00000059,0x000200f8,0x0000005b, + 0x0004003d,0x00000006,0x000001e0,0x00000059,0x000500aa,0x0000006e,0x000001e1,0x000001e0, + 0x000001bf,0x000300f7,0x000001e3,0x00000000,0x000400fa,0x000001e1,0x000001e2,0x000001e3, + 0x000200f8,0x000001e2,0x0004003d,0x000001e4,0x000001e7,0x000001e6,0x0004003d,0x00000032, + 0x000001e8,0x00000058,0x00050062,0x0000009f,0x000001e9,0x000001e7,0x000001e8,0x0007004f, + 0x00000038,0x000001ea,0x000001e9,0x000001e9,0x00000000,0x00000001,0x000200fe,0x000001ea, + 0x000200f8,0x000001e3,0x0004003d,0x00000006,0x000001ec,0x00000059,0x000500aa,0x0000006e, + 0x000001ed,0x000001ec,0x00000172,0x000300f7,0x000001ef,0x00000000,0x000400fa,0x000001ed, + 0x000001ee,0x000001ef,0x000200f8,0x000001ee,0x0004003d,0x000001e4,0x000001f1,0x000001f0, + 0x0004003d,0x00000032,0x000001f2,0x00000058,0x00050062,0x0000009f,0x000001f3,0x000001f1, + 0x000001f2,0x0007004f,0x00000038,0x000001f4,0x000001f3,0x000001f3,0x00000000,0x00000001, + 0x000200fe,0x000001f4,0x000200f8,0x000001ef,0x0004003d,0x00000006,0x000001f6,0x00000059, + 0x000500aa,0x0000006e,0x000001f7,0x000001f6,0x0000016b,0x000300f7,0x000001f9,0x00000000, + 0x000400fa,0x000001f7,0x000001f8,0x000001f9,0x000200f8,0x000001f8,0x0004003d,0x000001e4, + 0x000001fb,0x000001fa,0x0004003d,0x00000032,0x000001fc,0x00000058,0x00050062,0x0000009f, + 0x000001fd,0x000001fb,0x000001fc,0x0007004f,0x00000038,0x000001fe,0x000001fd,0x000001fd, + 0x00000000,0x00000001,0x000200fe,0x000001fe,0x000200f8,0x000001f9,0x0004003d,0x00000006, + 0x00000200,0x00000059,0x000500aa,0x0000006e,0x00000201,0x00000200,0x0000016c,0x000300f7, + 0x00000203,0x00000000,0x000400fa,0x00000201,0x00000202,0x00000203,0x000200f8,0x00000202, + 0x0004003d,0x000001e4,0x00000205,0x00000204,0x0004003d,0x00000032,0x00000206,0x00000058, + 0x00050062,0x0000009f,0x00000207,0x00000205,0x00000206,0x0007004f,0x00000038,0x00000208, + 0x00000207,0x00000207,0x00000000,0x00000001,0x000200fe,0x00000208,0x000200f8,0x00000203, + 0x0004003d,0x00000006,0x0000020a,0x00000059,0x000500aa,0x0000006e,0x0000020c,0x0000020a, + 0x0000020b,0x000300f7,0x0000020e,0x00000000,0x000400fa,0x0000020c,0x0000020d,0x0000020e, + 0x000200f8,0x0000020d,0x0004003d,0x000001e4,0x00000210,0x0000020f,0x0004003d,0x00000032, + 0x00000211,0x00000058,0x00050062,0x0000009f,0x00000212,0x00000210,0x00000211,0x0007004f, + 0x00000038,0x00000213,0x00000212,0x00000212,0x00000000,0x00000001,0x000200fe,0x00000213, + 0x000200f8,0x0000020e,0x0004003d,0x00000006,0x00000215,0x00000059,0x000500aa,0x0000006e, + 0x00000216,0x00000215,0x00000081,0x000300f7,0x00000218,0x00000000,0x000400fa,0x00000216, + 0x00000217,0x00000218,0x000200f8,0x00000217,0x0004003d,0x000001e4,0x0000021a,0x00000219, + 0x0004003d,0x00000032,0x0000021b,0x00000058,0x00050062,0x0000009f,0x0000021c,0x0000021a, + 0x0000021b,0x0007004f,0x00000038,0x0000021d,0x0000021c,0x0000021c,0x00000000,0x00000001, + 0x000200fe,0x0000021d,0x000200f8,0x00000218,0x000200fe,0x0000021f,0x00010038,0x00050036, + 0x00000002,0x00000061,0x00000000,0x0000005d,0x00030037,0x00000049,0x0000005e,0x00030037, + 0x0000005c,0x0000005f,0x00030037,0x00000007,0x00000060,0x000200f8,0x00000062,0x0004003d, + 0x00000006,0x00000222,0x00000060,0x000500aa,0x0000006e,0x00000223,0x00000222,0x000001bf, + 0x000300f7,0x00000225,0x00000000,0x000400fa,0x00000223,0x00000224,0x00000225,0x000200f8, + 0x00000224,0x0004003d,0x000001e4,0x00000226,0x000001e6,0x0004003d,0x00000032,0x00000227, + 0x0000005e,0x0004003d,0x00000038,0x00000228,0x0000005f,0x00050051,0x00000013,0x00000229, + 0x00000228,0x00000000,0x00050051,0x00000013,0x0000022a,0x00000228,0x00000001,0x00070050, + 0x0000009f,0x0000022b,0x00000229,0x0000022a,0x000001d8,0x000001d8,0x00040063,0x00000226, + 0x00000227,0x0000022b,0x000200f9,0x00000225,0x000200f8,0x00000225,0x0004003d,0x00000006, + 0x0000022c,0x00000060,0x000500aa,0x0000006e,0x0000022d,0x0000022c,0x00000172,0x000300f7, + 0x0000022f,0x00000000,0x000400fa,0x0000022d,0x0000022e,0x0000022f,0x000200f8,0x0000022e, + 0x0004003d,0x000001e4,0x00000230,0x000001f0,0x0004003d,0x00000032,0x00000231,0x0000005e, + 0x0004003d,0x00000038,0x00000232,0x0000005f,0x00050051,0x00000013,0x00000233,0x00000232, + 0x00000000,0x00050051,0x00000013,0x00000234,0x00000232,0x00000001,0x00070050,0x0000009f, + 0x00000235,0x00000233,0x00000234,0x000001d8,0x000001d8,0x00040063,0x00000230,0x00000231, + 0x00000235,0x000200f9,0x0000022f,0x000200f8,0x0000022f,0x0004003d,0x00000006,0x00000236, + 0x00000060,0x000500aa,0x0000006e,0x00000237,0x00000236,0x0000016b,0x000300f7,0x00000239, + 0x00000000,0x000400fa,0x00000237,0x00000238,0x00000239,0x000200f8,0x00000238,0x0004003d, + 0x000001e4,0x0000023a,0x000001fa,0x0004003d,0x00000032,0x0000023b,0x0000005e,0x0004003d, + 0x00000038,0x0000023c,0x0000005f,0x00050051,0x00000013,0x0000023d,0x0000023c,0x00000000, + 0x00050051,0x00000013,0x0000023e,0x0000023c,0x00000001,0x00070050,0x0000009f,0x0000023f, + 0x0000023d,0x0000023e,0x000001d8,0x000001d8,0x00040063,0x0000023a,0x0000023b,0x0000023f, + 0x000200f9,0x00000239,0x000200f8,0x00000239,0x0004003d,0x00000006,0x00000240,0x00000060, + 0x000500aa,0x0000006e,0x00000241,0x00000240,0x0000016c,0x000300f7,0x00000243,0x00000000, + 0x000400fa,0x00000241,0x00000242,0x00000243,0x000200f8,0x00000242,0x0004003d,0x000001e4, + 0x00000244,0x00000204,0x0004003d,0x00000032,0x00000245,0x0000005e,0x0004003d,0x00000038, + 0x00000246,0x0000005f,0x00050051,0x00000013,0x00000247,0x00000246,0x00000000,0x00050051, + 0x00000013,0x00000248,0x00000246,0x00000001,0x00070050,0x0000009f,0x00000249,0x00000247, + 0x00000248,0x000001d8,0x000001d8,0x00040063,0x00000244,0x00000245,0x00000249,0x000200f9, + 0x00000243,0x000200f8,0x00000243,0x0004003d,0x00000006,0x0000024a,0x00000060,0x000500aa, + 0x0000006e,0x0000024b,0x0000024a,0x0000020b,0x000300f7,0x0000024d,0x00000000,0x000400fa, + 0x0000024b,0x0000024c,0x0000024d,0x000200f8,0x0000024c,0x0004003d,0x000001e4,0x0000024e, + 0x0000020f,0x0004003d,0x00000032,0x0000024f,0x0000005e,0x0004003d,0x00000038,0x00000250, + 0x0000005f,0x00050051,0x00000013,0x00000251,0x00000250,0x00000000,0x00050051,0x00000013, + 0x00000252,0x00000250,0x00000001,0x00070050,0x0000009f,0x00000253,0x00000251,0x00000252, + 0x000001d8,0x000001d8,0x00040063,0x0000024e,0x0000024f,0x00000253,0x000200f9,0x0000024d, + 0x000200f8,0x0000024d,0x0004003d,0x00000006,0x00000254,0x00000060,0x000500aa,0x0000006e, + 0x00000255,0x00000254,0x00000081,0x000300f7,0x00000257,0x00000000,0x000400fa,0x00000255, + 0x00000256,0x00000257,0x000200f8,0x00000256,0x0004003d,0x000001e4,0x00000258,0x00000219, + 0x0004003d,0x00000032,0x00000259,0x0000005e,0x0004003d,0x00000038,0x0000025a,0x0000005f, + 0x00050051,0x00000013,0x0000025b,0x0000025a,0x00000000,0x00050051,0x00000013,0x0000025c, + 0x0000025a,0x00000001,0x00070050,0x0000009f,0x0000025d,0x0000025b,0x0000025c,0x000001d8, + 0x000001d8,0x00040063,0x00000258,0x00000259,0x0000025d,0x000200f9,0x00000257,0x000200f8, + 0x00000257,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000065,0x00000000,0x00000063, + 0x00030037,0x00000007,0x00000064,0x000200f8,0x00000066,0x0006003c,0x00000261,0x00000262, + 0x00000260,0x000001d4,0x000001bf,0x000700ea,0x00000006,0x00000263,0x00000262,0x00000172, + 0x000001bf,0x00000172,0x0003003e,0x00000064,0x00000263,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000067,0x00000000,0x00000003,0x000200f8,0x00000068,0x0004003d,0x0000025e, + 0x00000264,0x00000260,0x00040063,0x00000264,0x000001d4,0x00000266,0x000100fd,0x00010038, + 0x00050036,0x00000013,0x0000006c,0x00000000,0x00000069,0x00030037,0x00000013,0x0000006a, + 0x00030037,0x00000013,0x0000006b,0x000200f8,0x0000006d,0x0004003b,0x00000014,0x00000267, + 0x00000007,0x0004003b,0x00000014,0x00000268,0x00000007,0x0004003b,0x00000014,0x00000269, + 0x00000007,0x0004003b,0x00000014,0x0000026d,0x00000007,0x0004003b,0x00000014,0x00000270, + 0x00000007,0x0004003b,0x00000014,0x00000271,0x00000007,0x0003003e,0x00000268,0x0000006a, + 0x0003003e,0x00000269,0x0000006b,0x00060039,0x00000013,0x0000026a,0x00000023,0x00000268, + 0x00000269,0x0003003e,0x00000267,0x0000026a,0x0004003d,0x00000013,0x0000026b,0x00000267, + 0x000500b7,0x0000006e,0x0000026c,0x0000026b,0x000001d8,0x000300f7,0x0000026f,0x00000000, + 0x000400fa,0x0000026c,0x0000026e,0x00000275,0x000200f8,0x0000026e,0x0003003e,0x00000270, + 0x0000006a,0x0003003e,0x00000271,0x0000006b,0x00060039,0x00000013,0x00000272,0x00000018, + 0x00000270,0x00000271,0x0004003d,0x00000013,0x00000273,0x00000267,0x00050088,0x00000013, + 0x00000274,0x00000272,0x00000273,0x0003003e,0x0000026d,0x00000274,0x000200f9,0x0000026f, + 0x000200f8,0x00000275,0x0003003e,0x0000026d,0x000001d8,0x000200f9,0x0000026f,0x000200f8, + 0x0000026f,0x0004003d,0x00000013,0x00000276,0x0000026d,0x000200fe,0x00000276,0x00010038, + 0x00050036,0x0000006e,0x00000071,0x00000000,0x0000006f,0x00030037,0x0000005c,0x00000070, + 0x000200f8,0x00000072,0x00050041,0x00000014,0x00000279,0x00000070,0x000001bf,0x0004003d, + 0x00000013,0x0000027a,0x00000279,0x000500be,0x0000006e,0x0000027b,0x0000027a,0x000001d8, + 0x000300f7,0x0000027d,0x00000000,0x000400fa,0x0000027b,0x0000027c,0x0000027d,0x000200f8, + 0x0000027c,0x00050041,0x00000014,0x0000027e,0x00000070,0x000001bf,0x0004003d,0x00000013, + 0x0000027f,0x0000027e,0x000500bc,0x0000006e,0x00000280,0x0000027f,0x000001dc,0x000200f9, + 0x0000027d,0x000200f8,0x0000027d,0x000700f5,0x0000006e,0x00000281,0x0000027b,0x00000072, + 0x00000280,0x0000027c,0x000300f7,0x00000283,0x00000000,0x000400fa,0x00000281,0x00000282, + 0x00000283,0x000200f8,0x00000282,0x00050041,0x00000014,0x00000284,0x00000070,0x00000172, + 0x0004003d,0x00000013,0x00000285,0x00000284,0x000500be,0x0000006e,0x00000286,0x00000285, + 0x000001d8,0x000300f7,0x00000288,0x00000000,0x000400fa,0x00000286,0x00000287,0x00000288, + 0x000200f8,0x00000287,0x00050041,0x00000014,0x00000289,0x00000070,0x00000172,0x0004003d, + 0x00000013,0x0000028a,0x00000289,0x000500bc,0x0000006e,0x0000028b,0x0000028a,0x000001dc, + 0x000200f9,0x00000288,0x000200f8,0x00000288,0x000700f5,0x0000006e,0x0000028c,0x00000286, + 0x00000282,0x0000028b,0x00000287,0x000200f9,0x00000283,0x000200f8,0x00000283,0x000700f5, + 0x0000006e,0x0000028d,0x00000281,0x0000027d,0x0000028c,0x00000288,0x000200fe,0x0000028d, + 0x00010038,0x00050036,0x00000032,0x00000077,0x00000000,0x00000073,0x00030037,0x00000049, + 0x00000074,0x00030037,0x00000049,0x00000075,0x00030037,0x00000049,0x00000076,0x000200f8, + 0x00000078,0x0004003b,0x00000049,0x00000290,0x00000007,0x0004003b,0x0000001b,0x00000297, + 0x00000007,0x0004003b,0x0000001b,0x0000029a,0x00000007,0x0004003b,0x0000001b,0x0000029c, + 0x00000007,0x0004003b,0x0000001b,0x0000029d,0x00000007,0x0004003b,0x0000001b,0x000002a3, + 0x00000007,0x0004003b,0x0000001b,0x000002a6,0x00000007,0x0004003b,0x0000001b,0x000002a8, + 0x00000007,0x0004003b,0x0000001b,0x000002a9,0x00000007,0x0004003d,0x00000032,0x00000291, + 0x00000074,0x0004003d,0x00000032,0x00000292,0x00000075,0x00050080,0x00000032,0x00000293, + 0x00000291,0x00000292,0x0003003e,0x00000290,0x00000293,0x00050041,0x0000001b,0x00000294, + 0x00000076,0x000001bf,0x0004003d,0x0000001a,0x00000295,0x00000294,0x00050082,0x0000001a, + 0x00000296,0x00000295,0x00000191,0x00050041,0x0000001b,0x00000298,0x00000290,0x000001bf, + 0x0004003d,0x0000001a,0x00000299,0x00000298,0x0003003e,0x00000297,0x00000299,0x0003003e, + 0x0000029a,0x00000296,0x00060039,0x0000001a,0x0000029b,0x0000001f,0x00000297,0x0000029a, + 0x0003003e,0x0000029c,0x0000014c,0x0003003e,0x0000029d,0x0000029b,0x00060039,0x0000001a, + 0x0000029e,0x00000027,0x0000029c,0x0000029d,0x00050041,0x0000001b,0x0000029f,0x00000290, + 0x000001bf,0x0003003e,0x0000029f,0x0000029e,0x00050041,0x0000001b,0x000002a0,0x00000076, + 0x00000172,0x0004003d,0x0000001a,0x000002a1,0x000002a0,0x00050082,0x0000001a,0x000002a2, + 0x000002a1,0x00000191,0x00050041,0x0000001b,0x000002a4,0x00000290,0x00000172,0x0004003d, + 0x0000001a,0x000002a5,0x000002a4,0x0003003e,0x000002a3,0x000002a5,0x0003003e,0x000002a6, + 0x000002a2,0x00060039,0x0000001a,0x000002a7,0x0000001f,0x000002a3,0x000002a6,0x0003003e, + 0x000002a8,0x0000014c,0x0003003e,0x000002a9,0x000002a7,0x00060039,0x0000001a,0x000002aa, + 0x00000027,0x000002a8,0x000002a9,0x00050041,0x0000001b,0x000002ab,0x00000290,0x00000172, + 0x0003003e,0x000002ab,0x000002aa,0x0004003d,0x00000032,0x000002ac,0x00000290,0x000200fe, + 0x000002ac,0x00010038,0x00050036,0x00000002,0x0000007a,0x00000000,0x00000063,0x00030037, + 0x00000007,0x00000079,0x000200f8,0x0000007b,0x0004003b,0x00000007,0x000002b1,0x00000007, + 0x0004003d,0x00000006,0x000002b2,0x000002b0,0x0003003e,0x000002b1,0x000002b2,0x00050039, + 0x00000002,0x000002b3,0x00000065,0x000002b1,0x0004003d,0x00000006,0x000002b4,0x000002b1, + 0x0003003e,0x000002b0,0x000002b4,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000007c, + 0x00000000,0x00000041,0x000200f8,0x0000007d,0x0004003d,0x00000006,0x000002b5,0x000002b0, + 0x000200fe,0x000002b5,0x00010038,0x00050036,0x00000002,0x0000007f,0x00000000,0x00000063, + 0x00030037,0x00000007,0x0000007e,0x000200f8,0x00000080,0x00040039,0x00000002,0x000002b8, + 0x00000067,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000087,0x00000000,0x00000085, + 0x00030037,0x00000084,0x00000086,0x000200f8,0x00000088,0x0004003b,0x00000014,0x000002b9, + 0x00000007,0x0004003b,0x00000014,0x000002bb,0x00000007,0x0004003b,0x00000014,0x000002be, + 0x00000007,0x0004003b,0x00000014,0x000002c2,0x00000007,0x0004003b,0x00000014,0x000002c5, + 0x00000007,0x0004003b,0x00000014,0x000002cc,0x00000007,0x0004003b,0x00000014,0x000002ce, + 0x00000007,0x0004003b,0x00000014,0x000002d1,0x00000007,0x0004003b,0x00000014,0x000002d5, + 0x00000007,0x0004003b,0x00000014,0x000002d8,0x00000007,0x0004003b,0x00000014,0x000002df, + 0x00000007,0x0004003b,0x00000014,0x000002e0,0x00000007,0x0004003b,0x00000014,0x000002e3, + 0x00000007,0x0004003b,0x00000014,0x000002e7,0x00000007,0x0004003b,0x00000014,0x000002ea, + 0x00000007,0x0004003b,0x00000014,0x000002f1,0x00000007,0x0004003b,0x00000014,0x000002f2, + 0x00000007,0x0004003b,0x00000014,0x000002f5,0x00000007,0x0004003b,0x00000014,0x000002f9, + 0x00000007,0x0004003b,0x00000014,0x000002fc,0x00000007,0x0004003b,0x00000014,0x00000303, + 0x00000007,0x0004003b,0x00000014,0x00000304,0x00000007,0x0004003b,0x00000014,0x00000307, + 0x00000007,0x0004003b,0x00000014,0x0000030b,0x00000007,0x0004003b,0x00000014,0x0000030e, + 0x00000007,0x0004003b,0x00000014,0x00000315,0x00000007,0x0004003b,0x00000014,0x00000316, + 0x00000007,0x0004003b,0x00000014,0x00000319,0x00000007,0x0004003b,0x00000014,0x0000031d, + 0x00000007,0x0004003b,0x00000014,0x00000320,0x00000007,0x0004003b,0x00000014,0x00000327, + 0x00000007,0x0004003b,0x00000014,0x00000328,0x00000007,0x0004003b,0x00000014,0x0000032b, + 0x00000007,0x0004003b,0x00000014,0x0000032f,0x00000007,0x0004003b,0x00000014,0x00000332, + 0x00000007,0x0004003b,0x00000014,0x00000339,0x00000007,0x0004003b,0x00000014,0x0000033a, + 0x00000007,0x0004003b,0x00000014,0x0000033d,0x00000007,0x0004003b,0x00000014,0x00000341, + 0x00000007,0x0004003b,0x00000014,0x00000344,0x00000007,0x0004003b,0x00000014,0x0000034b, + 0x00000007,0x0004003b,0x00000014,0x0000034c,0x00000007,0x0004003b,0x00000014,0x0000034f, + 0x00000007,0x0004003b,0x00000014,0x00000353,0x00000007,0x0004003b,0x00000014,0x00000356, + 0x00000007,0x00060041,0x00000014,0x000002bc,0x00000086,0x0000014c,0x0000014c,0x0004003d, + 0x00000013,0x000002bd,0x000002bc,0x0003003e,0x000002bb,0x000002bd,0x00060041,0x00000014, + 0x000002bf,0x00000086,0x0000014c,0x000002ba,0x0004003d,0x00000013,0x000002c0,0x000002bf, + 0x0003003e,0x000002be,0x000002c0,0x00060039,0x00000013,0x000002c1,0x00000018,0x000002bb, + 0x000002be,0x0003003e,0x000002b9,0x000002c1,0x00060041,0x00000014,0x000002c3,0x00000086, + 0x0000014c,0x0000014c,0x0004003d,0x00000013,0x000002c4,0x000002c3,0x0003003e,0x000002c2, + 0x000002c4,0x00060041,0x00000014,0x000002c6,0x00000086,0x0000014c,0x000002ba,0x0004003d, + 0x00000013,0x000002c7,0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00060039,0x00000013, + 0x000002c8,0x00000023,0x000002c2,0x000002c5,0x00060041,0x00000014,0x000002c9,0x00000086, + 0x0000014c,0x000002ba,0x0003003e,0x000002c9,0x000002c8,0x0004003d,0x00000013,0x000002ca, + 0x000002b9,0x00060041,0x00000014,0x000002cb,0x00000086,0x0000014c,0x0000014c,0x0003003e, + 0x000002cb,0x000002ca,0x00060041,0x00000014,0x000002cf,0x00000086,0x0000014c,0x00000191, + 0x0004003d,0x00000013,0x000002d0,0x000002cf,0x0003003e,0x000002ce,0x000002d0,0x00060041, + 0x00000014,0x000002d2,0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013,0x000002d3, + 0x000002d2,0x0003003e,0x000002d1,0x000002d3,0x00060039,0x00000013,0x000002d4,0x00000018, + 0x000002ce,0x000002d1,0x0003003e,0x000002cc,0x000002d4,0x00060041,0x00000014,0x000002d6, + 0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x000002d7,0x000002d6,0x0003003e, + 0x000002d5,0x000002d7,0x00060041,0x00000014,0x000002d9,0x00000086,0x0000014c,0x000002cd, + 0x0004003d,0x00000013,0x000002da,0x000002d9,0x0003003e,0x000002d8,0x000002da,0x00060039, + 0x00000013,0x000002db,0x00000023,0x000002d5,0x000002d8,0x00060041,0x00000014,0x000002dc, + 0x00000086,0x0000014c,0x000002cd,0x0003003e,0x000002dc,0x000002db,0x0004003d,0x00000013, + 0x000002dd,0x000002cc,0x00060041,0x00000014,0x000002de,0x00000086,0x0000014c,0x00000191, + 0x0003003e,0x000002de,0x000002dd,0x00060041,0x00000014,0x000002e1,0x00000086,0x0000014c, + 0x0000014c,0x0004003d,0x00000013,0x000002e2,0x000002e1,0x0003003e,0x000002e0,0x000002e2, + 0x00060041,0x00000014,0x000002e4,0x00000086,0x0000014c,0x000001b3,0x0004003d,0x00000013, + 0x000002e5,0x000002e4,0x0003003e,0x000002e3,0x000002e5,0x00060039,0x00000013,0x000002e6, + 0x00000018,0x000002e0,0x000002e3,0x0003003e,0x000002df,0x000002e6,0x00060041,0x00000014, + 0x000002e8,0x00000086,0x0000014c,0x0000014c,0x0004003d,0x00000013,0x000002e9,0x000002e8, + 0x0003003e,0x000002e7,0x000002e9,0x00060041,0x00000014,0x000002eb,0x00000086,0x0000014c, + 0x000001b3,0x0004003d,0x00000013,0x000002ec,0x000002eb,0x0003003e,0x000002ea,0x000002ec, + 0x00060039,0x00000013,0x000002ed,0x00000023,0x000002e7,0x000002ea,0x00060041,0x00000014, + 0x000002ee,0x00000086,0x0000014c,0x000001b3,0x0003003e,0x000002ee,0x000002ed,0x0004003d, + 0x00000013,0x000002ef,0x000002df,0x00060041,0x00000014,0x000002f0,0x00000086,0x0000014c, + 0x0000014c,0x0003003e,0x000002f0,0x000002ef,0x00060041,0x00000014,0x000002f3,0x00000086, + 0x0000014c,0x00000191,0x0004003d,0x00000013,0x000002f4,0x000002f3,0x0003003e,0x000002f2, + 0x000002f4,0x00060041,0x00000014,0x000002f6,0x00000086,0x0000014c,0x000002ba,0x0004003d, + 0x00000013,0x000002f7,0x000002f6,0x0003003e,0x000002f5,0x000002f7,0x00060039,0x00000013, + 0x000002f8,0x00000018,0x000002f2,0x000002f5,0x0003003e,0x000002f1,0x000002f8,0x00060041, + 0x00000014,0x000002fa,0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x000002fb, + 0x000002fa,0x0003003e,0x000002f9,0x000002fb,0x00060041,0x00000014,0x000002fd,0x00000086, + 0x0000014c,0x000002ba,0x0004003d,0x00000013,0x000002fe,0x000002fd,0x0003003e,0x000002fc, + 0x000002fe,0x00060039,0x00000013,0x000002ff,0x00000023,0x000002f9,0x000002fc,0x00060041, + 0x00000014,0x00000300,0x00000086,0x0000014c,0x000002ba,0x0003003e,0x00000300,0x000002ff, + 0x0004003d,0x00000013,0x00000301,0x000002f1,0x00060041,0x00000014,0x00000302,0x00000086, + 0x0000014c,0x00000191,0x0003003e,0x00000302,0x00000301,0x00060041,0x00000014,0x00000305, + 0x00000086,0x0000014c,0x0000014c,0x0004003d,0x00000013,0x00000306,0x00000305,0x0003003e, + 0x00000304,0x00000306,0x00060041,0x00000014,0x00000308,0x00000086,0x0000014c,0x00000191, + 0x0004003d,0x00000013,0x00000309,0x00000308,0x0003003e,0x00000307,0x00000309,0x00060039, + 0x00000013,0x0000030a,0x00000018,0x00000304,0x00000307,0x0003003e,0x00000303,0x0000030a, + 0x00060041,0x00000014,0x0000030c,0x00000086,0x0000014c,0x0000014c,0x0004003d,0x00000013, + 0x0000030d,0x0000030c,0x0003003e,0x0000030b,0x0000030d,0x00060041,0x00000014,0x0000030f, + 0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x00000310,0x0000030f,0x0003003e, + 0x0000030e,0x00000310,0x00060039,0x00000013,0x00000311,0x00000023,0x0000030b,0x0000030e, + 0x00060041,0x00000014,0x00000312,0x00000086,0x0000014c,0x00000191,0x0003003e,0x00000312, + 0x00000311,0x0004003d,0x00000013,0x00000313,0x00000303,0x00060041,0x00000014,0x00000314, + 0x00000086,0x0000014c,0x0000014c,0x0003003e,0x00000314,0x00000313,0x00060041,0x00000014, + 0x00000317,0x00000086,0x0000014c,0x000001b3,0x0004003d,0x00000013,0x00000318,0x00000317, + 0x0003003e,0x00000316,0x00000318,0x00060041,0x00000014,0x0000031a,0x00000086,0x0000014c, + 0x000002cd,0x0004003d,0x00000013,0x0000031b,0x0000031a,0x0003003e,0x00000319,0x0000031b, + 0x00060039,0x00000013,0x0000031c,0x00000018,0x00000316,0x00000319,0x0003003e,0x00000315, + 0x0000031c,0x00060041,0x00000014,0x0000031e,0x00000086,0x0000014c,0x000001b3,0x0004003d, + 0x00000013,0x0000031f,0x0000031e,0x0003003e,0x0000031d,0x0000031f,0x00060041,0x00000014, + 0x00000321,0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013,0x00000322,0x00000321, + 0x0003003e,0x00000320,0x00000322,0x00060039,0x00000013,0x00000323,0x00000023,0x0000031d, + 0x00000320,0x00060041,0x00000014,0x00000324,0x00000086,0x0000014c,0x000002cd,0x0003003e, + 0x00000324,0x00000323,0x0004003d,0x00000013,0x00000325,0x00000315,0x00060041,0x00000014, + 0x00000326,0x00000086,0x0000014c,0x000001b3,0x0003003e,0x00000326,0x00000325,0x00060041, + 0x00000014,0x00000329,0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x0000032a, + 0x00000329,0x0003003e,0x00000328,0x0000032a,0x00060041,0x00000014,0x0000032c,0x00000086, + 0x0000014c,0x000001b3,0x0004003d,0x00000013,0x0000032d,0x0000032c,0x0003003e,0x0000032b, + 0x0000032d,0x00060039,0x00000013,0x0000032e,0x00000018,0x00000328,0x0000032b,0x0003003e, + 0x00000327,0x0000032e,0x00060041,0x00000014,0x00000330,0x00000086,0x0000014c,0x00000191, + 0x0004003d,0x00000013,0x00000331,0x00000330,0x0003003e,0x0000032f,0x00000331,0x00060041, + 0x00000014,0x00000333,0x00000086,0x0000014c,0x000001b3,0x0004003d,0x00000013,0x00000334, + 0x00000333,0x0003003e,0x00000332,0x00000334,0x00060039,0x00000013,0x00000335,0x00000023, + 0x0000032f,0x00000332,0x00060041,0x00000014,0x00000336,0x00000086,0x0000014c,0x000001b3, + 0x0003003e,0x00000336,0x00000335,0x0004003d,0x00000013,0x00000337,0x00000327,0x00060041, + 0x00000014,0x00000338,0x00000086,0x0000014c,0x00000191,0x0003003e,0x00000338,0x00000337, + 0x00060041,0x00000014,0x0000033b,0x00000086,0x0000014c,0x000002ba,0x0004003d,0x00000013, + 0x0000033c,0x0000033b,0x0003003e,0x0000033a,0x0000033c,0x00060041,0x00000014,0x0000033e, + 0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013,0x0000033f,0x0000033e,0x0003003e, + 0x0000033d,0x0000033f,0x00060039,0x00000013,0x00000340,0x00000018,0x0000033a,0x0000033d, + 0x0003003e,0x00000339,0x00000340,0x00060041,0x00000014,0x00000342,0x00000086,0x0000014c, + 0x000002ba,0x0004003d,0x00000013,0x00000343,0x00000342,0x0003003e,0x00000341,0x00000343, + 0x00060041,0x00000014,0x00000345,0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013, + 0x00000346,0x00000345,0x0003003e,0x00000344,0x00000346,0x00060039,0x00000013,0x00000347, + 0x00000023,0x00000341,0x00000344,0x00060041,0x00000014,0x00000348,0x00000086,0x0000014c, + 0x000002cd,0x0003003e,0x00000348,0x00000347,0x0004003d,0x00000013,0x00000349,0x00000339, + 0x00060041,0x00000014,0x0000034a,0x00000086,0x0000014c,0x000002ba,0x0003003e,0x0000034a, + 0x00000349,0x00060041,0x00000014,0x0000034d,0x00000086,0x0000014c,0x000001b3,0x0004003d, + 0x00000013,0x0000034e,0x0000034d,0x0003003e,0x0000034c,0x0000034e,0x00060041,0x00000014, + 0x00000350,0x00000086,0x0000014c,0x000002ba,0x0004003d,0x00000013,0x00000351,0x00000350, + 0x0003003e,0x0000034f,0x00000351,0x00060039,0x00000013,0x00000352,0x00000018,0x0000034c, + 0x0000034f,0x0003003e,0x0000034b,0x00000352,0x00060041,0x00000014,0x00000354,0x00000086, + 0x0000014c,0x000001b3,0x0004003d,0x00000013,0x00000355,0x00000354,0x0003003e,0x00000353, + 0x00000355,0x00060041,0x00000014,0x00000357,0x00000086,0x0000014c,0x000002ba,0x0004003d, + 0x00000013,0x00000358,0x00000357,0x0003003e,0x00000356,0x00000358,0x00060039,0x00000013, + 0x00000359,0x00000023,0x00000353,0x00000356,0x00060041,0x00000014,0x0000035a,0x00000086, + 0x0000014c,0x000002ba,0x0003003e,0x0000035a,0x00000359,0x0004003d,0x00000013,0x0000035b, + 0x0000034b,0x00060041,0x00000014,0x0000035c,0x00000086,0x0000014c,0x000001b3,0x0003003e, + 0x0000035c,0x0000035b,0x000100fd,0x00010038,0x00050036,0x00000013,0x0000008d,0x00000000, + 0x00000089,0x00030037,0x00000049,0x0000008a,0x00030037,0x00000084,0x0000008b,0x00030037, + 0x00000084,0x0000008c,0x000200f8,0x0000008e,0x0004003b,0x00000014,0x0000035d,0x00000007, + 0x0004003b,0x0000001b,0x0000035f,0x00000007,0x0004003b,0x0000001b,0x00000360,0x00000007, + 0x0004003b,0x00000084,0x00000361,0x00000007,0x0004003b,0x00000084,0x00000365,0x00000007, + 0x0004003b,0x00000014,0x00000369,0x00000007,0x0004003b,0x00000014,0x0000036a,0x00000007, + 0x0004003b,0x00000014,0x0000036d,0x00000007,0x0004003b,0x0000001b,0x00000376,0x00000007, + 0x0004003b,0x00000014,0x00000383,0x00000007,0x0003003e,0x0000035d,0x0000035e,0x0003003e, + 0x0000035f,0x0000014c,0x0003003e,0x00000360,0x0000014c,0x0004003d,0x00000083,0x00000362, + 0x0000008b,0x0003003e,0x00000361,0x00000362,0x00050039,0x00000002,0x00000363,0x00000087, + 0x00000361,0x0004003d,0x00000083,0x00000364,0x00000361,0x0003003e,0x0000008b,0x00000364, + 0x0004003d,0x00000083,0x00000366,0x0000008c,0x0003003e,0x00000365,0x00000366,0x00050039, + 0x00000002,0x00000367,0x00000087,0x00000365,0x0004003d,0x00000083,0x00000368,0x00000365, + 0x0003003e,0x0000008c,0x00000368,0x00060041,0x00000014,0x0000036b,0x0000008b,0x0000014c, + 0x000002cd,0x0004003d,0x00000013,0x0000036c,0x0000036b,0x0003003e,0x0000036a,0x0000036c, + 0x00060041,0x00000014,0x0000036e,0x0000008c,0x0000014c,0x000002cd,0x0004003d,0x00000013, + 0x0000036f,0x0000036e,0x0003003e,0x0000036d,0x0000036f,0x00060039,0x00000013,0x00000370, + 0x00000018,0x0000036a,0x0000036d,0x0003003e,0x00000369,0x00000370,0x0004003d,0x00000013, + 0x00000371,0x00000369,0x000500ba,0x0000006e,0x00000373,0x00000371,0x00000372,0x000300f7, + 0x00000375,0x00000000,0x000400fa,0x00000373,0x00000374,0x00000375,0x000200f8,0x00000374, + 0x0003003e,0x00000376,0x0000014c,0x000200f9,0x00000377,0x000200f8,0x00000377,0x000400f6, + 0x00000379,0x0000037a,0x00000000,0x000200f9,0x0000037b,0x000200f8,0x0000037b,0x0004003d, + 0x0000001a,0x0000037c,0x00000376,0x000500b1,0x0000006e,0x0000037e,0x0000037c,0x0000037d, + 0x0004003d,0x00000013,0x0000037f,0x0000035d,0x000500b8,0x0000006e,0x00000381,0x0000037f, + 0x00000380,0x000500a7,0x0000006e,0x00000382,0x0000037e,0x00000381,0x000400fa,0x00000382, + 0x00000378,0x00000379,0x000200f8,0x00000378,0x0004003d,0x0000001a,0x00000384,0x0000035f, + 0x00060041,0x00000014,0x00000385,0x0000008b,0x0000014c,0x00000384,0x0004003d,0x00000013, + 0x00000386,0x00000385,0x0004003d,0x0000001a,0x00000387,0x00000360,0x00060041,0x00000014, + 0x00000388,0x0000008c,0x0000014c,0x00000387,0x0004003d,0x00000013,0x00000389,0x00000388, + 0x00050083,0x00000013,0x0000038a,0x00000386,0x00000389,0x0003003e,0x00000383,0x0000038a, + 0x0004003d,0x00000013,0x0000038b,0x00000383,0x0006000c,0x00000013,0x0000038c,0x00000001, + 0x00000004,0x0000038b,0x000500ba,0x0000006e,0x0000038e,0x0000038c,0x0000038d,0x000300f7, + 0x00000390,0x00000000,0x000400fa,0x0000038e,0x0000038f,0x000003b8,0x000200f8,0x0000038f, + 0x0004003d,0x00000013,0x00000391,0x00000383,0x0006000c,0x00000013,0x00000392,0x00000001, + 0x00000006,0x00000391,0x0004003d,0x0000001a,0x00000393,0x0000035f,0x00060041,0x00000014, + 0x00000394,0x0000008b,0x0000014c,0x00000393,0x0004003d,0x00000013,0x00000395,0x00000394, + 0x0004003d,0x0000001a,0x00000396,0x00000360,0x00060041,0x00000014,0x00000397,0x0000008c, + 0x0000014c,0x00000396,0x0004003d,0x00000013,0x00000398,0x00000397,0x00060039,0x00000013, + 0x00000399,0x0000006c,0x00000395,0x00000398,0x00050083,0x00000013,0x0000039a,0x000001dc, + 0x00000399,0x00050085,0x00000013,0x0000039b,0x00000392,0x0000039a,0x0003003e,0x00000383, + 0x0000039b,0x0004003d,0x00000013,0x0000039c,0x00000383,0x0006000c,0x00000013,0x0000039d, + 0x00000001,0x00000004,0x0000039c,0x0004003d,0x00000013,0x0000039e,0x0000035d,0x0006000c, + 0x00000013,0x0000039f,0x00000001,0x00000004,0x0000039e,0x000500b8,0x0000006e,0x000003a0, + 0x0000039d,0x0000039f,0x0004003d,0x00000013,0x000003a1,0x00000383,0x0004003d,0x00000013, + 0x000003a2,0x0000035d,0x000600a9,0x00000013,0x000003a3,0x000003a0,0x000003a1,0x000003a2, + 0x0003003e,0x0000035d,0x000003a3,0x0004003d,0x0000001a,0x000003a4,0x0000035f,0x00060041, + 0x00000014,0x000003a5,0x0000008b,0x0000014c,0x000003a4,0x0004003d,0x00000013,0x000003a6, + 0x000003a5,0x0004003d,0x0000001a,0x000003a7,0x00000360,0x00060041,0x00000014,0x000003a8, + 0x0000008c,0x0000014c,0x000003a7,0x0004003d,0x00000013,0x000003a9,0x000003a8,0x000500b8, + 0x0000006e,0x000003aa,0x000003a6,0x000003a9,0x000600a9,0x0000001a,0x000003ab,0x000003aa, + 0x00000191,0x0000014c,0x0004003d,0x0000001a,0x000003ac,0x0000035f,0x00050080,0x0000001a, + 0x000003ad,0x000003ac,0x000003ab,0x0003003e,0x0000035f,0x000003ad,0x0004003d,0x0000001a, + 0x000003ae,0x0000035f,0x00060041,0x00000014,0x000003af,0x0000008b,0x0000014c,0x000003ae, + 0x0004003d,0x00000013,0x000003b0,0x000003af,0x0004003d,0x0000001a,0x000003b1,0x00000360, + 0x00060041,0x00000014,0x000003b2,0x0000008c,0x0000014c,0x000003b1,0x0004003d,0x00000013, + 0x000003b3,0x000003b2,0x000500be,0x0000006e,0x000003b4,0x000003b0,0x000003b3,0x000600a9, + 0x0000001a,0x000003b5,0x000003b4,0x00000191,0x0000014c,0x0004003d,0x0000001a,0x000003b6, + 0x00000360,0x00050080,0x0000001a,0x000003b7,0x000003b6,0x000003b5,0x0003003e,0x00000360, + 0x000003b7,0x000200f9,0x00000390,0x000200f8,0x000003b8,0x0003003e,0x0000035d,0x00000380, + 0x000200f9,0x00000390,0x000200f8,0x00000390,0x000200f9,0x0000037a,0x000200f8,0x0000037a, + 0x0004003d,0x0000001a,0x000003b9,0x00000376,0x00050080,0x0000001a,0x000003ba,0x000003b9, + 0x00000191,0x0003003e,0x00000376,0x000003ba,0x000200f9,0x00000377,0x000200f8,0x00000379, + 0x000200f9,0x00000375,0x000200f8,0x00000375,0x0004003d,0x00000013,0x000003bb,0x0000035d, + 0x0004003d,0x00000013,0x000003bc,0x0000035d,0x000500b8,0x0000006e,0x000003bd,0x000003bc, + 0x0000035e,0x000600a9,0x00000013,0x000003be,0x000003bd,0x000001dc,0x000001d8,0x00050085, + 0x00000013,0x000003bf,0x000003bb,0x000003be,0x000200fe,0x000003bf,0x00010038,0x00050036, + 0x00000083,0x00000091,0x00000000,0x0000008f,0x00030037,0x0000005c,0x00000090,0x000200f8, + 0x00000092,0x0004003b,0x0000005c,0x000003c2,0x00000007,0x0004003b,0x00000049,0x000003c9, + 0x00000007,0x0004003b,0x0000001b,0x000003d0,0x00000007,0x0004003b,0x00000049,0x000003d8, + 0x00000007,0x0004003b,0x00000049,0x000003e2,0x00000007,0x0004003b,0x00000049,0x000003e4, + 0x00000007,0x0004003b,0x000003e5,0x000003e6,0x00000007,0x0004003b,0x00000049,0x000003e9, + 0x00000007,0x0004003b,0x00000084,0x000003eb,0x00000007,0x0004003b,0x00000049,0x000003ed, + 0x00000007,0x0004003b,0x00000014,0x000003f5,0x00000007,0x0004003b,0x00000014,0x000003f8, + 0x00000007,0x0004003b,0x00000014,0x000003fd,0x00000007,0x0004003b,0x00000014,0x00000400, + 0x00000007,0x0004003d,0x00000038,0x000003c3,0x00000090,0x00040039,0x00000038,0x000003c4, + 0x0000003a,0x00040039,0x00000032,0x000003c5,0x00000034,0x0004006f,0x00000038,0x000003c6, + 0x000003c5,0x00050088,0x00000038,0x000003c7,0x000003c4,0x000003c6,0x00050081,0x00000038, + 0x000003c8,0x000003c3,0x000003c7,0x0003003e,0x000003c2,0x000003c8,0x0004003d,0x00000038, + 0x000003ca,0x000003c2,0x00040039,0x00000032,0x000003cb,0x00000034,0x0004006f,0x00000038, + 0x000003cc,0x000003cb,0x00050085,0x00000038,0x000003cd,0x000003ca,0x000003cc,0x0006000c, + 0x00000038,0x000003ce,0x00000001,0x00000008,0x000003cd,0x0004006e,0x00000032,0x000003cf, + 0x000003ce,0x0003003e,0x000003c9,0x000003cf,0x0003003e,0x000003d0,0x0000014c,0x000200f9, + 0x000003d1,0x000200f8,0x000003d1,0x000400f6,0x000003d3,0x000003d4,0x00000000,0x000200f9, + 0x000003d5,0x000200f8,0x000003d5,0x0004003d,0x0000001a,0x000003d6,0x000003d0,0x000500b1, + 0x0000006e,0x000003d7,0x000003d6,0x0000037d,0x000400fa,0x000003d7,0x000003d2,0x000003d3, + 0x000200f8,0x000003d2,0x0004003d,0x0000001a,0x000003e0,0x000003d0,0x00040039,0x00000032, + 0x000003e1,0x00000034,0x0004003d,0x00000032,0x000003e3,0x000003c9,0x0003003e,0x000003e2, + 0x000003e3,0x0003003e,0x000003e6,0x000003df,0x00050041,0x00000049,0x000003e7,0x000003e6, + 0x000003e0,0x0004003d,0x00000032,0x000003e8,0x000003e7,0x0003003e,0x000003e4,0x000003e8, + 0x0003003e,0x000003e9,0x000003e1,0x00070039,0x00000032,0x000003ea,0x00000077,0x000003e2, + 0x000003e4,0x000003e9,0x0003003e,0x000003d8,0x000003ea,0x0004003d,0x0000001a,0x000003ec, + 0x000003d0,0x0004003d,0x00000032,0x000003ee,0x000003d8,0x0003003e,0x000003ed,0x000003ee, + 0x00050039,0x00000013,0x000003ef,0x0000004c,0x000003ed,0x00040039,0x00000013,0x000003f0, + 0x00000055,0x00050085,0x00000013,0x000003f1,0x000003ef,0x000003f0,0x00060041,0x00000014, + 0x000003f2,0x000003eb,0x0000014c,0x000003ec,0x0003003e,0x000003f2,0x000003f1,0x0004003d, + 0x0000001a,0x000003f3,0x000003d0,0x0004003d,0x0000001a,0x000003f4,0x000003d0,0x00060041, + 0x00000014,0x000003f6,0x000003eb,0x0000014c,0x000003f4,0x0004003d,0x00000013,0x000003f7, + 0x000003f6,0x0003003e,0x000003f5,0x000003f7,0x0003003e,0x000003f8,0x000001dc,0x00060039, + 0x00000013,0x000003f9,0x0000002b,0x000003f5,0x000003f8,0x00060041,0x00000014,0x000003fa, + 0x000003eb,0x0000014c,0x000003f3,0x0003003e,0x000003fa,0x000003f9,0x0004003d,0x0000001a, + 0x000003fb,0x000003d0,0x0004003d,0x0000001a,0x000003fc,0x000003d0,0x00060041,0x00000014, + 0x000003fe,0x000003eb,0x0000014c,0x000003fc,0x0004003d,0x00000013,0x000003ff,0x000003fe, + 0x0003003e,0x000003fd,0x000003ff,0x0003003e,0x00000400,0x0000038d,0x00060039,0x00000013, + 0x00000401,0x00000023,0x000003fd,0x00000400,0x00060041,0x00000014,0x00000402,0x000003eb, + 0x0000014c,0x000003fb,0x0003003e,0x00000402,0x00000401,0x000200f9,0x000003d4,0x000200f8, + 0x000003d4,0x0004003d,0x0000001a,0x00000403,0x000003d0,0x00050080,0x0000001a,0x00000404, + 0x00000403,0x00000191,0x0003003e,0x000003d0,0x00000404,0x000200f9,0x000003d1,0x000200f8, + 0x000003d3,0x0004003d,0x00000083,0x00000405,0x000003eb,0x000200fe,0x00000405,0x00010038, + 0x00050036,0x00000093,0x00000097,0x00000000,0x00000094,0x00030037,0x0000005c,0x00000095, + 0x00030037,0x0000005c,0x00000096,0x000200f8,0x00000098,0x0004003b,0x0000005c,0x00000408, + 0x00000007,0x0004003b,0x0000005c,0x0000040f,0x00000007,0x0004003b,0x00000413,0x00000414, + 0x00000007,0x0004003b,0x0000005c,0x00000415,0x00000007,0x0004003b,0x00000049,0x0000041e, + 0x00000007,0x0004003b,0x0000001b,0x00000425,0x00000007,0x0004003b,0x00000049,0x0000042d, + 0x00000007,0x0004003b,0x00000049,0x00000430,0x00000007,0x0004003b,0x00000049,0x00000432, + 0x00000007,0x0004003b,0x000003e5,0x00000433,0x00000007,0x0004003b,0x00000049,0x00000436, + 0x00000007,0x0004003b,0x00000049,0x00000439,0x00000007,0x0004003b,0x00000014,0x00000443, + 0x00000007,0x0004003b,0x00000014,0x00000446,0x00000007,0x0004003b,0x00000014,0x0000044b, + 0x00000007,0x0004003b,0x00000014,0x0000044e,0x00000007,0x0004003d,0x00000038,0x00000409, + 0x00000095,0x00040039,0x00000038,0x0000040a,0x0000003c,0x00040039,0x00000032,0x0000040b, + 0x00000036,0x0004006f,0x00000038,0x0000040c,0x0000040b,0x00050088,0x00000038,0x0000040d, + 0x0000040a,0x0000040c,0x00050081,0x00000038,0x0000040e,0x00000409,0x0000040d,0x0003003e, + 0x00000408,0x0000040e,0x0004003d,0x00000038,0x00000410,0x00000408,0x0004003d,0x00000038, + 0x00000411,0x00000096,0x00050081,0x00000038,0x00000412,0x00000410,0x00000411,0x0003003e, + 0x0000040f,0x00000412,0x0004003d,0x00000038,0x00000416,0x0000040f,0x0003003e,0x00000415, + 0x00000416,0x00050039,0x0000006e,0x00000417,0x00000071,0x00000415,0x00050041,0x00000418, + 0x00000419,0x00000414,0x00000191,0x0003003e,0x00000419,0x00000417,0x00050041,0x00000418, + 0x0000041a,0x00000414,0x00000191,0x0004003d,0x0000006e,0x0000041b,0x0000041a,0x000300f7, + 0x0000041d,0x00000000,0x000400fa,0x0000041b,0x0000041c,0x0000041d,0x000200f8,0x0000041c, + 0x0004003d,0x00000038,0x0000041f,0x0000040f,0x00040039,0x00000032,0x00000420,0x00000036, + 0x0004006f,0x00000038,0x00000421,0x00000420,0x00050085,0x00000038,0x00000422,0x0000041f, + 0x00000421,0x0006000c,0x00000038,0x00000423,0x00000001,0x00000008,0x00000422,0x0004006e, + 0x00000032,0x00000424,0x00000423,0x0003003e,0x0000041e,0x00000424,0x0003003e,0x00000425, + 0x0000014c,0x000200f9,0x00000426,0x000200f8,0x00000426,0x000400f6,0x00000428,0x00000429, + 0x00000000,0x000200f9,0x0000042a,0x000200f8,0x0000042a,0x0004003d,0x0000001a,0x0000042b, + 0x00000425,0x000500b1,0x0000006e,0x0000042c,0x0000042b,0x0000037d,0x000400fa,0x0000042c, + 0x00000427,0x00000428,0x000200f8,0x00000427,0x0004003d,0x0000001a,0x0000042e,0x00000425, + 0x00040039,0x00000032,0x0000042f,0x00000036,0x0004003d,0x00000032,0x00000431,0x0000041e, + 0x0003003e,0x00000430,0x00000431,0x0003003e,0x00000433,0x000003df,0x00050041,0x00000049, + 0x00000434,0x00000433,0x0000042e,0x0004003d,0x00000032,0x00000435,0x00000434,0x0003003e, + 0x00000432,0x00000435,0x0003003e,0x00000436,0x0000042f,0x00070039,0x00000032,0x00000437, + 0x00000077,0x00000430,0x00000432,0x00000436,0x0003003e,0x0000042d,0x00000437,0x0004003d, + 0x0000001a,0x00000438,0x00000425,0x0004003d,0x00000032,0x0000043a,0x0000042d,0x0003003e, + 0x00000439,0x0000043a,0x00050039,0x00000013,0x0000043b,0x0000004f,0x00000439,0x00040039, + 0x00000013,0x0000043c,0x0000003f,0x00050085,0x00000013,0x0000043d,0x0000043b,0x0000043c, + 0x00040039,0x00000013,0x0000043e,0x00000055,0x00050085,0x00000013,0x0000043f,0x0000043d, + 0x0000043e,0x00070041,0x00000014,0x00000440,0x00000414,0x0000014c,0x0000014c,0x00000438, + 0x0003003e,0x00000440,0x0000043f,0x0004003d,0x0000001a,0x00000441,0x00000425,0x0004003d, + 0x0000001a,0x00000442,0x00000425,0x00070041,0x00000014,0x00000444,0x00000414,0x0000014c, + 0x0000014c,0x00000442,0x0004003d,0x00000013,0x00000445,0x00000444,0x0003003e,0x00000443, + 0x00000445,0x0003003e,0x00000446,0x000001dc,0x00060039,0x00000013,0x00000447,0x0000002b, + 0x00000443,0x00000446,0x00070041,0x00000014,0x00000448,0x00000414,0x0000014c,0x0000014c, + 0x00000441,0x0003003e,0x00000448,0x00000447,0x0004003d,0x0000001a,0x00000449,0x00000425, + 0x0004003d,0x0000001a,0x0000044a,0x00000425,0x00070041,0x00000014,0x0000044c,0x00000414, + 0x0000014c,0x0000014c,0x0000044a,0x0004003d,0x00000013,0x0000044d,0x0000044c,0x0003003e, + 0x0000044b,0x0000044d,0x0003003e,0x0000044e,0x0000038d,0x00060039,0x00000013,0x0000044f, + 0x00000023,0x0000044b,0x0000044e,0x00070041,0x00000014,0x00000450,0x00000414,0x0000014c, + 0x0000014c,0x00000449,0x0003003e,0x00000450,0x0000044f,0x000200f9,0x00000429,0x000200f8, + 0x00000429,0x0004003d,0x0000001a,0x00000451,0x00000425,0x00050080,0x0000001a,0x00000452, + 0x00000451,0x00000191,0x0003003e,0x00000425,0x00000452,0x000200f9,0x00000426,0x000200f8, + 0x00000428,0x000200f9,0x0000041d,0x000200f8,0x0000041d,0x0004003d,0x00000093,0x00000453, + 0x00000414,0x000200fe,0x00000453,0x00010038,0x00050036,0x00000013,0x0000009d,0x00000000, + 0x00000099,0x00030037,0x00000049,0x0000009a,0x00030037,0x0000005c,0x0000009b,0x00030037, + 0x0000005c,0x0000009c,0x000200f8,0x0000009e,0x0004003b,0x00000014,0x00000456,0x00000007, + 0x0004003b,0x00000084,0x00000457,0x00000007,0x0004003b,0x0000005c,0x00000458,0x00000007, + 0x0004003b,0x00000413,0x0000045b,0x00000007,0x0004003b,0x0000005c,0x0000045c,0x00000007, + 0x0004003b,0x0000005c,0x0000045e,0x00000007,0x0004003b,0x00000049,0x00000465,0x00000007, + 0x0004003b,0x00000084,0x00000467,0x00000007,0x0004003b,0x00000084,0x00000469,0x00000007, + 0x0003003e,0x00000456,0x000001d8,0x0004003d,0x00000038,0x00000459,0x0000009b,0x0003003e, + 0x00000458,0x00000459,0x00050039,0x00000083,0x0000045a,0x00000091,0x00000458,0x0003003e, + 0x00000457,0x0000045a,0x0004003d,0x00000038,0x0000045d,0x0000009b,0x0003003e,0x0000045c, + 0x0000045d,0x0004003d,0x00000038,0x0000045f,0x0000009c,0x0003003e,0x0000045e,0x0000045f, + 0x00060039,0x00000093,0x00000460,0x00000097,0x0000045c,0x0000045e,0x0003003e,0x0000045b, + 0x00000460,0x00050041,0x00000418,0x00000461,0x0000045b,0x00000191,0x0004003d,0x0000006e, + 0x00000462,0x00000461,0x000300f7,0x00000464,0x00000000,0x000400fa,0x00000462,0x00000463, + 0x00000464,0x000200f8,0x00000463,0x0004003d,0x00000032,0x00000466,0x0000009a,0x0003003e, + 0x00000465,0x00000466,0x0004003d,0x00000083,0x00000468,0x00000457,0x0003003e,0x00000467, + 0x00000468,0x00050041,0x00000084,0x0000046a,0x0000045b,0x0000014c,0x0004003d,0x00000083, + 0x0000046b,0x0000046a,0x0003003e,0x00000469,0x0000046b,0x00070039,0x00000013,0x0000046c, + 0x0000008d,0x00000465,0x00000467,0x00000469,0x0003003e,0x00000456,0x0000046c,0x000200f9, + 0x00000464,0x000200f8,0x00000464,0x0004003d,0x00000013,0x0000046d,0x00000456,0x000200fe, + 0x0000046d,0x00010038,0x00050036,0x0000009f,0x000000a3,0x00000000,0x000000a0,0x00030037, + 0x0000005c,0x000000a1,0x00030037,0x00000007,0x000000a2,0x000200f8,0x000000a4,0x0004003b, + 0x00000049,0x00000470,0x00000007,0x0004003b,0x00000049,0x00000474,0x00000007,0x0004003b, + 0x00000049,0x00000475,0x00000007,0x0004003b,0x00000049,0x00000476,0x00000007,0x0004003b, + 0x0000005c,0x00000478,0x00000007,0x0004003b,0x00000049,0x00000479,0x00000007,0x0004003b, + 0x0000005c,0x0000047c,0x00000007,0x0004003b,0x00000014,0x00000485,0x00000007,0x0004003b, + 0x00000049,0x00000486,0x00000007,0x0004003b,0x0000005c,0x00000488,0x00000007,0x0004003b, + 0x0000005c,0x0000048a,0x00000007,0x0004003b,0x000000aa,0x0000048d,0x00000007,0x0004003b, + 0x00000014,0x00000493,0x00000007,0x0004003d,0x00000038,0x00000471,0x000000a1,0x0004006e, + 0x00000032,0x00000472,0x00000471,0x00040039,0x00000032,0x00000473,0x00000034,0x0003003e, + 0x00000474,0x00000472,0x0003003e,0x00000475,0x000001d4,0x0003003e,0x00000476,0x00000473, + 0x00070039,0x00000032,0x00000477,0x00000077,0x00000474,0x00000475,0x00000476,0x0003003e, + 0x00000470,0x00000477,0x0004003d,0x00000032,0x0000047a,0x00000470,0x0003003e,0x00000479, + 0x0000047a,0x00050039,0x00000038,0x0000047b,0x00000053,0x00000479,0x0003003e,0x00000478, + 0x0000047b,0x0004003d,0x00000032,0x0000047d,0x00000470,0x0004006f,0x00000038,0x0000047e, + 0x0000047d,0x00050050,0x00000038,0x00000480,0x0000047f,0x0000047f,0x00050081,0x00000038, + 0x00000481,0x0000047e,0x00000480,0x00040039,0x00000032,0x00000482,0x00000034,0x0004006f, + 0x00000038,0x00000483,0x00000482,0x00050088,0x00000038,0x00000484,0x00000481,0x00000483, + 0x0003003e,0x0000047c,0x00000484,0x0004003d,0x00000032,0x00000487,0x00000470,0x0003003e, + 0x00000486,0x00000487,0x0004003d,0x00000038,0x00000489,0x0000047c,0x0003003e,0x00000488, + 0x00000489,0x0004003d,0x00000038,0x0000048b,0x00000478,0x0003003e,0x0000048a,0x0000048b, + 0x00070039,0x00000013,0x0000048c,0x0000009d,0x00000486,0x00000488,0x0000048a,0x0003003e, + 0x00000485,0x0000048c,0x0003003e,0x0000048d,0x0000048e,0x0004003d,0x00000013,0x0000048f, + 0x00000485,0x00050041,0x00000014,0x00000490,0x0000048d,0x000001bf,0x0003003e,0x00000490, + 0x0000048f,0x0004003d,0x00000013,0x00000491,0x00000485,0x000500b7,0x0000006e,0x00000492, + 0x00000491,0x000001d8,0x000300f7,0x00000495,0x00000000,0x000400fa,0x00000492,0x00000494, + 0x00000498,0x000200f8,0x00000494,0x0004003d,0x00000013,0x00000496,0x00000485,0x0006000c, + 0x00000013,0x00000497,0x00000001,0x00000006,0x00000496,0x0003003e,0x00000493,0x00000497, + 0x000200f9,0x00000495,0x000200f8,0x00000498,0x0003003e,0x00000493,0x000001d8,0x000200f9, + 0x00000495,0x000200f8,0x00000495,0x0004003d,0x00000013,0x00000499,0x00000493,0x00050041, + 0x00000014,0x0000049a,0x0000048d,0x00000172,0x0003003e,0x0000049a,0x00000499,0x00050041, + 0x00000014,0x0000049b,0x0000048d,0x0000016b,0x0003003e,0x0000049b,0x000001dc,0x0004003d, + 0x0000009f,0x0000049c,0x0000048d,0x000200fe,0x0000049c,0x00010038,0x00050036,0x0000009f, + 0x000000a8,0x00000000,0x000000a5,0x00030037,0x00000049,0x000000a6,0x00030037,0x00000007, + 0x000000a7,0x000200f8,0x000000a9,0x0004003b,0x00000049,0x0000049f,0x00000007,0x0004003b, + 0x00000007,0x000004a1,0x00000007,0x0004003d,0x00000032,0x000004a0,0x000000a6,0x0003003e, + 0x0000049f,0x000004a0,0x0003003e,0x000004a1,0x00000081,0x00060039,0x00000038,0x000004a2, + 0x0000005a,0x0000049f,0x000004a1,0x00050051,0x00000013,0x000004a3,0x000004a2,0x00000000, + 0x00050051,0x00000013,0x000004a4,0x000004a2,0x00000001,0x00070050,0x0000009f,0x000004a5, + 0x000004a3,0x000004a4,0x000001d8,0x000001d8,0x000200fe,0x000004a5,0x00010038,0x00050036, + 0x0000009f,0x000000b0,0x00000000,0x000000ab,0x00030037,0x000000aa,0x000000ac,0x00030037, + 0x000000aa,0x000000ad,0x00030037,0x000000aa,0x000000ae,0x00030037,0x000000aa,0x000000af, + 0x000200f8,0x000000b1,0x0004003d,0x0000009f,0x000004a8,0x000000ac,0x0004003d,0x0000009f, + 0x000004a9,0x000000ad,0x00050081,0x0000009f,0x000004aa,0x000004a8,0x000004a9,0x0004003d, + 0x0000009f,0x000004ab,0x000000ae,0x00050081,0x0000009f,0x000004ac,0x000004aa,0x000004ab, + 0x0004003d,0x0000009f,0x000004ad,0x000000af,0x00050081,0x0000009f,0x000004ae,0x000004ac, + 0x000004ad,0x0005008e,0x0000009f,0x000004b0,0x000004ae,0x000004af,0x000200fe,0x000004b0, + 0x00010038,0x00050036,0x00000002,0x000000b7,0x00000000,0x000000b2,0x00030037,0x00000049, + 0x000000b3,0x00030037,0x000000aa,0x000000b4,0x00030037,0x00000007,0x000000b5,0x00030037, + 0x00000007,0x000000b6,0x000200f8,0x000000b8,0x0004003b,0x00000049,0x000004b7,0x00000007, + 0x0004003b,0x0000005c,0x000004b9,0x00000007,0x0004003b,0x00000007,0x000004bc,0x00000007, + 0x0004003d,0x00000006,0x000004b3,0x000000b5,0x000500ae,0x0000006e,0x000004b4,0x000004b3, + 0x000001bf,0x000300f7,0x000004b6,0x00000000,0x000400fa,0x000004b4,0x000004b5,0x000004b6, + 0x000200f8,0x000004b5,0x0004003d,0x00000032,0x000004b8,0x000000b3,0x0003003e,0x000004b7, + 0x000004b8,0x0004003d,0x0000009f,0x000004ba,0x000000b4,0x0007004f,0x00000038,0x000004bb, + 0x000004ba,0x000004ba,0x00000000,0x00000001,0x0003003e,0x000004b9,0x000004bb,0x0004003d, + 0x00000006,0x000004bd,0x000000b5,0x0003003e,0x000004bc,0x000004bd,0x00070039,0x00000002, + 0x000004be,0x00000061,0x000004b7,0x000004b9,0x000004bc,0x000200f9,0x000004b6,0x000200f8, + 0x000004b6,0x000100fd,0x00010038,0x00050036,0x0000009f,0x000000bc,0x00000000,0x000000b9, + 0x00030037,0x00000007,0x000000ba,0x00030037,0x00000007,0x000000bb,0x000200f8,0x000000bd, + 0x0004003d,0x00000006,0x000004c4,0x000000ba,0x0004003d,0x00000006,0x000004c5,0x000000bb, + 0x00060041,0x000004c6,0x000004c7,0x000004c3,0x000004c4,0x000004c5,0x0004003d,0x00000013, + 0x000004c8,0x000004c7,0x0004003d,0x00000006,0x000004ca,0x000000ba,0x0004003d,0x00000006, + 0x000004cb,0x000000bb,0x00060041,0x000004c6,0x000004cc,0x000004c9,0x000004ca,0x000004cb, + 0x0004003d,0x00000013,0x000004cd,0x000004cc,0x0004003d,0x00000006,0x000004cf,0x000000ba, + 0x0004003d,0x00000006,0x000004d0,0x000000bb,0x00060041,0x000004c6,0x000004d1,0x000004ce, + 0x000004cf,0x000004d0,0x0004003d,0x00000013,0x000004d2,0x000004d1,0x0004003d,0x00000006, + 0x000004d4,0x000000ba,0x0004003d,0x00000006,0x000004d5,0x000000bb,0x00060041,0x000004c6, + 0x000004d6,0x000004d3,0x000004d4,0x000004d5,0x0004003d,0x00000013,0x000004d7,0x000004d6, + 0x00070050,0x0000009f,0x000004d8,0x000004c8,0x000004cd,0x000004d2,0x000004d7,0x000200fe, + 0x000004d8,0x00010038,0x00050036,0x00000002,0x000000c2,0x00000000,0x000000be,0x00030037, + 0x00000007,0x000000bf,0x00030037,0x00000007,0x000000c0,0x00030037,0x000000aa,0x000000c1, + 0x000200f8,0x000000c3,0x0004003d,0x00000006,0x000004db,0x000000bf,0x0004003d,0x00000006, + 0x000004dc,0x000000c0,0x00050041,0x00000014,0x000004dd,0x000000c1,0x000001bf,0x0004003d, + 0x00000013,0x000004de,0x000004dd,0x00060041,0x000004c6,0x000004df,0x000004c3,0x000004db, + 0x000004dc,0x0003003e,0x000004df,0x000004de,0x0004003d,0x00000006,0x000004e0,0x000000bf, + 0x0004003d,0x00000006,0x000004e1,0x000000c0,0x00050041,0x00000014,0x000004e2,0x000000c1, + 0x00000172,0x0004003d,0x00000013,0x000004e3,0x000004e2,0x00060041,0x000004c6,0x000004e4, + 0x000004c9,0x000004e0,0x000004e1,0x0003003e,0x000004e4,0x000004e3,0x0004003d,0x00000006, + 0x000004e5,0x000000bf,0x0004003d,0x00000006,0x000004e6,0x000000c0,0x00050041,0x00000014, + 0x000004e7,0x000000c1,0x0000016b,0x0004003d,0x00000013,0x000004e8,0x000004e7,0x00060041, + 0x000004c6,0x000004e9,0x000004ce,0x000004e5,0x000004e6,0x0003003e,0x000004e9,0x000004e8, + 0x0004003d,0x00000006,0x000004ea,0x000000bf,0x0004003d,0x00000006,0x000004eb,0x000000c0, + 0x00050041,0x00000014,0x000004ec,0x000000c1,0x0000016c,0x0004003d,0x00000013,0x000004ed, + 0x000004ec,0x00060041,0x000004c6,0x000004ee,0x000004d3,0x000004ea,0x000004eb,0x0003003e, + 0x000004ee,0x000004ed,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000c4,0x00000000, + 0x00000003,0x000200f8,0x000000c5,0x000300e1,0x0000016b,0x000004ef,0x000400e0,0x0000016b, + 0x0000016b,0x000004f0,0x000100fd,0x00010038,0x00050036,0x0000006e,0x000000ca,0x00000000, + 0x000000c6,0x00030037,0x00000007,0x000000c7,0x00030037,0x00000007,0x000000c8,0x00030037, + 0x00000007,0x000000c9,0x000200f8,0x000000cb,0x0004003b,0x00000007,0x000004f5,0x00000007, + 0x0004003d,0x00000006,0x000004f1,0x000000c8,0x000500aa,0x0000006e,0x000004f2,0x000004f1, + 0x000001bf,0x000300f7,0x000004f4,0x00000000,0x000400fa,0x000004f2,0x000004f3,0x000004f4, + 0x000200f8,0x000004f3,0x0004003d,0x00000006,0x000004f6,0x000000c9,0x0003003e,0x000004f5, + 0x000004f6,0x00050039,0x00000002,0x000004f7,0x0000007a,0x000004f5,0x000200f9,0x000004f4, + 0x000200f8,0x000004f4,0x00040039,0x00000002,0x000004f8,0x000000c4,0x00040039,0x00000006, + 0x000004f9,0x0000007c,0x0004003d,0x00000006,0x000004fa,0x000000c7,0x00050082,0x00000006, + 0x000004fb,0x000004fa,0x00000172,0x000500ab,0x0000006e,0x000004fc,0x000004f9,0x000004fb, + 0x000200fe,0x000004fc,0x00010038,0x00050036,0x0000009f,0x000000ce,0x00000000,0x000000cc, + 0x00030037,0x000000aa,0x000000cd,0x000200f8,0x000000cf,0x0004003b,0x000000aa,0x000004ff, + 0x00000007,0x0004003b,0x000000aa,0x00000501,0x00000007,0x0004003b,0x000000aa,0x00000504, + 0x00000007,0x0004003b,0x000000aa,0x00000507,0x00000007,0x0004003b,0x000000aa,0x0000050a, + 0x00000007,0x0004003b,0x000000aa,0x0000050c,0x00000007,0x0004003b,0x000000aa,0x0000050e, + 0x00000007,0x0004003b,0x000000aa,0x00000510,0x00000007,0x0004003d,0x0000009f,0x00000500, + 0x000000cd,0x0003003e,0x000004ff,0x00000500,0x0004003d,0x0000009f,0x00000502,0x000000cd, + 0x0006016e,0x0000009f,0x00000503,0x0000016c,0x00000502,0x000001bf,0x0003003e,0x00000501, + 0x00000503,0x0004003d,0x0000009f,0x00000505,0x000000cd,0x0006016e,0x0000009f,0x00000506, + 0x0000016c,0x00000505,0x00000172,0x0003003e,0x00000504,0x00000506,0x0004003d,0x0000009f, + 0x00000508,0x000000cd,0x0006016e,0x0000009f,0x00000509,0x0000016c,0x00000508,0x0000016b, + 0x0003003e,0x00000507,0x00000509,0x0004003d,0x0000009f,0x0000050b,0x000004ff,0x0003003e, + 0x0000050a,0x0000050b,0x0004003d,0x0000009f,0x0000050d,0x00000501,0x0003003e,0x0000050c, + 0x0000050d,0x0004003d,0x0000009f,0x0000050f,0x00000504,0x0003003e,0x0000050e,0x0000050f, + 0x0004003d,0x0000009f,0x00000511,0x00000507,0x0003003e,0x00000510,0x00000511,0x00080039, + 0x0000009f,0x00000512,0x000000b0,0x0000050a,0x0000050c,0x0000050e,0x00000510,0x000200fe, + 0x00000512,0x00010038,0x00050036,0x0000009f,0x000000d7,0x00000000,0x000000d1,0x00030037, + 0x000000d0,0x000000d2,0x00030037,0x000000d0,0x000000d3,0x00030037,0x000000d0,0x000000d4, + 0x00030037,0x000000d0,0x000000d5,0x00030037,0x00000007,0x000000d6,0x000200f8,0x000000d8, + 0x0004003b,0x000000aa,0x00000517,0x00000007,0x0004003b,0x00000049,0x0000051a,0x00000007, + 0x0004003b,0x00000007,0x0000051b,0x00000007,0x0004003b,0x000000aa,0x0000051e,0x00000007, + 0x0004003b,0x00000049,0x00000521,0x00000007,0x0004003b,0x00000007,0x00000522,0x00000007, + 0x0004003b,0x000000aa,0x00000525,0x00000007,0x0004003b,0x00000049,0x00000528,0x00000007, + 0x0004003b,0x00000007,0x00000529,0x00000007,0x0004003b,0x000000aa,0x0000052c,0x00000007, + 0x0004003b,0x00000049,0x0000052f,0x00000007,0x0004003b,0x00000007,0x00000530,0x00000007, + 0x0004003b,0x000000aa,0x00000533,0x00000007,0x0004003b,0x000000aa,0x00000535,0x00000007, + 0x0004003b,0x000000aa,0x00000537,0x00000007,0x0004003b,0x000000aa,0x00000539,0x00000007, + 0x0004003d,0x0000002d,0x00000518,0x000000d2,0x0004007c,0x00000032,0x00000519,0x00000518, + 0x0003003e,0x0000051a,0x00000519,0x0004003d,0x00000006,0x0000051c,0x000000d6,0x0003003e, + 0x0000051b,0x0000051c,0x00060039,0x0000009f,0x0000051d,0x000000a8,0x0000051a,0x0000051b, + 0x0003003e,0x00000517,0x0000051d,0x0004003d,0x0000002d,0x0000051f,0x000000d3,0x0004007c, + 0x00000032,0x00000520,0x0000051f,0x0003003e,0x00000521,0x00000520,0x0004003d,0x00000006, + 0x00000523,0x000000d6,0x0003003e,0x00000522,0x00000523,0x00060039,0x0000009f,0x00000524, + 0x000000a8,0x00000521,0x00000522,0x0003003e,0x0000051e,0x00000524,0x0004003d,0x0000002d, + 0x00000526,0x000000d4,0x0004007c,0x00000032,0x00000527,0x00000526,0x0003003e,0x00000528, + 0x00000527,0x0004003d,0x00000006,0x0000052a,0x000000d6,0x0003003e,0x00000529,0x0000052a, + 0x00060039,0x0000009f,0x0000052b,0x000000a8,0x00000528,0x00000529,0x0003003e,0x00000525, + 0x0000052b,0x0004003d,0x0000002d,0x0000052d,0x000000d5,0x0004007c,0x00000032,0x0000052e, + 0x0000052d,0x0003003e,0x0000052f,0x0000052e,0x0004003d,0x00000006,0x00000531,0x000000d6, + 0x0003003e,0x00000530,0x00000531,0x00060039,0x0000009f,0x00000532,0x000000a8,0x0000052f, + 0x00000530,0x0003003e,0x0000052c,0x00000532,0x0004003d,0x0000009f,0x00000534,0x00000517, + 0x0003003e,0x00000533,0x00000534,0x0004003d,0x0000009f,0x00000536,0x0000051e,0x0003003e, + 0x00000535,0x00000536,0x0004003d,0x0000009f,0x00000538,0x00000525,0x0003003e,0x00000537, + 0x00000538,0x0004003d,0x0000009f,0x0000053a,0x0000052c,0x0003003e,0x00000539,0x0000053a, + 0x00080039,0x0000009f,0x0000053b,0x000000b0,0x00000533,0x00000535,0x00000537,0x00000539, + 0x000200fe,0x0000053b,0x00010038,0x00050036,0x0000009f,0x000000dc,0x00000000,0x000000d9, + 0x00030037,0x000000d0,0x000000da,0x00030037,0x00000007,0x000000db,0x000200f8,0x000000dd, + 0x0004003b,0x000000d0,0x0000054a,0x00000007,0x0004003b,0x000000d0,0x0000054b,0x00000007, + 0x0004003b,0x000000d0,0x0000054c,0x00000007,0x0004003b,0x000000d0,0x0000054d,0x00000007, + 0x0004003b,0x00000007,0x0000054e,0x00000007,0x0004003d,0x0000002d,0x0000053e,0x000000da, + 0x00050080,0x0000002d,0x00000540,0x0000053e,0x0000053f,0x0004003d,0x0000002d,0x00000541, + 0x000000da,0x00050080,0x0000002d,0x00000543,0x00000541,0x00000542,0x0004003d,0x0000002d, + 0x00000544,0x000000da,0x00050080,0x0000002d,0x00000546,0x00000544,0x00000545,0x0004003d, + 0x0000002d,0x00000547,0x000000da,0x00050080,0x0000002d,0x00000549,0x00000547,0x00000548, + 0x0003003e,0x0000054a,0x00000540,0x0003003e,0x0000054b,0x00000543,0x0003003e,0x0000054c, + 0x00000546,0x0003003e,0x0000054d,0x00000549,0x0004003d,0x00000006,0x0000054f,0x000000db, + 0x0003003e,0x0000054e,0x0000054f,0x00090039,0x0000009f,0x00000550,0x000000d7,0x0000054a, + 0x0000054b,0x0000054c,0x0000054d,0x0000054e,0x000200fe,0x00000550,0x00010038,0x00050036, + 0x0000009f,0x000000e3,0x00000000,0x000000d1,0x00030037,0x000000d0,0x000000de,0x00030037, + 0x000000d0,0x000000df,0x00030037,0x000000d0,0x000000e0,0x00030037,0x000000d0,0x000000e1, + 0x00030037,0x00000007,0x000000e2,0x000200f8,0x000000e4,0x0004003b,0x000000aa,0x00000553, + 0x00000007,0x0004003b,0x0000005c,0x00000557,0x00000007,0x0004003b,0x00000007,0x00000558, + 0x00000007,0x0004003b,0x000000aa,0x0000055b,0x00000007,0x0004003b,0x0000005c,0x0000055f, + 0x00000007,0x0004003b,0x00000007,0x00000560,0x00000007,0x0004003b,0x000000aa,0x00000563, + 0x00000007,0x0004003b,0x0000005c,0x00000567,0x00000007,0x0004003b,0x00000007,0x00000568, + 0x00000007,0x0004003b,0x000000aa,0x0000056b,0x00000007,0x0004003b,0x0000005c,0x0000056f, + 0x00000007,0x0004003b,0x00000007,0x00000570,0x00000007,0x0004003b,0x000000aa,0x00000573, + 0x00000007,0x0004003b,0x000000aa,0x00000575,0x00000007,0x0004003b,0x000000aa,0x00000577, + 0x00000007,0x0004003b,0x000000aa,0x00000579,0x00000007,0x0004003d,0x0000002d,0x00000554, + 0x000000de,0x0004007c,0x00000032,0x00000555,0x00000554,0x0004006f,0x00000038,0x00000556, + 0x00000555,0x0003003e,0x00000557,0x00000556,0x0004003d,0x00000006,0x00000559,0x000000e2, + 0x0003003e,0x00000558,0x00000559,0x00060039,0x0000009f,0x0000055a,0x000000a3,0x00000557, + 0x00000558,0x0003003e,0x00000553,0x0000055a,0x0004003d,0x0000002d,0x0000055c,0x000000df, + 0x0004007c,0x00000032,0x0000055d,0x0000055c,0x0004006f,0x00000038,0x0000055e,0x0000055d, + 0x0003003e,0x0000055f,0x0000055e,0x0004003d,0x00000006,0x00000561,0x000000e2,0x0003003e, + 0x00000560,0x00000561,0x00060039,0x0000009f,0x00000562,0x000000a3,0x0000055f,0x00000560, + 0x0003003e,0x0000055b,0x00000562,0x0004003d,0x0000002d,0x00000564,0x000000e0,0x0004007c, + 0x00000032,0x00000565,0x00000564,0x0004006f,0x00000038,0x00000566,0x00000565,0x0003003e, + 0x00000567,0x00000566,0x0004003d,0x00000006,0x00000569,0x000000e2,0x0003003e,0x00000568, + 0x00000569,0x00060039,0x0000009f,0x0000056a,0x000000a3,0x00000567,0x00000568,0x0003003e, + 0x00000563,0x0000056a,0x0004003d,0x0000002d,0x0000056c,0x000000e1,0x0004007c,0x00000032, + 0x0000056d,0x0000056c,0x0004006f,0x00000038,0x0000056e,0x0000056d,0x0003003e,0x0000056f, + 0x0000056e,0x0004003d,0x00000006,0x00000571,0x000000e2,0x0003003e,0x00000570,0x00000571, + 0x00060039,0x0000009f,0x00000572,0x000000a3,0x0000056f,0x00000570,0x0003003e,0x0000056b, + 0x00000572,0x0004003d,0x0000009f,0x00000574,0x00000553,0x0003003e,0x00000573,0x00000574, + 0x0004003d,0x0000009f,0x00000576,0x0000055b,0x0003003e,0x00000575,0x00000576,0x0004003d, + 0x0000009f,0x00000578,0x00000563,0x0003003e,0x00000577,0x00000578,0x0004003d,0x0000009f, + 0x0000057a,0x0000056b,0x0003003e,0x00000579,0x0000057a,0x00080039,0x0000009f,0x0000057b, + 0x000000b0,0x00000573,0x00000575,0x00000577,0x00000579,0x000200fe,0x0000057b,0x00010038, + 0x00050036,0x0000009f,0x000000e7,0x00000000,0x000000d9,0x00030037,0x000000d0,0x000000e5, + 0x00030037,0x00000007,0x000000e6,0x000200f8,0x000000e8,0x0004003b,0x000000d0,0x00000586, + 0x00000007,0x0004003b,0x000000d0,0x00000587,0x00000007,0x0004003b,0x000000d0,0x00000588, + 0x00000007,0x0004003b,0x000000d0,0x00000589,0x00000007,0x0004003b,0x00000007,0x0000058a, + 0x00000007,0x0004003d,0x0000002d,0x0000057e,0x000000e5,0x00050080,0x0000002d,0x0000057f, + 0x0000057e,0x0000053f,0x0004003d,0x0000002d,0x00000580,0x000000e5,0x00050080,0x0000002d, + 0x00000581,0x00000580,0x00000542,0x0004003d,0x0000002d,0x00000582,0x000000e5,0x00050080, + 0x0000002d,0x00000583,0x00000582,0x00000545,0x0004003d,0x0000002d,0x00000584,0x000000e5, + 0x00050080,0x0000002d,0x00000585,0x00000584,0x00000548,0x0003003e,0x00000586,0x0000057f, + 0x0003003e,0x00000587,0x00000581,0x0003003e,0x00000588,0x00000583,0x0003003e,0x00000589, + 0x00000585,0x0004003d,0x00000006,0x0000058b,0x000000e6,0x0003003e,0x0000058a,0x0000058b, + 0x00090039,0x0000009f,0x0000058c,0x000000e3,0x00000586,0x00000587,0x00000588,0x00000589, + 0x0000058a,0x000200fe,0x0000058c,0x00010038,0x00050036,0x00000002,0x000000f0,0x00000000, + 0x000000e9,0x00030037,0x00000007,0x000000ea,0x00030037,0x00000007,0x000000eb,0x00030037, + 0x000000d0,0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007,0x000000ee, + 0x00030037,0x00000007,0x000000ef,0x000200f8,0x000000f1,0x0004003b,0x00000049,0x0000058f, + 0x00000007,0x0004003b,0x00000049,0x0000059d,0x00000007,0x0004003b,0x000005aa,0x000005ab, + 0x00000007,0x0004003b,0x000000d0,0x000005ae,0x00000007,0x0004003b,0x00000007,0x000005af, + 0x00000007,0x0004003b,0x00000049,0x000005b3,0x00000007,0x0004003b,0x000000aa,0x000005b5, + 0x00000007,0x0004003b,0x00000007,0x000005b8,0x00000007,0x0004003b,0x00000007,0x000005b9, + 0x00000007,0x0004003b,0x000000d0,0x000005d6,0x00000007,0x0004003b,0x00000007,0x000005d7, + 0x00000007,0x0004003b,0x00000049,0x000005db,0x00000007,0x0004003b,0x000000aa,0x000005dd, + 0x00000007,0x0004003b,0x00000007,0x000005e0,0x00000007,0x0004003b,0x00000007,0x000005e1, + 0x00000007,0x0004003b,0x000000d0,0x000005fe,0x00000007,0x0004003b,0x00000007,0x000005ff, + 0x00000007,0x0004003b,0x00000049,0x00000603,0x00000007,0x0004003b,0x000000aa,0x00000605, + 0x00000007,0x0004003b,0x00000007,0x00000608,0x00000007,0x0004003b,0x00000007,0x00000609, + 0x00000007,0x0004003b,0x000000d0,0x00000628,0x00000007,0x0004003b,0x00000007,0x00000629, + 0x00000007,0x0004003b,0x00000049,0x0000062d,0x00000007,0x0004003b,0x000000aa,0x0000062f, + 0x00000007,0x0004003b,0x00000007,0x00000632,0x00000007,0x0004003b,0x00000007,0x00000633, + 0x00000007,0x0004003b,0x000000aa,0x0000063b,0x00000007,0x0004003b,0x000000aa,0x00000640, + 0x00000007,0x0004003b,0x000000aa,0x00000645,0x00000007,0x0004003b,0x000000aa,0x0000064a, + 0x00000007,0x0004003b,0x00000049,0x00000660,0x00000007,0x0004003b,0x000000aa,0x00000661, + 0x00000007,0x0004003b,0x00000007,0x00000664,0x00000007,0x0004003b,0x00000007,0x00000665, + 0x00000007,0x0004003b,0x00000007,0x0000066c,0x00000007,0x0004003b,0x00000007,0x0000066d, + 0x00000007,0x0004003b,0x000000aa,0x0000066e,0x00000007,0x0004003b,0x00000049,0x00000680, + 0x00000007,0x0004003b,0x000000aa,0x00000681,0x00000007,0x0004003b,0x00000007,0x00000684, + 0x00000007,0x0004003b,0x00000007,0x00000685,0x00000007,0x0004003b,0x00000007,0x0000068d, + 0x00000007,0x0004003b,0x00000007,0x0000068e,0x00000007,0x0004003b,0x000000aa,0x0000068f, + 0x00000007,0x0004003b,0x00000049,0x000006a0,0x00000007,0x0004003b,0x000000aa,0x000006a1, + 0x00000007,0x0004003b,0x00000007,0x000006a4,0x00000007,0x0004003b,0x00000007,0x000006a5, + 0x00000007,0x0004003b,0x00000007,0x000006ad,0x00000007,0x0004003b,0x00000007,0x000006ae, + 0x00000007,0x0004003b,0x000000aa,0x000006af,0x00000007,0x0004003b,0x00000049,0x000006c1, + 0x00000007,0x0004003b,0x000000aa,0x000006c2,0x00000007,0x0004003b,0x00000007,0x000006c5, + 0x00000007,0x0004003b,0x00000007,0x000006c6,0x00000007,0x0004003b,0x00000007,0x000006cf, + 0x00000007,0x0004003b,0x00000007,0x000006d0,0x00000007,0x0004003b,0x000000aa,0x000006d1, + 0x00000007,0x0004003d,0x0000002d,0x00000590,0x000000ec,0x00050050,0x0000002d,0x00000592, + 0x00000591,0x00000591,0x00050084,0x0000002d,0x00000593,0x00000590,0x00000592,0x0004007c, + 0x00000032,0x00000594,0x00000593,0x0004003d,0x00000006,0x00000595,0x000000ea,0x00050084, + 0x00000006,0x00000596,0x00000595,0x0000016b,0x0004007c,0x0000001a,0x00000597,0x00000596, + 0x0004003d,0x00000006,0x00000598,0x000000eb,0x00050084,0x00000006,0x00000599,0x00000598, + 0x0000016b,0x0004007c,0x0000001a,0x0000059a,0x00000599,0x00050050,0x00000032,0x0000059b, + 0x00000597,0x0000059a,0x00050080,0x00000032,0x0000059c,0x00000594,0x0000059b,0x0003003e, + 0x0000058f,0x0000059c,0x0004003d,0x0000002d,0x0000059e,0x000000ec,0x00050050,0x0000002d, + 0x000005a0,0x0000059f,0x0000059f,0x00050084,0x0000002d,0x000005a1,0x0000059e,0x000005a0, + 0x0004007c,0x00000032,0x000005a2,0x000005a1,0x0004003d,0x00000006,0x000005a3,0x000000ea, + 0x0004007c,0x0000001a,0x000005a4,0x000005a3,0x0004003d,0x00000006,0x000005a5,0x000000eb, + 0x0004007c,0x0000001a,0x000005a6,0x000005a5,0x00050050,0x00000032,0x000005a7,0x000005a4, + 0x000005a6,0x00050080,0x00000032,0x000005a8,0x000005a2,0x000005a7,0x0003003e,0x0000059d, + 0x000005a8,0x0004003d,0x00000032,0x000005ac,0x0000058f,0x0004007c,0x0000002d,0x000005ad, + 0x000005ac,0x0003003e,0x000005ae,0x000005ad,0x0004003d,0x00000006,0x000005b0,0x000000ef, + 0x0003003e,0x000005af,0x000005b0,0x00060039,0x0000009f,0x000005b1,0x000000e7,0x000005ae, + 0x000005af,0x00050041,0x000000aa,0x000005b2,0x000005ab,0x0000014c,0x0003003e,0x000005b2, + 0x000005b1,0x0004003d,0x00000032,0x000005b4,0x0000059d,0x0003003e,0x000005b3,0x000005b4, + 0x00050041,0x000000aa,0x000005b6,0x000005ab,0x0000014c,0x0004003d,0x0000009f,0x000005b7, + 0x000005b6,0x0003003e,0x000005b5,0x000005b7,0x0003003e,0x000005b8,0x000001bf,0x0004003d, + 0x00000006,0x000005ba,0x000000ef,0x0003003e,0x000005b9,0x000005ba,0x00080039,0x00000002, + 0x000005bb,0x000000b7,0x000005b3,0x000005b5,0x000005b8,0x000005b9,0x0004003d,0x0000002d, + 0x000005bc,0x000000ec,0x00050050,0x0000002d,0x000005bd,0x00000591,0x00000591,0x00050084, + 0x0000002d,0x000005be,0x000005bc,0x000005bd,0x0004007c,0x00000032,0x000005bf,0x000005be, + 0x0004003d,0x00000006,0x000005c0,0x000000ea,0x00050084,0x00000006,0x000005c1,0x000005c0, + 0x0000016b,0x00050080,0x00000006,0x000005c2,0x000005c1,0x0000059f,0x0004007c,0x0000001a, + 0x000005c3,0x000005c2,0x0004003d,0x00000006,0x000005c4,0x000000eb,0x00050084,0x00000006, + 0x000005c5,0x000005c4,0x0000016b,0x0004007c,0x0000001a,0x000005c6,0x000005c5,0x00050050, + 0x00000032,0x000005c7,0x000005c3,0x000005c6,0x00050080,0x00000032,0x000005c8,0x000005bf, + 0x000005c7,0x0003003e,0x0000058f,0x000005c8,0x0004003d,0x0000002d,0x000005c9,0x000000ec, + 0x00050050,0x0000002d,0x000005ca,0x0000059f,0x0000059f,0x00050084,0x0000002d,0x000005cb, + 0x000005c9,0x000005ca,0x0004007c,0x00000032,0x000005cc,0x000005cb,0x0004003d,0x00000006, + 0x000005cd,0x000000ea,0x00050080,0x00000006,0x000005ce,0x000005cd,0x000004bf,0x0004007c, + 0x0000001a,0x000005cf,0x000005ce,0x0004003d,0x00000006,0x000005d0,0x000000eb,0x0004007c, + 0x0000001a,0x000005d1,0x000005d0,0x00050050,0x00000032,0x000005d2,0x000005cf,0x000005d1, + 0x00050080,0x00000032,0x000005d3,0x000005cc,0x000005d2,0x0003003e,0x0000059d,0x000005d3, + 0x0004003d,0x00000032,0x000005d4,0x0000058f,0x0004007c,0x0000002d,0x000005d5,0x000005d4, + 0x0003003e,0x000005d6,0x000005d5,0x0004003d,0x00000006,0x000005d8,0x000000ef,0x0003003e, + 0x000005d7,0x000005d8,0x00060039,0x0000009f,0x000005d9,0x000000e7,0x000005d6,0x000005d7, + 0x00050041,0x000000aa,0x000005da,0x000005ab,0x00000191,0x0003003e,0x000005da,0x000005d9, + 0x0004003d,0x00000032,0x000005dc,0x0000059d,0x0003003e,0x000005db,0x000005dc,0x00050041, + 0x000000aa,0x000005de,0x000005ab,0x00000191,0x0004003d,0x0000009f,0x000005df,0x000005de, + 0x0003003e,0x000005dd,0x000005df,0x0003003e,0x000005e0,0x000001bf,0x0004003d,0x00000006, + 0x000005e2,0x000000ef,0x0003003e,0x000005e1,0x000005e2,0x00080039,0x00000002,0x000005e3, + 0x000000b7,0x000005db,0x000005dd,0x000005e0,0x000005e1,0x0004003d,0x0000002d,0x000005e4, + 0x000000ec,0x00050050,0x0000002d,0x000005e5,0x00000591,0x00000591,0x00050084,0x0000002d, + 0x000005e6,0x000005e4,0x000005e5,0x0004007c,0x00000032,0x000005e7,0x000005e6,0x0004003d, + 0x00000006,0x000005e8,0x000000ea,0x00050084,0x00000006,0x000005e9,0x000005e8,0x0000016b, + 0x0004007c,0x0000001a,0x000005ea,0x000005e9,0x0004003d,0x00000006,0x000005eb,0x000000eb, + 0x00050084,0x00000006,0x000005ec,0x000005eb,0x0000016b,0x00050080,0x00000006,0x000005ed, + 0x000005ec,0x0000059f,0x0004007c,0x0000001a,0x000005ee,0x000005ed,0x00050050,0x00000032, + 0x000005ef,0x000005ea,0x000005ee,0x00050080,0x00000032,0x000005f0,0x000005e7,0x000005ef, + 0x0003003e,0x0000058f,0x000005f0,0x0004003d,0x0000002d,0x000005f1,0x000000ec,0x00050050, + 0x0000002d,0x000005f2,0x0000059f,0x0000059f,0x00050084,0x0000002d,0x000005f3,0x000005f1, + 0x000005f2,0x0004007c,0x00000032,0x000005f4,0x000005f3,0x0004003d,0x00000006,0x000005f5, + 0x000000ea,0x0004007c,0x0000001a,0x000005f6,0x000005f5,0x0004003d,0x00000006,0x000005f7, + 0x000000eb,0x00050080,0x00000006,0x000005f8,0x000005f7,0x000004bf,0x0004007c,0x0000001a, + 0x000005f9,0x000005f8,0x00050050,0x00000032,0x000005fa,0x000005f6,0x000005f9,0x00050080, + 0x00000032,0x000005fb,0x000005f4,0x000005fa,0x0003003e,0x0000059d,0x000005fb,0x0004003d, + 0x00000032,0x000005fc,0x0000058f,0x0004007c,0x0000002d,0x000005fd,0x000005fc,0x0003003e, + 0x000005fe,0x000005fd,0x0004003d,0x00000006,0x00000600,0x000000ef,0x0003003e,0x000005ff, + 0x00000600,0x00060039,0x0000009f,0x00000601,0x000000e7,0x000005fe,0x000005ff,0x00050041, + 0x000000aa,0x00000602,0x000005ab,0x000001b3,0x0003003e,0x00000602,0x00000601,0x0004003d, + 0x00000032,0x00000604,0x0000059d,0x0003003e,0x00000603,0x00000604,0x00050041,0x000000aa, + 0x00000606,0x000005ab,0x000001b3,0x0004003d,0x0000009f,0x00000607,0x00000606,0x0003003e, + 0x00000605,0x00000607,0x0003003e,0x00000608,0x000001bf,0x0004003d,0x00000006,0x0000060a, + 0x000000ef,0x0003003e,0x00000609,0x0000060a,0x00080039,0x00000002,0x0000060b,0x000000b7, + 0x00000603,0x00000605,0x00000608,0x00000609,0x0004003d,0x0000002d,0x0000060c,0x000000ec, + 0x00050050,0x0000002d,0x0000060d,0x00000591,0x00000591,0x00050084,0x0000002d,0x0000060e, + 0x0000060c,0x0000060d,0x0004007c,0x00000032,0x0000060f,0x0000060e,0x0004003d,0x00000006, + 0x00000610,0x000000ea,0x00050084,0x00000006,0x00000611,0x00000610,0x0000016b,0x00050080, + 0x00000006,0x00000612,0x00000611,0x0000059f,0x0004007c,0x0000001a,0x00000613,0x00000612, + 0x0004003d,0x00000006,0x00000614,0x000000eb,0x00050084,0x00000006,0x00000615,0x00000614, + 0x0000016b,0x00050080,0x00000006,0x00000616,0x00000615,0x0000059f,0x0004007c,0x0000001a, + 0x00000617,0x00000616,0x00050050,0x00000032,0x00000618,0x00000613,0x00000617,0x00050080, + 0x00000032,0x00000619,0x0000060f,0x00000618,0x0003003e,0x0000058f,0x00000619,0x0004003d, + 0x0000002d,0x0000061a,0x000000ec,0x00050050,0x0000002d,0x0000061b,0x0000059f,0x0000059f, + 0x00050084,0x0000002d,0x0000061c,0x0000061a,0x0000061b,0x0004007c,0x00000032,0x0000061d, + 0x0000061c,0x0004003d,0x00000006,0x0000061e,0x000000ea,0x00050080,0x00000006,0x0000061f, + 0x0000061e,0x000004bf,0x0004007c,0x0000001a,0x00000620,0x0000061f,0x0004003d,0x00000006, + 0x00000621,0x000000eb,0x00050080,0x00000006,0x00000622,0x00000621,0x000004bf,0x0004007c, + 0x0000001a,0x00000623,0x00000622,0x00050050,0x00000032,0x00000624,0x00000620,0x00000623, + 0x00050080,0x00000032,0x00000625,0x0000061d,0x00000624,0x0003003e,0x0000059d,0x00000625, + 0x0004003d,0x00000032,0x00000626,0x0000058f,0x0004007c,0x0000002d,0x00000627,0x00000626, + 0x0003003e,0x00000628,0x00000627,0x0004003d,0x00000006,0x0000062a,0x000000ef,0x0003003e, + 0x00000629,0x0000062a,0x00060039,0x0000009f,0x0000062b,0x000000e7,0x00000628,0x00000629, + 0x00050041,0x000000aa,0x0000062c,0x000005ab,0x000002ba,0x0003003e,0x0000062c,0x0000062b, + 0x0004003d,0x00000032,0x0000062e,0x0000059d,0x0003003e,0x0000062d,0x0000062e,0x00050041, + 0x000000aa,0x00000630,0x000005ab,0x000002ba,0x0004003d,0x0000009f,0x00000631,0x00000630, + 0x0003003e,0x0000062f,0x00000631,0x0003003e,0x00000632,0x000001bf,0x0004003d,0x00000006, + 0x00000634,0x000000ef,0x0003003e,0x00000633,0x00000634,0x00080039,0x00000002,0x00000635, + 0x000000b7,0x0000062d,0x0000062f,0x00000632,0x00000633,0x0004003d,0x00000006,0x00000636, + 0x000000ee,0x000500b2,0x0000006e,0x00000637,0x00000636,0x00000172,0x000300f7,0x00000639, + 0x00000000,0x000400fa,0x00000637,0x00000638,0x00000639,0x000200f8,0x00000638,0x000100fd, + 0x000200f8,0x00000639,0x00050041,0x000000aa,0x0000063c,0x000005ab,0x0000014c,0x0004003d, + 0x0000009f,0x0000063d,0x0000063c,0x0003003e,0x0000063b,0x0000063d,0x00050039,0x0000009f, + 0x0000063e,0x000000ce,0x0000063b,0x00050041,0x000000aa,0x0000063f,0x000005ab,0x0000014c, + 0x0003003e,0x0000063f,0x0000063e,0x00050041,0x000000aa,0x00000641,0x000005ab,0x00000191, + 0x0004003d,0x0000009f,0x00000642,0x00000641,0x0003003e,0x00000640,0x00000642,0x00050039, + 0x0000009f,0x00000643,0x000000ce,0x00000640,0x00050041,0x000000aa,0x00000644,0x000005ab, + 0x00000191,0x0003003e,0x00000644,0x00000643,0x00050041,0x000000aa,0x00000646,0x000005ab, + 0x000001b3,0x0004003d,0x0000009f,0x00000647,0x00000646,0x0003003e,0x00000645,0x00000647, + 0x00050039,0x0000009f,0x00000648,0x000000ce,0x00000645,0x00050041,0x000000aa,0x00000649, + 0x000005ab,0x000001b3,0x0003003e,0x00000649,0x00000648,0x00050041,0x000000aa,0x0000064b, + 0x000005ab,0x000002ba,0x0004003d,0x0000009f,0x0000064c,0x0000064b,0x0003003e,0x0000064a, + 0x0000064c,0x00050039,0x0000009f,0x0000064d,0x000000ce,0x0000064a,0x00050041,0x000000aa, + 0x0000064e,0x000005ab,0x000002ba,0x0003003e,0x0000064e,0x0000064d,0x0004003d,0x00000006, + 0x0000064f,0x000000ed,0x00050089,0x00000006,0x00000650,0x0000064f,0x0000020b,0x000500aa, + 0x0000006e,0x00000651,0x00000650,0x000001bf,0x000300f7,0x00000653,0x00000000,0x000400fa, + 0x00000651,0x00000652,0x00000653,0x000200f8,0x00000652,0x0004003d,0x0000002d,0x00000654, + 0x000000ec,0x00050050,0x0000002d,0x00000655,0x000004bf,0x000004bf,0x00050084,0x0000002d, + 0x00000656,0x00000654,0x00000655,0x0004007c,0x00000032,0x00000657,0x00000656,0x0004003d, + 0x00000006,0x00000658,0x000000ea,0x00050086,0x00000006,0x00000659,0x00000658,0x0000016b, + 0x0004007c,0x0000001a,0x0000065a,0x00000659,0x0004003d,0x00000006,0x0000065b,0x000000eb, + 0x00050086,0x00000006,0x0000065c,0x0000065b,0x0000016b,0x0004007c,0x0000001a,0x0000065d, + 0x0000065c,0x00050050,0x00000032,0x0000065e,0x0000065a,0x0000065d,0x00050080,0x00000032, + 0x0000065f,0x00000657,0x0000065e,0x0003003e,0x00000660,0x0000065f,0x00050041,0x000000aa, + 0x00000662,0x000005ab,0x0000014c,0x0004003d,0x0000009f,0x00000663,0x00000662,0x0003003e, + 0x00000661,0x00000663,0x0003003e,0x00000664,0x00000172,0x0004003d,0x00000006,0x00000666, + 0x000000ef,0x0003003e,0x00000665,0x00000666,0x00080039,0x00000002,0x00000667,0x000000b7, + 0x00000660,0x00000661,0x00000664,0x00000665,0x0004003d,0x00000006,0x00000668,0x000000ea, + 0x00050086,0x00000006,0x00000669,0x00000668,0x0000016b,0x0004003d,0x00000006,0x0000066a, + 0x000000eb,0x00050086,0x00000006,0x0000066b,0x0000066a,0x0000016b,0x0003003e,0x0000066c, + 0x00000669,0x0003003e,0x0000066d,0x0000066b,0x00050041,0x000000aa,0x0000066f,0x000005ab, + 0x0000014c,0x0004003d,0x0000009f,0x00000670,0x0000066f,0x0003003e,0x0000066e,0x00000670, + 0x00070039,0x00000002,0x00000671,0x000000c2,0x0000066c,0x0000066d,0x0000066e,0x0004003d, + 0x0000002d,0x00000672,0x000000ec,0x00050050,0x0000002d,0x00000673,0x000004bf,0x000004bf, + 0x00050084,0x0000002d,0x00000674,0x00000672,0x00000673,0x0004007c,0x00000032,0x00000675, + 0x00000674,0x0004003d,0x00000006,0x00000676,0x000000ea,0x00050086,0x00000006,0x00000677, + 0x00000676,0x0000016b,0x00050080,0x00000006,0x00000679,0x00000677,0x00000678,0x0004007c, + 0x0000001a,0x0000067a,0x00000679,0x0004003d,0x00000006,0x0000067b,0x000000eb,0x00050086, + 0x00000006,0x0000067c,0x0000067b,0x0000016b,0x0004007c,0x0000001a,0x0000067d,0x0000067c, + 0x00050050,0x00000032,0x0000067e,0x0000067a,0x0000067d,0x00050080,0x00000032,0x0000067f, + 0x00000675,0x0000067e,0x0003003e,0x00000680,0x0000067f,0x00050041,0x000000aa,0x00000682, + 0x000005ab,0x00000191,0x0004003d,0x0000009f,0x00000683,0x00000682,0x0003003e,0x00000681, + 0x00000683,0x0003003e,0x00000684,0x00000172,0x0004003d,0x00000006,0x00000686,0x000000ef, + 0x0003003e,0x00000685,0x00000686,0x00080039,0x00000002,0x00000687,0x000000b7,0x00000680, + 0x00000681,0x00000684,0x00000685,0x0004003d,0x00000006,0x00000688,0x000000ea,0x00050086, + 0x00000006,0x00000689,0x00000688,0x0000016b,0x00050080,0x00000006,0x0000068a,0x00000689, + 0x00000678,0x0004003d,0x00000006,0x0000068b,0x000000eb,0x00050086,0x00000006,0x0000068c, + 0x0000068b,0x0000016b,0x0003003e,0x0000068d,0x0000068a,0x0003003e,0x0000068e,0x0000068c, + 0x00050041,0x000000aa,0x00000690,0x000005ab,0x00000191,0x0004003d,0x0000009f,0x00000691, + 0x00000690,0x0003003e,0x0000068f,0x00000691,0x00070039,0x00000002,0x00000692,0x000000c2, + 0x0000068d,0x0000068e,0x0000068f,0x0004003d,0x0000002d,0x00000693,0x000000ec,0x00050050, + 0x0000002d,0x00000694,0x000004bf,0x000004bf,0x00050084,0x0000002d,0x00000695,0x00000693, + 0x00000694,0x0004007c,0x00000032,0x00000696,0x00000695,0x0004003d,0x00000006,0x00000697, + 0x000000ea,0x00050086,0x00000006,0x00000698,0x00000697,0x0000016b,0x0004007c,0x0000001a, + 0x00000699,0x00000698,0x0004003d,0x00000006,0x0000069a,0x000000eb,0x00050086,0x00000006, + 0x0000069b,0x0000069a,0x0000016b,0x00050080,0x00000006,0x0000069c,0x0000069b,0x00000678, + 0x0004007c,0x0000001a,0x0000069d,0x0000069c,0x00050050,0x00000032,0x0000069e,0x00000699, + 0x0000069d,0x00050080,0x00000032,0x0000069f,0x00000696,0x0000069e,0x0003003e,0x000006a0, + 0x0000069f,0x00050041,0x000000aa,0x000006a2,0x000005ab,0x000001b3,0x0004003d,0x0000009f, + 0x000006a3,0x000006a2,0x0003003e,0x000006a1,0x000006a3,0x0003003e,0x000006a4,0x00000172, + 0x0004003d,0x00000006,0x000006a6,0x000000ef,0x0003003e,0x000006a5,0x000006a6,0x00080039, + 0x00000002,0x000006a7,0x000000b7,0x000006a0,0x000006a1,0x000006a4,0x000006a5,0x0004003d, + 0x00000006,0x000006a8,0x000000ea,0x00050086,0x00000006,0x000006a9,0x000006a8,0x0000016b, + 0x0004003d,0x00000006,0x000006aa,0x000000eb,0x00050086,0x00000006,0x000006ab,0x000006aa, + 0x0000016b,0x00050080,0x00000006,0x000006ac,0x000006ab,0x00000678,0x0003003e,0x000006ad, + 0x000006a9,0x0003003e,0x000006ae,0x000006ac,0x00050041,0x000000aa,0x000006b0,0x000005ab, + 0x000001b3,0x0004003d,0x0000009f,0x000006b1,0x000006b0,0x0003003e,0x000006af,0x000006b1, + 0x00070039,0x00000002,0x000006b2,0x000000c2,0x000006ad,0x000006ae,0x000006af,0x0004003d, + 0x0000002d,0x000006b3,0x000000ec,0x00050050,0x0000002d,0x000006b4,0x000004bf,0x000004bf, + 0x00050084,0x0000002d,0x000006b5,0x000006b3,0x000006b4,0x0004007c,0x00000032,0x000006b6, + 0x000006b5,0x0004003d,0x00000006,0x000006b7,0x000000ea,0x00050086,0x00000006,0x000006b8, + 0x000006b7,0x0000016b,0x00050080,0x00000006,0x000006b9,0x000006b8,0x00000678,0x0004007c, + 0x0000001a,0x000006ba,0x000006b9,0x0004003d,0x00000006,0x000006bb,0x000000eb,0x00050086, + 0x00000006,0x000006bc,0x000006bb,0x0000016b,0x00050080,0x00000006,0x000006bd,0x000006bc, + 0x00000678,0x0004007c,0x0000001a,0x000006be,0x000006bd,0x00050050,0x00000032,0x000006bf, + 0x000006ba,0x000006be,0x00050080,0x00000032,0x000006c0,0x000006b6,0x000006bf,0x0003003e, + 0x000006c1,0x000006c0,0x00050041,0x000000aa,0x000006c3,0x000005ab,0x000002ba,0x0004003d, + 0x0000009f,0x000006c4,0x000006c3,0x0003003e,0x000006c2,0x000006c4,0x0003003e,0x000006c5, + 0x00000172,0x0004003d,0x00000006,0x000006c7,0x000000ef,0x0003003e,0x000006c6,0x000006c7, + 0x00080039,0x00000002,0x000006c8,0x000000b7,0x000006c1,0x000006c2,0x000006c5,0x000006c6, + 0x0004003d,0x00000006,0x000006c9,0x000000ea,0x00050086,0x00000006,0x000006ca,0x000006c9, + 0x0000016b,0x00050080,0x00000006,0x000006cb,0x000006ca,0x00000678,0x0004003d,0x00000006, + 0x000006cc,0x000000eb,0x00050086,0x00000006,0x000006cd,0x000006cc,0x0000016b,0x00050080, + 0x00000006,0x000006ce,0x000006cd,0x00000678,0x0003003e,0x000006cf,0x000006cb,0x0003003e, + 0x000006d0,0x000006ce,0x00050041,0x000000aa,0x000006d2,0x000005ab,0x000002ba,0x0004003d, + 0x0000009f,0x000006d3,0x000006d2,0x0003003e,0x000006d1,0x000006d3,0x00070039,0x00000002, + 0x000006d4,0x000000c2,0x000006cf,0x000006d0,0x000006d1,0x000200f9,0x00000653,0x000200f8, + 0x00000653,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f8,0x00000000,0x000000e9, + 0x00030037,0x00000007,0x000000f2,0x00030037,0x00000007,0x000000f3,0x00030037,0x000000d0, + 0x000000f4,0x00030037,0x00000007,0x000000f5,0x00030037,0x00000007,0x000000f6,0x00030037, + 0x00000007,0x000000f7,0x000200f8,0x000000f9,0x0004003b,0x00000007,0x000006d5,0x00000007, + 0x0004003b,0x00000007,0x000006d7,0x00000007,0x0004003b,0x000000d0,0x000006d9,0x00000007, + 0x0004003b,0x00000007,0x000006db,0x00000007,0x0004003b,0x00000007,0x000006dd,0x00000007, + 0x0004003b,0x00000007,0x000006df,0x00000007,0x0004003d,0x00000006,0x000006d6,0x000000f2, + 0x0003003e,0x000006d5,0x000006d6,0x0004003d,0x00000006,0x000006d8,0x000000f3,0x0003003e, + 0x000006d7,0x000006d8,0x0004003d,0x0000002d,0x000006da,0x000000f4,0x0003003e,0x000006d9, + 0x000006da,0x0004003d,0x00000006,0x000006dc,0x000000f5,0x0003003e,0x000006db,0x000006dc, + 0x0004003d,0x00000006,0x000006de,0x000000f6,0x0003003e,0x000006dd,0x000006de,0x0004003d, + 0x00000006,0x000006e0,0x000000f7,0x0003003e,0x000006df,0x000006e0,0x000a0039,0x00000002, + 0x000006e1,0x000000f0,0x000006d5,0x000006d7,0x000006d9,0x000006db,0x000006dd,0x000006df, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000100,0x00000000,0x000000e9,0x00030037, + 0x00000007,0x000000fa,0x00030037,0x00000007,0x000000fb,0x00030037,0x000000d0,0x000000fc, + 0x00030037,0x00000007,0x000000fd,0x00030037,0x00000007,0x000000fe,0x00030037,0x00000007, + 0x000000ff,0x000200f8,0x00000101,0x0004003b,0x000000aa,0x000006e2,0x00000007,0x0004003b, + 0x00000007,0x000006e3,0x00000007,0x0004003b,0x00000007,0x000006e5,0x00000007,0x0004003b, + 0x000000aa,0x000006e8,0x00000007,0x0004003b,0x00000049,0x000006fc,0x00000007,0x0004003b, + 0x000000aa,0x000006fd,0x00000007,0x0004003b,0x00000007,0x000006ff,0x00000007,0x0004003b, + 0x00000007,0x00000701,0x00000007,0x0004003b,0x00000007,0x00000709,0x00000007,0x0004003b, + 0x00000007,0x0000070a,0x00000007,0x0004003b,0x000000aa,0x0000070c,0x00000007,0x0004003d, + 0x00000006,0x000006e4,0x000000fa,0x0003003e,0x000006e3,0x000006e4,0x0004003d,0x00000006, + 0x000006e6,0x000000fb,0x0003003e,0x000006e5,0x000006e6,0x00060039,0x0000009f,0x000006e7, + 0x000000bc,0x000006e3,0x000006e5,0x0003003e,0x000006e2,0x000006e7,0x0004003d,0x0000009f, + 0x000006e9,0x000006e2,0x0003003e,0x000006e8,0x000006e9,0x00050039,0x0000009f,0x000006ea, + 0x000000ce,0x000006e8,0x0003003e,0x000006e2,0x000006ea,0x0004003d,0x00000006,0x000006eb, + 0x000000fd,0x00050089,0x00000006,0x000006ec,0x000006eb,0x0000020b,0x000500aa,0x0000006e, + 0x000006ed,0x000006ec,0x000001bf,0x000300f7,0x000006ef,0x00000000,0x000400fa,0x000006ed, + 0x000006ee,0x000006ef,0x000200f8,0x000006ee,0x0004003d,0x0000002d,0x000006f0,0x000000fc, + 0x00050050,0x0000002d,0x000006f1,0x00000678,0x00000678,0x00050084,0x0000002d,0x000006f2, + 0x000006f0,0x000006f1,0x0004007c,0x00000032,0x000006f3,0x000006f2,0x0004003d,0x00000006, + 0x000006f4,0x000000fa,0x00050086,0x00000006,0x000006f5,0x000006f4,0x0000016b,0x0004007c, + 0x0000001a,0x000006f6,0x000006f5,0x0004003d,0x00000006,0x000006f7,0x000000fb,0x00050086, + 0x00000006,0x000006f8,0x000006f7,0x0000016b,0x0004007c,0x0000001a,0x000006f9,0x000006f8, + 0x00050050,0x00000032,0x000006fa,0x000006f6,0x000006f9,0x00050080,0x00000032,0x000006fb, + 0x000006f3,0x000006fa,0x0003003e,0x000006fc,0x000006fb,0x0004003d,0x0000009f,0x000006fe, + 0x000006e2,0x0003003e,0x000006fd,0x000006fe,0x0004003d,0x00000006,0x00000700,0x000000fe, + 0x0003003e,0x000006ff,0x00000700,0x0004003d,0x00000006,0x00000702,0x000000ff,0x0003003e, + 0x00000701,0x00000702,0x00080039,0x00000002,0x00000703,0x000000b7,0x000006fc,0x000006fd, + 0x000006ff,0x00000701,0x0004003d,0x00000006,0x00000704,0x000000fa,0x0004003d,0x00000006, + 0x00000705,0x000000fb,0x00050086,0x00000006,0x00000706,0x00000705,0x0000016b,0x00050089, + 0x00000006,0x00000707,0x00000706,0x0000016b,0x00050080,0x00000006,0x00000708,0x00000704, + 0x00000707,0x0003003e,0x00000709,0x00000708,0x0004003d,0x00000006,0x0000070b,0x000000fb, + 0x0003003e,0x0000070a,0x0000070b,0x0004003d,0x0000009f,0x0000070d,0x000006e2,0x0003003e, + 0x0000070c,0x0000070d,0x00070039,0x00000002,0x0000070e,0x000000c2,0x00000709,0x0000070a, + 0x0000070c,0x000200f9,0x000006ef,0x000200f8,0x000006ef,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000108,0x00000000,0x000000e9,0x00030037,0x00000007,0x00000102,0x00030037, + 0x00000007,0x00000103,0x00030037,0x000000d0,0x00000104,0x00030037,0x00000007,0x00000105, + 0x00030037,0x00000007,0x00000106,0x00030037,0x00000007,0x00000107,0x000200f8,0x00000109, + 0x0004003b,0x000000aa,0x00000713,0x00000007,0x0004003b,0x00000007,0x0000071b,0x00000007, + 0x0004003b,0x00000007,0x0000071c,0x00000007,0x0004003b,0x000000aa,0x0000071e,0x00000007, + 0x0004003b,0x00000049,0x00000732,0x00000007,0x0004003b,0x000000aa,0x00000733,0x00000007, + 0x0004003b,0x00000007,0x00000735,0x00000007,0x0004003b,0x00000007,0x00000737,0x00000007, + 0x0004003b,0x00000007,0x00000741,0x00000007,0x0004003b,0x00000007,0x00000742,0x00000007, + 0x0004003b,0x000000aa,0x00000743,0x00000007,0x0004003d,0x00000006,0x0000070f,0x00000105, + 0x000500b0,0x0000006e,0x00000710,0x0000070f,0x00000591,0x000300f7,0x00000712,0x00000000, + 0x000400fa,0x00000710,0x00000711,0x00000712,0x000200f8,0x00000711,0x0004003d,0x00000006, + 0x00000714,0x00000102,0x00050084,0x00000006,0x00000715,0x00000714,0x0000016b,0x0004003d, + 0x00000006,0x00000716,0x00000103,0x00050089,0x00000006,0x00000717,0x00000716,0x0000016b, + 0x00050080,0x00000006,0x00000718,0x00000715,0x00000717,0x0004003d,0x00000006,0x00000719, + 0x00000103,0x00050084,0x00000006,0x0000071a,0x00000719,0x0000016b,0x0003003e,0x0000071b, + 0x00000718,0x0003003e,0x0000071c,0x0000071a,0x00060039,0x0000009f,0x0000071d,0x000000bc, + 0x0000071b,0x0000071c,0x0003003e,0x00000713,0x0000071d,0x0004003d,0x0000009f,0x0000071f, + 0x00000713,0x0003003e,0x0000071e,0x0000071f,0x00050039,0x0000009f,0x00000720,0x000000ce, + 0x0000071e,0x0003003e,0x00000713,0x00000720,0x0004003d,0x00000006,0x00000721,0x00000105, + 0x00050089,0x00000006,0x00000722,0x00000721,0x0000020b,0x000500aa,0x0000006e,0x00000723, + 0x00000722,0x000001bf,0x000300f7,0x00000725,0x00000000,0x000400fa,0x00000723,0x00000724, + 0x00000725,0x000200f8,0x00000724,0x0004003d,0x0000002d,0x00000726,0x00000104,0x00050050, + 0x0000002d,0x00000727,0x0000020b,0x0000020b,0x00050084,0x0000002d,0x00000728,0x00000726, + 0x00000727,0x0004007c,0x00000032,0x00000729,0x00000728,0x0004003d,0x00000006,0x0000072a, + 0x00000102,0x00050086,0x00000006,0x0000072b,0x0000072a,0x0000016b,0x0004007c,0x0000001a, + 0x0000072c,0x0000072b,0x0004003d,0x00000006,0x0000072d,0x00000103,0x00050086,0x00000006, + 0x0000072e,0x0000072d,0x0000016b,0x0004007c,0x0000001a,0x0000072f,0x0000072e,0x00050050, + 0x00000032,0x00000730,0x0000072c,0x0000072f,0x00050080,0x00000032,0x00000731,0x00000729, + 0x00000730,0x0003003e,0x00000732,0x00000731,0x0004003d,0x0000009f,0x00000734,0x00000713, + 0x0003003e,0x00000733,0x00000734,0x0004003d,0x00000006,0x00000736,0x00000106,0x0003003e, + 0x00000735,0x00000736,0x0004003d,0x00000006,0x00000738,0x00000107,0x0003003e,0x00000737, + 0x00000738,0x00080039,0x00000002,0x00000739,0x000000b7,0x00000732,0x00000733,0x00000735, + 0x00000737,0x0004003d,0x00000006,0x0000073a,0x00000102,0x00050084,0x00000006,0x0000073b, + 0x0000073a,0x0000016b,0x0004003d,0x00000006,0x0000073c,0x00000103,0x00050086,0x00000006, + 0x0000073d,0x0000073c,0x0000016b,0x00050080,0x00000006,0x0000073e,0x0000073b,0x0000073d, + 0x0004003d,0x00000006,0x0000073f,0x00000103,0x00050084,0x00000006,0x00000740,0x0000073f, + 0x0000016b,0x0003003e,0x00000741,0x0000073e,0x0003003e,0x00000742,0x00000740,0x0004003d, + 0x0000009f,0x00000744,0x00000713,0x0003003e,0x00000743,0x00000744,0x00070039,0x00000002, + 0x00000745,0x000000c2,0x00000741,0x00000742,0x00000743,0x000200f9,0x00000725,0x000200f8, + 0x00000725,0x000200f9,0x00000712,0x000200f8,0x00000712,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000110,0x00000000,0x000000e9,0x00030037,0x00000007,0x0000010a,0x00030037, + 0x00000007,0x0000010b,0x00030037,0x000000d0,0x0000010c,0x00030037,0x00000007,0x0000010d, + 0x00030037,0x00000007,0x0000010e,0x00030037,0x00000007,0x0000010f,0x000200f8,0x00000111, + 0x0004003b,0x000000aa,0x0000074a,0x00000007,0x0004003b,0x00000007,0x00000751,0x00000007, + 0x0004003b,0x00000007,0x00000752,0x00000007,0x0004003b,0x000000aa,0x00000754,0x00000007, + 0x0004003b,0x00000049,0x00000768,0x00000007,0x0004003b,0x000000aa,0x00000769,0x00000007, + 0x0004003b,0x00000007,0x0000076b,0x00000007,0x0004003b,0x00000007,0x0000076d,0x00000007, + 0x0004003b,0x00000007,0x00000774,0x00000007,0x0004003b,0x00000007,0x00000775,0x00000007, + 0x0004003b,0x000000aa,0x00000776,0x00000007,0x0004003d,0x00000006,0x00000746,0x0000010d, + 0x000500b0,0x0000006e,0x00000747,0x00000746,0x000004bf,0x000300f7,0x00000749,0x00000000, + 0x000400fa,0x00000747,0x00000748,0x00000749,0x000200f8,0x00000748,0x0004003d,0x00000006, + 0x0000074b,0x0000010a,0x00050084,0x00000006,0x0000074c,0x0000074b,0x0000020b,0x0004003d, + 0x00000006,0x0000074d,0x0000010b,0x00050080,0x00000006,0x0000074e,0x0000074c,0x0000074d, + 0x0004003d,0x00000006,0x0000074f,0x0000010b,0x00050084,0x00000006,0x00000750,0x0000074f, + 0x0000020b,0x0003003e,0x00000751,0x0000074e,0x0003003e,0x00000752,0x00000750,0x00060039, + 0x0000009f,0x00000753,0x000000bc,0x00000751,0x00000752,0x0003003e,0x0000074a,0x00000753, + 0x0004003d,0x0000009f,0x00000755,0x0000074a,0x0003003e,0x00000754,0x00000755,0x00050039, + 0x0000009f,0x00000756,0x000000ce,0x00000754,0x0003003e,0x0000074a,0x00000756,0x0004003d, + 0x00000006,0x00000757,0x0000010d,0x00050089,0x00000006,0x00000758,0x00000757,0x0000020b, + 0x000500aa,0x0000006e,0x00000759,0x00000758,0x000001bf,0x000300f7,0x0000075b,0x00000000, + 0x000400fa,0x00000759,0x0000075a,0x0000075b,0x000200f8,0x0000075a,0x0004003d,0x0000002d, + 0x0000075c,0x0000010c,0x00050050,0x0000002d,0x0000075d,0x0000016b,0x0000016b,0x00050084, + 0x0000002d,0x0000075e,0x0000075c,0x0000075d,0x0004007c,0x00000032,0x0000075f,0x0000075e, + 0x0004003d,0x00000006,0x00000760,0x0000010a,0x00050086,0x00000006,0x00000761,0x00000760, + 0x0000016b,0x0004007c,0x0000001a,0x00000762,0x00000761,0x0004003d,0x00000006,0x00000763, + 0x0000010b,0x00050086,0x00000006,0x00000764,0x00000763,0x0000016b,0x0004007c,0x0000001a, + 0x00000765,0x00000764,0x00050050,0x00000032,0x00000766,0x00000762,0x00000765,0x00050080, + 0x00000032,0x00000767,0x0000075f,0x00000766,0x0003003e,0x00000768,0x00000767,0x0004003d, + 0x0000009f,0x0000076a,0x0000074a,0x0003003e,0x00000769,0x0000076a,0x0004003d,0x00000006, + 0x0000076c,0x0000010e,0x0003003e,0x0000076b,0x0000076c,0x0004003d,0x00000006,0x0000076e, + 0x0000010f,0x0003003e,0x0000076d,0x0000076e,0x00080039,0x00000002,0x0000076f,0x000000b7, + 0x00000768,0x00000769,0x0000076b,0x0000076d,0x0004003d,0x00000006,0x00000770,0x0000010a, + 0x00050086,0x00000006,0x00000771,0x00000770,0x0000016b,0x0004003d,0x00000006,0x00000772, + 0x0000010b,0x00050080,0x00000006,0x00000773,0x00000771,0x00000772,0x0003003e,0x00000774, + 0x00000773,0x0003003e,0x00000775,0x000001bf,0x0004003d,0x0000009f,0x00000777,0x0000074a, + 0x0003003e,0x00000776,0x00000777,0x00070039,0x00000002,0x00000778,0x000000c2,0x00000774, + 0x00000775,0x00000776,0x000200f9,0x0000075b,0x000200f8,0x0000075b,0x000200f9,0x00000749, + 0x000200f8,0x00000749,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000117,0x00000000, + 0x00000112,0x00030037,0x000000d0,0x00000113,0x00030037,0x00000007,0x00000114,0x00030037, + 0x00000007,0x00000115,0x00030037,0x00000007,0x00000116,0x000200f8,0x00000118,0x0004003b, + 0x000000aa,0x0000077d,0x00000007,0x0004003b,0x00000007,0x0000077e,0x00000007,0x0004003b, + 0x00000007,0x00000780,0x00000007,0x0004003b,0x000000aa,0x00000782,0x00000007,0x0004003b, + 0x00000049,0x0000078c,0x00000007,0x0004003b,0x000000aa,0x0000078d,0x00000007,0x0004003b, + 0x00000007,0x0000078f,0x00000007,0x0004003b,0x00000007,0x00000791,0x00000007,0x0004003d, + 0x00000006,0x00000779,0x00000114,0x000500b0,0x0000006e,0x0000077a,0x00000779,0x0000020b, + 0x000300f7,0x0000077c,0x00000000,0x000400fa,0x0000077a,0x0000077b,0x0000077c,0x000200f8, + 0x0000077b,0x0004003d,0x00000006,0x0000077f,0x00000114,0x0003003e,0x0000077e,0x0000077f, + 0x0003003e,0x00000780,0x000001bf,0x00060039,0x0000009f,0x00000781,0x000000bc,0x0000077e, + 0x00000780,0x0003003e,0x0000077d,0x00000781,0x0004003d,0x0000009f,0x00000783,0x0000077d, + 0x0003003e,0x00000782,0x00000783,0x00050039,0x0000009f,0x00000784,0x000000ce,0x00000782, + 0x0003003e,0x0000077d,0x00000784,0x0004003d,0x00000006,0x00000785,0x00000114,0x00050089, + 0x00000006,0x00000786,0x00000785,0x0000020b,0x000500aa,0x0000006e,0x00000787,0x00000786, + 0x000001bf,0x000300f7,0x00000789,0x00000000,0x000400fa,0x00000787,0x00000788,0x00000789, + 0x000200f8,0x00000788,0x0004003d,0x0000002d,0x0000078a,0x00000113,0x0004007c,0x00000032, + 0x0000078b,0x0000078a,0x0003003e,0x0000078c,0x0000078b,0x0004003d,0x0000009f,0x0000078e, + 0x0000077d,0x0003003e,0x0000078d,0x0000078e,0x0004003d,0x00000006,0x00000790,0x00000115, + 0x0003003e,0x0000078f,0x00000790,0x0004003d,0x00000006,0x00000792,0x00000116,0x0003003e, + 0x00000791,0x00000792,0x00080039,0x00000002,0x00000793,0x000000b7,0x0000078c,0x0000078d, + 0x0000078f,0x00000791,0x000200f9,0x00000789,0x000200f8,0x00000789,0x000200f9,0x0000077c, + 0x000200f8,0x0000077c,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000011e,0x00000000, + 0x00000119,0x00030037,0x00000007,0x0000011a,0x00030037,0x00000007,0x0000011b,0x00030037, + 0x00000007,0x0000011c,0x00030037,0x00000007,0x0000011d,0x000200f8,0x0000011f,0x0004003b, + 0x00000049,0x00000794,0x00000007,0x0004003b,0x00000049,0x0000079e,0x00000007,0x0004003b, + 0x000000aa,0x000007a8,0x00000007,0x0004003b,0x000000d0,0x000007ab,0x00000007,0x0004003b, + 0x00000007,0x000007ac,0x00000007,0x0004003b,0x00000049,0x000007b0,0x00000007,0x0004003b, + 0x000000aa,0x000007b2,0x00000007,0x0004003b,0x00000007,0x000007b4,0x00000007,0x0004003b, + 0x00000007,0x000007b5,0x00000007,0x0004003b,0x000000aa,0x000007ca,0x00000007,0x0004003b, + 0x000000d0,0x000007cd,0x00000007,0x0004003b,0x00000007,0x000007ce,0x00000007,0x0004003b, + 0x00000049,0x000007d1,0x00000007,0x0004003b,0x000000aa,0x000007d3,0x00000007,0x0004003b, + 0x00000007,0x000007d5,0x00000007,0x0004003b,0x00000007,0x000007d6,0x00000007,0x0004003b, + 0x000000aa,0x000007eb,0x00000007,0x0004003b,0x000000d0,0x000007ee,0x00000007,0x0004003b, + 0x00000007,0x000007ef,0x00000007,0x0004003b,0x00000049,0x000007f2,0x00000007,0x0004003b, + 0x000000aa,0x000007f4,0x00000007,0x0004003b,0x00000007,0x000007f6,0x00000007,0x0004003b, + 0x00000007,0x000007f7,0x00000007,0x0004003b,0x000000aa,0x0000080c,0x00000007,0x0004003b, + 0x000000d0,0x0000080f,0x00000007,0x0004003b,0x00000007,0x00000810,0x00000007,0x0004003b, + 0x00000049,0x00000813,0x00000007,0x0004003b,0x000000aa,0x00000815,0x00000007,0x0004003b, + 0x00000007,0x00000817,0x00000007,0x0004003b,0x00000007,0x00000818,0x00000007,0x0004003b, + 0x000000aa,0x00000821,0x00000007,0x0004003b,0x000000aa,0x00000822,0x00000007,0x0004003b, + 0x000000aa,0x00000824,0x00000007,0x0004003b,0x000000aa,0x00000826,0x00000007,0x0004003b, + 0x000000aa,0x00000828,0x00000007,0x0004003b,0x00000049,0x00000830,0x00000007,0x0004003b, + 0x000000aa,0x00000831,0x00000007,0x0004003b,0x00000007,0x00000833,0x00000007,0x0004003b, + 0x00000007,0x00000834,0x00000007,0x0004003b,0x00000007,0x00000837,0x00000007,0x0004003b, + 0x00000007,0x00000839,0x00000007,0x0004003b,0x000000aa,0x0000083b,0x00000007,0x0004003d, + 0x00000006,0x00000795,0x0000011a,0x00050084,0x00000006,0x00000796,0x00000795,0x0000020b, + 0x00050080,0x00000006,0x00000797,0x00000796,0x000001bf,0x0004007c,0x0000001a,0x00000798, + 0x00000797,0x0004003d,0x00000006,0x00000799,0x0000011b,0x00050084,0x00000006,0x0000079a, + 0x00000799,0x0000020b,0x00050080,0x00000006,0x0000079b,0x0000079a,0x000001bf,0x0004007c, + 0x0000001a,0x0000079c,0x0000079b,0x00050050,0x00000032,0x0000079d,0x00000798,0x0000079c, + 0x0003003e,0x00000794,0x0000079d,0x0004003d,0x00000006,0x0000079f,0x0000011a,0x00050084, + 0x00000006,0x000007a0,0x0000079f,0x0000016b,0x00050080,0x00000006,0x000007a1,0x000007a0, + 0x000001bf,0x0004007c,0x0000001a,0x000007a2,0x000007a1,0x0004003d,0x00000006,0x000007a3, + 0x0000011b,0x00050084,0x00000006,0x000007a4,0x000007a3,0x0000016b,0x00050080,0x00000006, + 0x000007a5,0x000007a4,0x000001bf,0x0004007c,0x0000001a,0x000007a6,0x000007a5,0x00050050, + 0x00000032,0x000007a7,0x000007a2,0x000007a6,0x0003003e,0x0000079e,0x000007a7,0x0004003d, + 0x00000032,0x000007a9,0x00000794,0x0004007c,0x0000002d,0x000007aa,0x000007a9,0x0003003e, + 0x000007ab,0x000007aa,0x0004003d,0x00000006,0x000007ad,0x0000011d,0x0003003e,0x000007ac, + 0x000007ad,0x00060039,0x0000009f,0x000007ae,0x000000dc,0x000007ab,0x000007ac,0x0003003e, + 0x000007a8,0x000007ae,0x0004003d,0x00000032,0x000007b1,0x0000079e,0x0003003e,0x000007b0, + 0x000007b1,0x0004003d,0x0000009f,0x000007b3,0x000007a8,0x0003003e,0x000007b2,0x000007b3, + 0x0003003e,0x000007b4,0x000007af,0x0004003d,0x00000006,0x000007b6,0x0000011d,0x0003003e, + 0x000007b5,0x000007b6,0x00080039,0x00000002,0x000007b7,0x000000b7,0x000007b0,0x000007b2, + 0x000007b4,0x000007b5,0x0004003d,0x00000006,0x000007b8,0x0000011a,0x00050084,0x00000006, + 0x000007b9,0x000007b8,0x0000020b,0x00050080,0x00000006,0x000007ba,0x000007b9,0x0000016b, + 0x0004007c,0x0000001a,0x000007bb,0x000007ba,0x0004003d,0x00000006,0x000007bc,0x0000011b, + 0x00050084,0x00000006,0x000007bd,0x000007bc,0x0000020b,0x00050080,0x00000006,0x000007be, + 0x000007bd,0x000001bf,0x0004007c,0x0000001a,0x000007bf,0x000007be,0x00050050,0x00000032, + 0x000007c0,0x000007bb,0x000007bf,0x0003003e,0x00000794,0x000007c0,0x0004003d,0x00000006, + 0x000007c1,0x0000011a,0x00050084,0x00000006,0x000007c2,0x000007c1,0x0000016b,0x00050080, + 0x00000006,0x000007c3,0x000007c2,0x00000172,0x0004007c,0x0000001a,0x000007c4,0x000007c3, + 0x0004003d,0x00000006,0x000007c5,0x0000011b,0x00050084,0x00000006,0x000007c6,0x000007c5, + 0x0000016b,0x00050080,0x00000006,0x000007c7,0x000007c6,0x000001bf,0x0004007c,0x0000001a, + 0x000007c8,0x000007c7,0x00050050,0x00000032,0x000007c9,0x000007c4,0x000007c8,0x0003003e, + 0x0000079e,0x000007c9,0x0004003d,0x00000032,0x000007cb,0x00000794,0x0004007c,0x0000002d, + 0x000007cc,0x000007cb,0x0003003e,0x000007cd,0x000007cc,0x0004003d,0x00000006,0x000007cf, + 0x0000011d,0x0003003e,0x000007ce,0x000007cf,0x00060039,0x0000009f,0x000007d0,0x000000dc, + 0x000007cd,0x000007ce,0x0003003e,0x000007ca,0x000007d0,0x0004003d,0x00000032,0x000007d2, + 0x0000079e,0x0003003e,0x000007d1,0x000007d2,0x0004003d,0x0000009f,0x000007d4,0x000007ca, + 0x0003003e,0x000007d3,0x000007d4,0x0003003e,0x000007d5,0x000007af,0x0004003d,0x00000006, + 0x000007d7,0x0000011d,0x0003003e,0x000007d6,0x000007d7,0x00080039,0x00000002,0x000007d8, + 0x000000b7,0x000007d1,0x000007d3,0x000007d5,0x000007d6,0x0004003d,0x00000006,0x000007d9, + 0x0000011a,0x00050084,0x00000006,0x000007da,0x000007d9,0x0000020b,0x00050080,0x00000006, + 0x000007db,0x000007da,0x000001bf,0x0004007c,0x0000001a,0x000007dc,0x000007db,0x0004003d, + 0x00000006,0x000007dd,0x0000011b,0x00050084,0x00000006,0x000007de,0x000007dd,0x0000020b, + 0x00050080,0x00000006,0x000007df,0x000007de,0x0000016b,0x0004007c,0x0000001a,0x000007e0, + 0x000007df,0x00050050,0x00000032,0x000007e1,0x000007dc,0x000007e0,0x0003003e,0x00000794, + 0x000007e1,0x0004003d,0x00000006,0x000007e2,0x0000011a,0x00050084,0x00000006,0x000007e3, + 0x000007e2,0x0000016b,0x00050080,0x00000006,0x000007e4,0x000007e3,0x000001bf,0x0004007c, + 0x0000001a,0x000007e5,0x000007e4,0x0004003d,0x00000006,0x000007e6,0x0000011b,0x00050084, + 0x00000006,0x000007e7,0x000007e6,0x0000016b,0x00050080,0x00000006,0x000007e8,0x000007e7, + 0x00000172,0x0004007c,0x0000001a,0x000007e9,0x000007e8,0x00050050,0x00000032,0x000007ea, + 0x000007e5,0x000007e9,0x0003003e,0x0000079e,0x000007ea,0x0004003d,0x00000032,0x000007ec, + 0x00000794,0x0004007c,0x0000002d,0x000007ed,0x000007ec,0x0003003e,0x000007ee,0x000007ed, + 0x0004003d,0x00000006,0x000007f0,0x0000011d,0x0003003e,0x000007ef,0x000007f0,0x00060039, + 0x0000009f,0x000007f1,0x000000dc,0x000007ee,0x000007ef,0x0003003e,0x000007eb,0x000007f1, + 0x0004003d,0x00000032,0x000007f3,0x0000079e,0x0003003e,0x000007f2,0x000007f3,0x0004003d, + 0x0000009f,0x000007f5,0x000007eb,0x0003003e,0x000007f4,0x000007f5,0x0003003e,0x000007f6, + 0x000007af,0x0004003d,0x00000006,0x000007f8,0x0000011d,0x0003003e,0x000007f7,0x000007f8, + 0x00080039,0x00000002,0x000007f9,0x000000b7,0x000007f2,0x000007f4,0x000007f6,0x000007f7, + 0x0004003d,0x00000006,0x000007fa,0x0000011a,0x00050084,0x00000006,0x000007fb,0x000007fa, + 0x0000020b,0x00050080,0x00000006,0x000007fc,0x000007fb,0x0000016b,0x0004007c,0x0000001a, + 0x000007fd,0x000007fc,0x0004003d,0x00000006,0x000007fe,0x0000011b,0x00050084,0x00000006, + 0x000007ff,0x000007fe,0x0000020b,0x00050080,0x00000006,0x00000800,0x000007ff,0x0000016b, + 0x0004007c,0x0000001a,0x00000801,0x00000800,0x00050050,0x00000032,0x00000802,0x000007fd, + 0x00000801,0x0003003e,0x00000794,0x00000802,0x0004003d,0x00000006,0x00000803,0x0000011a, + 0x00050084,0x00000006,0x00000804,0x00000803,0x0000016b,0x00050080,0x00000006,0x00000805, + 0x00000804,0x00000172,0x0004007c,0x0000001a,0x00000806,0x00000805,0x0004003d,0x00000006, + 0x00000807,0x0000011b,0x00050084,0x00000006,0x00000808,0x00000807,0x0000016b,0x00050080, + 0x00000006,0x00000809,0x00000808,0x00000172,0x0004007c,0x0000001a,0x0000080a,0x00000809, + 0x00050050,0x00000032,0x0000080b,0x00000806,0x0000080a,0x0003003e,0x0000079e,0x0000080b, + 0x0004003d,0x00000032,0x0000080d,0x00000794,0x0004007c,0x0000002d,0x0000080e,0x0000080d, + 0x0003003e,0x0000080f,0x0000080e,0x0004003d,0x00000006,0x00000811,0x0000011d,0x0003003e, + 0x00000810,0x00000811,0x00060039,0x0000009f,0x00000812,0x000000dc,0x0000080f,0x00000810, + 0x0003003e,0x0000080c,0x00000812,0x0004003d,0x00000032,0x00000814,0x0000079e,0x0003003e, + 0x00000813,0x00000814,0x0004003d,0x0000009f,0x00000816,0x0000080c,0x0003003e,0x00000815, + 0x00000816,0x0003003e,0x00000817,0x000007af,0x0004003d,0x00000006,0x00000819,0x0000011d, + 0x0003003e,0x00000818,0x00000819,0x00080039,0x00000002,0x0000081a,0x000000b7,0x00000813, + 0x00000815,0x00000817,0x00000818,0x0004003d,0x00000006,0x0000081b,0x0000011c,0x000500b2, + 0x0000006e,0x0000081d,0x0000081b,0x0000081c,0x000300f7,0x0000081f,0x00000000,0x000400fa, + 0x0000081d,0x0000081e,0x0000081f,0x000200f8,0x0000081e,0x000100fd,0x000200f8,0x0000081f, + 0x0004003d,0x0000009f,0x00000823,0x000007a8,0x0003003e,0x00000822,0x00000823,0x0004003d, + 0x0000009f,0x00000825,0x000007ca,0x0003003e,0x00000824,0x00000825,0x0004003d,0x0000009f, + 0x00000827,0x000007eb,0x0003003e,0x00000826,0x00000827,0x0004003d,0x0000009f,0x00000829, + 0x0000080c,0x0003003e,0x00000828,0x00000829,0x00080039,0x0000009f,0x0000082a,0x000000b0, + 0x00000822,0x00000824,0x00000826,0x00000828,0x0003003e,0x00000821,0x0000082a,0x0004003d, + 0x00000006,0x0000082b,0x0000011a,0x0004007c,0x0000001a,0x0000082c,0x0000082b,0x0004003d, + 0x00000006,0x0000082d,0x0000011b,0x0004007c,0x0000001a,0x0000082e,0x0000082d,0x00050050, + 0x00000032,0x0000082f,0x0000082c,0x0000082e,0x0003003e,0x00000830,0x0000082f,0x0004003d, + 0x0000009f,0x00000832,0x00000821,0x0003003e,0x00000831,0x00000832,0x0003003e,0x00000833, + 0x0000081c,0x0004003d,0x00000006,0x00000835,0x0000011d,0x0003003e,0x00000834,0x00000835, + 0x00080039,0x00000002,0x00000836,0x000000b7,0x00000830,0x00000831,0x00000833,0x00000834, + 0x0004003d,0x00000006,0x00000838,0x0000011a,0x0003003e,0x00000837,0x00000838,0x0004003d, + 0x00000006,0x0000083a,0x0000011b,0x0003003e,0x00000839,0x0000083a,0x0004003d,0x0000009f, + 0x0000083c,0x00000821,0x0003003e,0x0000083b,0x0000083c,0x00070039,0x00000002,0x0000083d, + 0x000000c2,0x00000837,0x00000839,0x0000083b,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000128,0x00000000,0x00000120,0x00030037,0x00000007,0x00000121,0x00030037,0x00000007, + 0x00000122,0x00030037,0x000000d0,0x00000123,0x00030037,0x00000007,0x00000124,0x00030037, + 0x00000007,0x00000125,0x00030037,0x00000007,0x00000126,0x00030037,0x00000007,0x00000127, + 0x000200f8,0x00000129,0x0004003b,0x00000007,0x00000845,0x00000007,0x0004003b,0x00000007, + 0x00000847,0x00000007,0x0004003b,0x000000d0,0x00000849,0x00000007,0x0004003b,0x00000007, + 0x0000084b,0x00000007,0x0004003b,0x00000007,0x0000084d,0x00000007,0x0004003b,0x00000007, + 0x0000084f,0x00000007,0x0004003b,0x00000007,0x0000085c,0x00000007,0x0004003b,0x00000007, + 0x0000085e,0x00000007,0x0004003b,0x000000d0,0x00000860,0x00000007,0x0004003b,0x00000007, + 0x00000862,0x00000007,0x0004003b,0x00000007,0x00000864,0x00000007,0x0004003b,0x00000007, + 0x00000865,0x00000007,0x0004003b,0x00000007,0x00000872,0x00000007,0x0004003b,0x00000007, + 0x00000874,0x00000007,0x0004003b,0x000000d0,0x00000876,0x00000007,0x0004003b,0x00000007, + 0x00000878,0x00000007,0x0004003b,0x00000007,0x0000087a,0x00000007,0x0004003b,0x00000007, + 0x0000087b,0x00000007,0x0004003b,0x000000d0,0x00000888,0x00000007,0x0004003b,0x00000007, + 0x0000088a,0x00000007,0x0004003b,0x00000007,0x0000088c,0x00000007,0x0004003b,0x00000007, + 0x0000088d,0x00000007,0x0004003d,0x00000006,0x0000083e,0x00000126,0x0004003d,0x00000006, + 0x0000083f,0x00000125,0x000500b2,0x0000006e,0x00000840,0x0000083e,0x0000083f,0x000300f7, + 0x00000842,0x00000000,0x000400fa,0x00000840,0x00000841,0x00000842,0x000200f8,0x00000841, + 0x000100fd,0x000200f8,0x00000842,0x00040039,0x00000002,0x00000844,0x000000c4,0x0004003d, + 0x00000006,0x00000846,0x00000121,0x0003003e,0x00000845,0x00000846,0x0004003d,0x00000006, + 0x00000848,0x00000122,0x0003003e,0x00000847,0x00000848,0x0004003d,0x0000002d,0x0000084a, + 0x00000123,0x0003003e,0x00000849,0x0000084a,0x0004003d,0x00000006,0x0000084c,0x00000124, + 0x0003003e,0x0000084b,0x0000084c,0x0004003d,0x00000006,0x0000084e,0x00000125,0x0003003e, + 0x0000084d,0x0000084e,0x0004003d,0x00000006,0x00000850,0x00000127,0x0003003e,0x0000084f, + 0x00000850,0x000a0039,0x00000002,0x00000851,0x00000100,0x00000845,0x00000847,0x00000849, + 0x0000084b,0x0000084d,0x0000084f,0x0004003d,0x00000006,0x00000852,0x00000126,0x0004003d, + 0x00000006,0x00000853,0x00000125,0x00050080,0x00000006,0x00000854,0x00000853,0x00000172, + 0x000500b2,0x0000006e,0x00000855,0x00000852,0x00000854,0x000300f7,0x00000857,0x00000000, + 0x000400fa,0x00000855,0x00000856,0x00000857,0x000200f8,0x00000856,0x000100fd,0x000200f8, + 0x00000857,0x00040039,0x00000002,0x00000859,0x000000c4,0x0004003d,0x00000006,0x0000085a, + 0x00000125,0x00050080,0x00000006,0x0000085b,0x0000085a,0x00000172,0x0004003d,0x00000006, + 0x0000085d,0x00000121,0x0003003e,0x0000085c,0x0000085d,0x0004003d,0x00000006,0x0000085f, + 0x00000122,0x0003003e,0x0000085e,0x0000085f,0x0004003d,0x0000002d,0x00000861,0x00000123, + 0x0003003e,0x00000860,0x00000861,0x0004003d,0x00000006,0x00000863,0x00000124,0x0003003e, + 0x00000862,0x00000863,0x0003003e,0x00000864,0x0000085b,0x0004003d,0x00000006,0x00000866, + 0x00000127,0x0003003e,0x00000865,0x00000866,0x000a0039,0x00000002,0x00000867,0x00000108, + 0x0000085c,0x0000085e,0x00000860,0x00000862,0x00000864,0x00000865,0x0004003d,0x00000006, + 0x00000868,0x00000126,0x0004003d,0x00000006,0x00000869,0x00000125,0x00050080,0x00000006, + 0x0000086a,0x00000869,0x0000016b,0x000500b2,0x0000006e,0x0000086b,0x00000868,0x0000086a, + 0x000300f7,0x0000086d,0x00000000,0x000400fa,0x0000086b,0x0000086c,0x0000086d,0x000200f8, + 0x0000086c,0x000100fd,0x000200f8,0x0000086d,0x00040039,0x00000002,0x0000086f,0x000000c4, + 0x0004003d,0x00000006,0x00000870,0x00000125,0x00050080,0x00000006,0x00000871,0x00000870, + 0x0000016b,0x0004003d,0x00000006,0x00000873,0x00000121,0x0003003e,0x00000872,0x00000873, + 0x0004003d,0x00000006,0x00000875,0x00000122,0x0003003e,0x00000874,0x00000875,0x0004003d, + 0x0000002d,0x00000877,0x00000123,0x0003003e,0x00000876,0x00000877,0x0004003d,0x00000006, + 0x00000879,0x00000124,0x0003003e,0x00000878,0x00000879,0x0003003e,0x0000087a,0x00000871, + 0x0004003d,0x00000006,0x0000087c,0x00000127,0x0003003e,0x0000087b,0x0000087c,0x000a0039, + 0x00000002,0x0000087d,0x00000110,0x00000872,0x00000874,0x00000876,0x00000878,0x0000087a, + 0x0000087b,0x0004003d,0x00000006,0x0000087e,0x00000126,0x0004003d,0x00000006,0x0000087f, + 0x00000125,0x00050080,0x00000006,0x00000880,0x0000087f,0x0000016c,0x000500b2,0x0000006e, + 0x00000881,0x0000087e,0x00000880,0x000300f7,0x00000883,0x00000000,0x000400fa,0x00000881, + 0x00000882,0x00000883,0x000200f8,0x00000882,0x000100fd,0x000200f8,0x00000883,0x00040039, + 0x00000002,0x00000885,0x000000c4,0x0004003d,0x00000006,0x00000886,0x00000125,0x00050080, + 0x00000006,0x00000887,0x00000886,0x0000016c,0x0004003d,0x0000002d,0x00000889,0x00000123, + 0x0003003e,0x00000888,0x00000889,0x0004003d,0x00000006,0x0000088b,0x00000124,0x0003003e, + 0x0000088a,0x0000088b,0x0003003e,0x0000088c,0x00000887,0x0004003d,0x00000006,0x0000088e, + 0x00000127,0x0003003e,0x0000088d,0x0000088e,0x00080039,0x00000002,0x0000088f,0x00000117, + 0x00000888,0x0000088a,0x0000088c,0x0000088d,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000130,0x00000000,0x0000012a,0x00030037,0x000000d0,0x0000012b,0x00030037,0x00000007, + 0x0000012c,0x00030037,0x00000007,0x0000012d,0x00030037,0x00000007,0x0000012e,0x00030037, + 0x00000007,0x0000012f,0x000200f8,0x00000131,0x0004003b,0x000000d0,0x00000890,0x00000007, + 0x0004003b,0x00000007,0x00000893,0x00000007,0x0004003b,0x00000007,0x00000895,0x00000007, + 0x0004003b,0x00000007,0x0000089e,0x00000007,0x0004003b,0x00000007,0x000008a5,0x00000007, + 0x0004003b,0x00000007,0x000008a7,0x00000007,0x0004003b,0x000000d0,0x000008a9,0x00000007, + 0x0004003b,0x00000007,0x000008ab,0x00000007,0x0004003b,0x00000007,0x000008ad,0x00000007, + 0x0004003b,0x00000007,0x000008af,0x00000007,0x0004003b,0x00000007,0x000008b2,0x00000007, + 0x0004003b,0x00000007,0x000008b4,0x00000007,0x0004003b,0x000000d0,0x000008b6,0x00000007, + 0x0004003b,0x00000007,0x000008b8,0x00000007,0x0004003b,0x00000007,0x000008ba,0x00000007, + 0x0004003b,0x00000007,0x000008bb,0x00000007,0x0004003b,0x00000007,0x000008bd,0x00000007, + 0x0004003b,0x00000007,0x000008c5,0x00000007,0x0004003b,0x00000007,0x000008c7,0x00000007, + 0x0004003b,0x00000007,0x000008c9,0x00000007,0x0004003b,0x00000007,0x000008cf,0x00000007, + 0x0004003b,0x00000007,0x000008d2,0x00000007,0x0004003b,0x00000007,0x000008d4,0x00000007, + 0x0004003b,0x00000007,0x000008d6,0x00000007,0x0004003b,0x00000007,0x000008d8,0x00000007, + 0x0004003b,0x00000007,0x000008db,0x00000007,0x0004003b,0x00000007,0x000008dd,0x00000007, + 0x0004003b,0x000000d0,0x000008df,0x00000007,0x0004003b,0x00000007,0x000008e0,0x00000007, + 0x0004003b,0x00000007,0x000008e2,0x00000007,0x0004003b,0x00000007,0x000008e3,0x00000007, + 0x0004003b,0x00000007,0x000008e5,0x00000007,0x0004003d,0x00000006,0x00000891,0x0000012c, + 0x00050089,0x00000006,0x00000892,0x00000891,0x00000591,0x0003003e,0x00000893,0x00000892, + 0x00050039,0x0000002d,0x00000894,0x00000030,0x00000893,0x0003003e,0x00000890,0x00000894, + 0x00050041,0x00000007,0x00000896,0x00000890,0x000001bf,0x0004003d,0x00000006,0x00000897, + 0x00000896,0x0004003d,0x00000006,0x00000898,0x0000012c,0x000500c2,0x00000006,0x0000089a, + 0x00000898,0x00000899,0x00050089,0x00000006,0x0000089b,0x0000089a,0x0000016b,0x00050084, + 0x00000006,0x0000089c,0x00000678,0x0000089b,0x00050080,0x00000006,0x0000089d,0x00000897, + 0x0000089c,0x0003003e,0x00000895,0x0000089d,0x00050041,0x00000007,0x0000089f,0x00000890, + 0x00000172,0x0004003d,0x00000006,0x000008a0,0x0000089f,0x0004003d,0x00000006,0x000008a1, + 0x0000012c,0x000500c2,0x00000006,0x000008a2,0x000008a1,0x00000196,0x00050084,0x00000006, + 0x000008a3,0x00000678,0x000008a2,0x00050080,0x00000006,0x000008a4,0x000008a0,0x000008a3, + 0x0003003e,0x0000089e,0x000008a4,0x0004003d,0x00000006,0x000008a6,0x00000895,0x0003003e, + 0x000008a5,0x000008a6,0x0004003d,0x00000006,0x000008a8,0x0000089e,0x0003003e,0x000008a7, + 0x000008a8,0x0004003d,0x0000002d,0x000008aa,0x0000012b,0x0003003e,0x000008a9,0x000008aa, + 0x0004003d,0x00000006,0x000008ac,0x0000012c,0x0003003e,0x000008ab,0x000008ac,0x0004003d, + 0x00000006,0x000008ae,0x0000012d,0x0003003e,0x000008ad,0x000008ae,0x0004003d,0x00000006, + 0x000008b0,0x0000012f,0x0003003e,0x000008af,0x000008b0,0x000a0039,0x00000002,0x000008b1, + 0x000000f8,0x000008a5,0x000008a7,0x000008a9,0x000008ab,0x000008ad,0x000008af,0x0004003d, + 0x00000006,0x000008b3,0x00000895,0x0003003e,0x000008b2,0x000008b3,0x0004003d,0x00000006, + 0x000008b5,0x0000089e,0x0003003e,0x000008b4,0x000008b5,0x0004003d,0x0000002d,0x000008b7, + 0x0000012b,0x0003003e,0x000008b6,0x000008b7,0x0004003d,0x00000006,0x000008b9,0x0000012c, + 0x0003003e,0x000008b8,0x000008b9,0x0003003e,0x000008ba,0x0000016b,0x0004003d,0x00000006, + 0x000008bc,0x0000012d,0x0003003e,0x000008bb,0x000008bc,0x0004003d,0x00000006,0x000008be, + 0x0000012f,0x0003003e,0x000008bd,0x000008be,0x000b0039,0x00000002,0x000008bf,0x00000128, + 0x000008b2,0x000008b4,0x000008b6,0x000008b8,0x000008ba,0x000008bb,0x000008bd,0x0004003d, + 0x00000006,0x000008c0,0x0000012d,0x000500b2,0x0000006e,0x000008c1,0x000008c0,0x000007af, + 0x000300f7,0x000008c3,0x00000000,0x000400fa,0x000008c1,0x000008c2,0x000008c3,0x000200f8, + 0x000008c2,0x000100fd,0x000200f8,0x000008c3,0x0004003d,0x00000006,0x000008c6,0x0000012e, + 0x0003003e,0x000008c5,0x000008c6,0x0004003d,0x00000006,0x000008c8,0x0000012c,0x0003003e, + 0x000008c7,0x000008c8,0x0004003d,0x00000006,0x000008ca,0x0000012f,0x0003003e,0x000008c9, + 0x000008ca,0x00070039,0x0000006e,0x000008cb,0x000000ca,0x000008c5,0x000008c7,0x000008c9, + 0x000300f7,0x000008cd,0x00000000,0x000400fa,0x000008cb,0x000008cc,0x000008cd,0x000200f8, + 0x000008cc,0x000100fd,0x000200f8,0x000008cd,0x0004003d,0x00000006,0x000008d0,0x0000012f, + 0x0003003e,0x000008cf,0x000008d0,0x00050039,0x00000002,0x000008d1,0x0000007f,0x000008cf, + 0x0004003d,0x00000006,0x000008d3,0x00000895,0x0003003e,0x000008d2,0x000008d3,0x0004003d, + 0x00000006,0x000008d5,0x0000089e,0x0003003e,0x000008d4,0x000008d5,0x0004003d,0x00000006, + 0x000008d7,0x0000012d,0x0003003e,0x000008d6,0x000008d7,0x0004003d,0x00000006,0x000008d9, + 0x0000012f,0x0003003e,0x000008d8,0x000008d9,0x00080039,0x00000002,0x000008da,0x0000011e, + 0x000008d2,0x000008d4,0x000008d6,0x000008d8,0x0004003d,0x00000006,0x000008dc,0x00000895, + 0x0003003e,0x000008db,0x000008dc,0x0004003d,0x00000006,0x000008de,0x0000089e,0x0003003e, + 0x000008dd,0x000008de,0x0003003e,0x000008df,0x0000053f,0x0004003d,0x00000006,0x000008e1, + 0x0000012c,0x0003003e,0x000008e0,0x000008e1,0x0003003e,0x000008e2,0x00000678,0x0004003d, + 0x00000006,0x000008e4,0x0000012d,0x0003003e,0x000008e3,0x000008e4,0x0004003d,0x00000006, + 0x000008e6,0x0000012f,0x0003003e,0x000008e5,0x000008e6,0x000b0039,0x00000002,0x000008e7, + 0x00000128,0x000008db,0x000008dd,0x000008df,0x000008e0,0x000008e2,0x000008e3,0x000008e5, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000139,0x00000000,0x00000132,0x00030037, + 0x000000d0,0x00000133,0x00030037,0x00000007,0x00000134,0x00030037,0x00000007,0x00000135, + 0x00030037,0x00000007,0x00000136,0x00030037,0x00000007,0x00000137,0x00030037,0x000000d0, + 0x00000138,0x000200f8,0x0000013a,0x0004003b,0x000000d0,0x000008eb,0x00000007,0x0004003b, + 0x00000007,0x000008ec,0x00000007,0x0004003b,0x00000007,0x000008ee,0x00000007,0x0004003b, + 0x00000007,0x000008f0,0x00000007,0x0004003b,0x00000007,0x000008f2,0x00000007,0x0004003d, + 0x0000002d,0x000008e8,0x00000133,0x0004003d,0x0000002d,0x000008e9,0x00000138,0x00050080, + 0x0000002d,0x000008ea,0x000008e8,0x000008e9,0x0003003e,0x000008eb,0x000008ea,0x0004003d, + 0x00000006,0x000008ed,0x00000134,0x0003003e,0x000008ec,0x000008ed,0x0004003d,0x00000006, + 0x000008ef,0x00000135,0x0003003e,0x000008ee,0x000008ef,0x0004003d,0x00000006,0x000008f1, + 0x00000136,0x0003003e,0x000008f0,0x000008f1,0x0004003d,0x00000006,0x000008f3,0x00000137, + 0x0003003e,0x000008f2,0x000008f3,0x00090039,0x00000002,0x000008f4,0x00000130,0x000008eb, + 0x000008ec,0x000008ee,0x000008f0,0x000008f2,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000140,0x00000000,0x0000013d,0x00030037,0x0000013c,0x0000013e,0x00030037,0x00000007, + 0x0000013f,0x000200f8,0x00000141,0x0004003b,0x000000d0,0x000008fd,0x00000007,0x0004003b, + 0x00000007,0x000008fe,0x00000007,0x0004003b,0x00000007,0x000008ff,0x00000007,0x0004003b, + 0x00000007,0x00000900,0x00000007,0x0004003b,0x00000007,0x00000901,0x00000007,0x0004003b, + 0x000000d0,0x00000902,0x00000007,0x0004003d,0x0000013b,0x000008f5,0x0000013e,0x0007004f, + 0x0000002d,0x000008f6,0x000008f5,0x000008f5,0x00000000,0x00000001,0x0004003d,0x00000006, + 0x000008f7,0x0000013f,0x00040039,0x00000006,0x000008f8,0x00000042,0x00040039,0x00000006, + 0x000008f9,0x00000044,0x00050041,0x00000007,0x000008fa,0x0000013e,0x0000016b,0x0004003d, + 0x00000006,0x000008fb,0x000008fa,0x00040039,0x0000002d,0x000008fc,0x00000047,0x0003003e, + 0x000008fd,0x000008f6,0x0003003e,0x000008fe,0x000008f7,0x0003003e,0x000008ff,0x000008f8, + 0x0003003e,0x00000900,0x000008f9,0x0003003e,0x00000901,0x000008fb,0x0003003e,0x00000902, + 0x000008fc,0x000a0039,0x00000002,0x00000903,0x00000139,0x000008fd,0x000008fe,0x000008ff, + 0x00000900,0x00000901,0x00000902,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h b/gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h new file mode 100644 index 000000000..6b251bbb6 --- /dev/null +++ b/gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h @@ -0,0 +1,1942 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_SHADING_CHANGE_PYRAMID_NOWAVE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000095b,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000945, + 0x00000947,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c, + 0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000, + 0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b, + 0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e, + 0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005, + 0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962,0x00000000,0x00060005,0x00000018, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005, + 0x00000017,0x00000079,0x00060005,0x0000001f,0x4d786666,0x69286e69,0x31693b31,0x0000003b, + 0x00030005,0x0000001d,0x00000078,0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023, + 0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005, + 0x00000022,0x00000079,0x00060005,0x00000027,0x4d786666,0x69287861,0x31693b31,0x0000003b, + 0x00030005,0x00000025,0x00000078,0x00030005,0x00000026,0x00000079,0x00060005,0x0000002b, + 0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000029,0x00000078,0x00030005, + 0x0000002a,0x00000079,0x000a0005,0x00000030,0x52786666,0x70616d65,0x57726f46,0x52657661, + 0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000002f,0x00000061,0x00050005, + 0x00000034,0x646e6552,0x69537265,0x0028657a,0x00090005,0x00000036,0x76657250,0x73756f69, + 0x6d617246,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00040005,0x0000003a,0x7474694a, + 0x00287265,0x00080005,0x0000003c,0x76657250,0x73756f69,0x6d617246,0x74694a65,0x28726574, + 0x00000000,0x00070005,0x0000003f,0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028, + 0x00050005,0x00000042,0x4370694d,0x746e756f,0x00000028,0x00060005,0x00000044,0x576d754e, + 0x476b726f,0x70756f72,0x00002873,0x00070005,0x00000047,0x6b726f57,0x756f7247,0x66664f70, + 0x28746573,0x00000000,0x00080005,0x0000004c,0x64616f4c,0x72727543,0x4c746e65,0x28616d75, + 0x3b326976,0x00000000,0x00040005,0x0000004b,0x50785069,0x0000736f,0x00080005,0x0000004f, + 0x64616f4c,0x76657250,0x73756f69,0x616d754c,0x32697628,0x0000003b,0x00040005,0x0000004e, + 0x50785069,0x0000736f,0x000a0005,0x00000053,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f, + 0x6365566e,0x28726f74,0x3b326976,0x00000000,0x00050005,0x00000052,0x49785069,0x7475706e, + 0x00000000,0x00050005,0x00000055,0x6f707845,0x65727573,0x00000028,0x00080005,0x0000005a, + 0x6f4c5752,0x79506461,0x696d6172,0x69762864,0x31753b32,0x0000003b,0x00040005,0x00000058, + 0x50785069,0x0000736f,0x00040005,0x00000059,0x65646e69,0x00000078,0x00090005,0x00000061, + 0x726f7453,0x72795065,0x64696d61,0x32697628,0x3266763b,0x3b31753b,0x00000000,0x00040005, + 0x0000005e,0x50785069,0x0000736f,0x00050005,0x0000005f,0x5674756f,0x65756c61,0x00000000, + 0x00040005,0x00000060,0x65646e69,0x00000078,0x000a0005,0x00000065,0x5f445053,0x72636e49, + 0x65736165,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00050005,0x00000064, + 0x43647073,0x746e756f,0x00007265,0x00080005,0x00000067,0x5f445053,0x65736552,0x6f744174, + 0x4363696d,0x746e756f,0x00287265,0x00080005,0x0000006c,0x446e694d,0x64697669,0x79426465, + 0x2878614d,0x663b3166,0x00003b31,0x00030005,0x0000006a,0x00003076,0x00030005,0x0000006b, + 0x00003176,0x00060005,0x00000071,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005, + 0x00000070,0x00765566,0x00080005,0x00000077,0x6d616c43,0x616f4c70,0x69762864,0x69763b32, + 0x69763b32,0x00003b32,0x00050005,0x00000074,0x53785069,0x6c706d61,0x00000065,0x00050005, + 0x00000075,0x4f785069,0x65736666,0x00000074,0x00060005,0x00000076,0x78655469,0x65727574, + 0x657a6953,0x00000000,0x000a0005,0x0000007a,0x49647053,0x6572636e,0x41657361,0x696d6f74, + 0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005,0x00000079,0x63696c73,0x00000065, + 0x00080005,0x0000007c,0x47647053,0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000, + 0x00090005,0x0000007f,0x52647053,0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872, + 0x0000003b,0x00040005,0x0000007e,0x63696c73,0x00000065,0x00050005,0x00000083,0x706d6153, + 0x6553656c,0x00000074,0x00060006,0x00000083,0x00000000,0x6d615366,0x73656c70,0x00000000, + 0x000b0005,0x00000087,0x74726f53,0x28746553,0x75727473,0x532d7463,0x6c706d61,0x74655365, + 0x5b31662d,0x3b315d35,0x00000000,0x00040005,0x00000086,0x74655366,0x00000000,0x00160005, + 0x0000008d,0x706d6f43,0x4d657475,0x6d696e69,0x69446d75,0x72656666,0x65636e65,0x32697628, + 0x7274733b,0x2d746375,0x706d6153,0x6553656c,0x31662d74,0x315d355b,0x7274733b,0x2d746375, + 0x706d6153,0x6553656c,0x31662d74,0x315d355b,0x0000003b,0x00040005,0x0000008a,0x50785069, + 0x0000736f,0x00040005,0x0000008b,0x74655366,0x00000030,0x00040005,0x0000008c,0x74655366, + 0x00000031,0x000b0005,0x00000091,0x43746547,0x65727275,0x754c746e,0x6942616d,0x656e696c, + 0x61537261,0x656c706d,0x66762873,0x00003b32,0x00030005,0x00000090,0x00765566,0x000a0005, + 0x00000093,0x76657250,0x73756f69,0x616d754c,0x696c6942,0x7261656e,0x706d6153,0x4473656c, + 0x00617461,0x00050006,0x00000093,0x00000000,0x74655366,0x00000000,0x00080006,0x00000093, + 0x00000001,0x45734962,0x74736978,0x53676e69,0x6c706d61,0x00000065,0x000c0005,0x00000097, + 0x50746547,0x69766572,0x4c73756f,0x42616d75,0x6e696c69,0x53726165,0x6c706d61,0x76287365, + 0x763b3266,0x003b3266,0x00030005,0x00000095,0x00765566,0x00060005,0x00000096,0x746f4d66, + 0x566e6f69,0x6f746365,0x00000072,0x00090005,0x0000009d,0x706d6f43,0x44657475,0x28666669, + 0x3b326976,0x3b326676,0x3b326676,0x00000000,0x00040005,0x0000009a,0x50785069,0x0000736f, + 0x00030005,0x0000009b,0x00765566,0x00060005,0x0000009c,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00090005,0x000000a3,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567, + 0x753b3266,0x00003b31,0x00040005,0x000000a1,0x50785069,0x0000736f,0x00040005,0x000000a2, + 0x63696c73,0x00000065,0x00060005,0x000000a8,0x4c647053,0x2864616f,0x3b326976,0x003b3175, + 0x00030005,0x000000a6,0x00786574,0x00040005,0x000000a7,0x63696c73,0x00000065,0x00090005, + 0x000000b0,0x52647053,0x63756465,0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466, + 0x00030005,0x000000ac,0x00003076,0x00030005,0x000000ad,0x00003176,0x00030005,0x000000ae, + 0x00003276,0x00030005,0x000000af,0x00003376,0x00080005,0x000000b7,0x53647053,0x65726f74, + 0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x000000b3,0x00786970,0x00050005, + 0x000000b4,0x5674756f,0x65756c61,0x00000000,0x00040005,0x000000b5,0x65646e69,0x00000078, + 0x00040005,0x000000b6,0x63696c73,0x00000065,0x00090005,0x000000bc,0x4c647053,0x4964616f, + 0x7265746e,0x6964656d,0x28657461,0x753b3175,0x00003b31,0x00030005,0x000000ba,0x00000078, + 0x00030005,0x000000bb,0x00000079,0x000a0005,0x000000c2,0x53647053,0x65726f74,0x65746e49, + 0x64656d72,0x65746169,0x3b317528,0x763b3175,0x003b3466,0x00030005,0x000000bf,0x00000078, + 0x00030005,0x000000c0,0x00000079,0x00040005,0x000000c1,0x756c6176,0x00000065,0x000a0005, + 0x000000c4,0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c,0x65697272, + 0x00002872,0x00090005,0x000000ca,0x45647053,0x57746978,0x676b726f,0x70756f72,0x3b317528, + 0x753b3175,0x00003b31,0x00060005,0x000000c7,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00080005,0x000000c8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00040005,0x000000c9,0x63696c73,0x00000065,0x000c0005,0x000000d2,0x52647053,0x63756465, + 0x746e4965,0x656d7265,0x74616964,0x75762865,0x75763b32,0x75763b32,0x75763b32,0x00003b32, + 0x00030005,0x000000ce,0x00003069,0x00030005,0x000000cf,0x00003169,0x00030005,0x000000d0, + 0x00003269,0x00030005,0x000000d1,0x00003369,0x000b0005,0x000000da,0x52647053,0x63756465, + 0x616f4c65,0x76283464,0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005, + 0x000000d5,0x00003069,0x00030005,0x000000d6,0x00003169,0x00030005,0x000000d7,0x00003269, + 0x00030005,0x000000d8,0x00003369,0x00040005,0x000000d9,0x63696c73,0x00000065,0x00080005, + 0x000000df,0x52647053,0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005, + 0x000000dd,0x65736162,0x00000000,0x00040005,0x000000de,0x63696c73,0x00000065,0x000e0005, + 0x000000e6,0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834, + 0x75763b32,0x75763b32,0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000e1,0x00003069, + 0x00030005,0x000000e2,0x00003169,0x00030005,0x000000e3,0x00003269,0x00030005,0x000000e4, + 0x00003369,0x00040005,0x000000e5,0x63696c73,0x00000065,0x000b0005,0x000000ea,0x52647053, + 0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000, + 0x00040005,0x000000e8,0x65736162,0x00000000,0x00040005,0x000000e9,0x63696c73,0x00000065, + 0x000e0005,0x000000f3,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x444c5f31, + 0x31752853,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000ed, + 0x00000078,0x00030005,0x000000ee,0x00000079,0x00050005,0x000000ef,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000f0,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000f1,0x0070696d,0x00040005,0x000000f2,0x63696c73,0x00000065, + 0x000d0005,0x000000fb,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000f5,0x00000078, + 0x00030005,0x000000f6,0x00000079,0x00050005,0x000000f7,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000f8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000f9,0x0070696d,0x00040005,0x000000fa,0x63696c73,0x00000065,0x000c0005, + 0x00000103,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000fd,0x00000078,0x00030005,0x000000fe, + 0x00000079,0x00050005,0x000000ff,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000100, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000101, + 0x0070696d,0x00040005,0x00000102,0x63696c73,0x00000065,0x000c0005,0x0000010b,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175, + 0x00003b31,0x00030005,0x00000105,0x00000078,0x00030005,0x00000106,0x00000079,0x00050005, + 0x00000107,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000108,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000109,0x0070696d,0x00040005, + 0x0000010a,0x63696c73,0x00000065,0x000c0005,0x00000113,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005, + 0x0000010d,0x00000078,0x00030005,0x0000010e,0x00000079,0x00050005,0x0000010f,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x00000110,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x00000111,0x0070696d,0x00040005,0x00000112,0x63696c73, + 0x00000065,0x000b0005,0x0000011a,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f, + 0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x00000116,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x00000117,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x00000118,0x0070696d,0x00040005,0x00000119,0x63696c73,0x00000065, + 0x000b0005,0x00000121,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x0000011d,0x00000078,0x00030005,0x0000011e, + 0x00000079,0x00040005,0x0000011f,0x7370696d,0x00000000,0x00040005,0x00000120,0x63696c73, + 0x00000065,0x000e0005,0x0000012b,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674, + 0x31752872,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005, + 0x00000124,0x00000078,0x00030005,0x00000125,0x00000079,0x00050005,0x00000126,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x00000127,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x00000128,0x65736162,0x0070694d,0x00040005,0x00000129, + 0x7370696d,0x00000000,0x00040005,0x0000012a,0x63696c73,0x00000065,0x000a0005,0x00000133, + 0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31, + 0x00050005,0x0000012e,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000012f,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000130,0x7370696d, + 0x00000000,0x00060005,0x00000131,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005, + 0x00000132,0x63696c73,0x00000065,0x000b0005,0x0000013c,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x00000136, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000137,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000138,0x7370696d,0x00000000,0x00060005, + 0x00000139,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x0000013a,0x63696c73, + 0x00000065,0x00060005,0x0000013b,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x000b0005, + 0x00000143,0x706d6f43,0x53657475,0x69646168,0x6843676e,0x65676e61,0x61727950,0x2864696d, + 0x3b337576,0x003b3175,0x00050005,0x00000141,0x6b726f57,0x756f7247,0x00644970,0x00070005, + 0x00000142,0x61636f4c,0x7268546c,0x49646165,0x7865646e,0x00000000,0x00040005,0x00000170, + 0x61726170,0x0000006d,0x00040005,0x00000172,0x61726170,0x0000006d,0x00040005,0x00000173, + 0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005,0x00000177, + 0x61726170,0x0000006d,0x00040005,0x00000179,0x61726170,0x0000006d,0x00040005,0x0000017b, + 0x61726170,0x0000006d,0x00040005,0x0000017d,0x61726170,0x0000006d,0x00040005,0x0000017e, + 0x61726170,0x0000006d,0x00040005,0x00000180,0x61726170,0x0000006d,0x00040005,0x00000182, + 0x61726170,0x0000006d,0x00040005,0x00000183,0x61726170,0x0000006d,0x00040005,0x00000185, + 0x61726170,0x0000006d,0x00040005,0x00000186,0x61726170,0x0000006d,0x00040005,0x00000187, + 0x61726170,0x0000006d,0x00070005,0x0000018c,0x53466263,0x50553352,0x4c414353,0x745f5245, + 0x00000000,0x00060006,0x0000018c,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006, + 0x0000018c,0x00000001,0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953, + 0x00000000,0x00070006,0x0000018c,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000, + 0x000a0006,0x0000018c,0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373, + 0x7a695365,0x00000065,0x00070006,0x0000018c,0x00000004,0x78614d69,0x646e6552,0x69537265, + 0x0000657a,0x00070006,0x0000018c,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69, + 0x00080006,0x0000018c,0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00050006,0x0000018c,0x00000007,0x74694a66,0x00726574,0x00090006,0x0000018c,0x00000008, + 0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x0000018c, + 0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000018c, + 0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000018c, + 0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c, + 0x006e6f69,0x00060006,0x0000018c,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006, + 0x0000018c,0x0000000d,0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068, + 0x00060006,0x0000018c,0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000018c, + 0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000018c, + 0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000, + 0x00060006,0x0000018c,0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000018c, + 0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74,0x00080006,0x0000018c,0x00000013, + 0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c,0x00080006,0x0000018c,0x00000014, + 0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61,0x000a0006,0x0000018c,0x00000015, + 0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006, + 0x0000018c,0x00000016,0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d, + 0x6e6f6974,0x00000000,0x00060005,0x0000018e,0x53466263,0x70553352,0x6c616373,0x00007265, + 0x00040005,0x000001aa,0x50536263,0x00745f44,0x00050006,0x000001aa,0x00000000,0x7370696d, + 0x00000000,0x00070006,0x000001aa,0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00070006,0x000001aa,0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00060006, + 0x000001aa,0x00000003,0x646e6572,0x69537265,0x0000657a,0x00040005,0x000001ac,0x50536263, + 0x00000044,0x00060005,0x000001be,0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00060005, + 0x000001c6,0x72705f72,0x6f697665,0x6c5f7375,0x00616d75,0x00090005,0x000001cd,0x69645f72, + 0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005,0x000001d4, + 0x6f707865,0x65727573,0x00000000,0x00070005,0x000001d5,0x6e695f72,0x5f747570,0x6f707865, + 0x65727573,0x00000000,0x00050005,0x000001e9,0x735f7772,0x6d5f6470,0x00307069,0x00050005, + 0x000001f3,0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001fd,0x735f7772,0x6d5f6470, + 0x00327069,0x00050005,0x00000207,0x735f7772,0x6d5f6470,0x00337069,0x00050005,0x00000212, + 0x735f7772,0x6d5f6470,0x00347069,0x00050005,0x0000021c,0x735f7772,0x6d5f6470,0x00357069, + 0x00080005,0x00000263,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f,0x00000000, + 0x00030005,0x0000026a,0x0000006d,0x00040005,0x0000026b,0x61726170,0x0000006d,0x00040005, + 0x0000026c,0x61726170,0x0000006d,0x00040005,0x00000273,0x61726170,0x0000006d,0x00040005, + 0x00000274,0x61726170,0x0000006d,0x00040005,0x00000293,0x75736572,0x0000746c,0x00040005, + 0x0000029a,0x61726170,0x0000006d,0x00040005,0x0000029d,0x61726170,0x0000006d,0x00040005, + 0x0000029f,0x61726170,0x0000006d,0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005, + 0x000002a6,0x61726170,0x0000006d,0x00040005,0x000002a9,0x61726170,0x0000006d,0x00040005, + 0x000002ab,0x61726170,0x0000006d,0x00040005,0x000002ac,0x61726170,0x0000006d,0x00050005, + 0x000002b3,0x43647073,0x746e756f,0x00007265,0x00040005,0x000002b4,0x61726170,0x0000006d, + 0x00040005,0x000002bc,0x706d5466,0x00000000,0x00040005,0x000002be,0x61726170,0x0000006d, + 0x00040005,0x000002c1,0x61726170,0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d, + 0x00040005,0x000002c8,0x61726170,0x0000006d,0x00040005,0x000002cf,0x706d5466,0x00000000, + 0x00040005,0x000002d1,0x61726170,0x0000006d,0x00040005,0x000002d4,0x61726170,0x0000006d, + 0x00040005,0x000002d8,0x61726170,0x0000006d,0x00040005,0x000002db,0x61726170,0x0000006d, + 0x00040005,0x000002e2,0x706d5466,0x00000000,0x00040005,0x000002e3,0x61726170,0x0000006d, + 0x00040005,0x000002e6,0x61726170,0x0000006d,0x00040005,0x000002ea,0x61726170,0x0000006d, + 0x00040005,0x000002ed,0x61726170,0x0000006d,0x00040005,0x000002f4,0x706d5466,0x00000000, + 0x00040005,0x000002f5,0x61726170,0x0000006d,0x00040005,0x000002f8,0x61726170,0x0000006d, + 0x00040005,0x000002fc,0x61726170,0x0000006d,0x00040005,0x000002ff,0x61726170,0x0000006d, + 0x00040005,0x00000306,0x706d5466,0x00000000,0x00040005,0x00000307,0x61726170,0x0000006d, + 0x00040005,0x0000030a,0x61726170,0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d, + 0x00040005,0x00000311,0x61726170,0x0000006d,0x00040005,0x00000318,0x706d5466,0x00000000, + 0x00040005,0x00000319,0x61726170,0x0000006d,0x00040005,0x0000031c,0x61726170,0x0000006d, + 0x00040005,0x00000320,0x61726170,0x0000006d,0x00040005,0x00000323,0x61726170,0x0000006d, + 0x00040005,0x0000032a,0x706d5466,0x00000000,0x00040005,0x0000032b,0x61726170,0x0000006d, + 0x00040005,0x0000032e,0x61726170,0x0000006d,0x00040005,0x00000332,0x61726170,0x0000006d, + 0x00040005,0x00000335,0x61726170,0x0000006d,0x00040005,0x0000033c,0x706d5466,0x00000000, + 0x00040005,0x0000033d,0x61726170,0x0000006d,0x00040005,0x00000340,0x61726170,0x0000006d, + 0x00040005,0x00000344,0x61726170,0x0000006d,0x00040005,0x00000347,0x61726170,0x0000006d, + 0x00040005,0x0000034e,0x706d5466,0x00000000,0x00040005,0x0000034f,0x61726170,0x0000006d, + 0x00040005,0x00000352,0x61726170,0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d, + 0x00040005,0x00000359,0x61726170,0x0000006d,0x00050005,0x00000360,0x6e694d66,0x66666944, + 0x00000000,0x00030005,0x00000362,0x00000061,0x00030005,0x00000363,0x00000062,0x00040005, + 0x00000364,0x61726170,0x0000006d,0x00040005,0x00000368,0x61726170,0x0000006d,0x00040005, + 0x0000036c,0x78614d66,0x00000000,0x00040005,0x0000036d,0x61726170,0x0000006d,0x00040005, + 0x00000370,0x61726170,0x0000006d,0x00030005,0x00000379,0x00000069,0x00040005,0x00000386, + 0x66694466,0x00000066,0x00050005,0x000003c5,0x4a765566,0x65747469,0x00646572,0x00050005, + 0x000003cc,0x73614269,0x736f5065,0x00000000,0x00060005,0x000003d3,0x6d615369,0x49656c70, + 0x7865646e,0x00000000,0x00050005,0x000003db,0x6d615369,0x50656c70,0x0000736f,0x00040005, + 0x000003e5,0x61726170,0x0000006d,0x00040005,0x000003e7,0x61726170,0x0000006d,0x00050005, + 0x000003e9,0x65646e69,0x6c626178,0x00000065,0x00040005,0x000003ec,0x61726170,0x0000006d, + 0x00040005,0x000003ee,0x74655366,0x00000000,0x00040005,0x000003f0,0x61726170,0x0000006d, + 0x00040005,0x000003f8,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170,0x0000006d, + 0x00040005,0x00000400,0x61726170,0x0000006d,0x00040005,0x00000403,0x61726170,0x0000006d, + 0x00050005,0x0000040b,0x4a765566,0x65747469,0x00646572,0x00060005,0x00000412,0x70655266, + 0x656a6f72,0x64657463,0x00007655,0x00040005,0x00000417,0x61746164,0x00000000,0x00040005, + 0x00000418,0x61726170,0x0000006d,0x00050005,0x00000421,0x73614269,0x736f5065,0x00000000, + 0x00060005,0x00000428,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00050005,0x00000430, + 0x6d615369,0x50656c70,0x0000736f,0x00040005,0x00000433,0x61726170,0x0000006d,0x00040005, + 0x00000435,0x61726170,0x0000006d,0x00050005,0x00000436,0x65646e69,0x6c626178,0x00000065, + 0x00040005,0x00000439,0x61726170,0x0000006d,0x00040005,0x0000043c,0x61726170,0x0000006d, + 0x00040005,0x00000446,0x61726170,0x0000006d,0x00040005,0x00000449,0x61726170,0x0000006d, + 0x00040005,0x0000044e,0x61726170,0x0000006d,0x00040005,0x00000451,0x61726170,0x0000006d, + 0x00050005,0x00000459,0x6e694d66,0x66666944,0x00000000,0x00060005,0x0000045a,0x72754366, + 0x746e6572,0x706d6153,0x0073656c,0x00040005,0x0000045b,0x61726170,0x0000006d,0x00060005, + 0x0000045e,0x76657270,0x73756f69,0x61746144,0x00000000,0x00040005,0x0000045f,0x61726170, + 0x0000006d,0x00040005,0x00000461,0x61726170,0x0000006d,0x00040005,0x00000468,0x61726170, + 0x0000006d,0x00040005,0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046c,0x61726170, + 0x0000006d,0x00060005,0x00000473,0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005, + 0x00000477,0x61726170,0x0000006d,0x00040005,0x00000478,0x61726170,0x0000006d,0x00040005, + 0x00000479,0x61726170,0x0000006d,0x00080005,0x0000047b,0x6c694466,0x64657461,0x69746f4d, + 0x65566e6f,0x726f7463,0x00000000,0x00040005,0x0000047c,0x61726170,0x0000006d,0x00030005, + 0x0000047f,0x00765566,0x00090005,0x00000488,0x61635366,0x4164656c,0x6953646e,0x64656e67, + 0x616d754c,0x66666944,0x00000000,0x00040005,0x00000489,0x61726170,0x0000006d,0x00040005, + 0x0000048b,0x61726170,0x0000006d,0x00040005,0x0000048d,0x61726170,0x0000006d,0x00040005, + 0x00000490,0x74754f66,0x00747570,0x00040005,0x000004a2,0x61726170,0x0000006d,0x00040005, + 0x000004a4,0x61726170,0x0000006d,0x00040005,0x000004ba,0x61726170,0x0000006d,0x00040005, + 0x000004bc,0x61726170,0x0000006d,0x00040005,0x000004bf,0x61726170,0x0000006d,0x00070005, + 0x000004c6,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005,0x000004cc, + 0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000004d1,0x49647073, + 0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x000004d6,0x49647073,0x7265746e, + 0x6964656d,0x41657461,0x00000000,0x00040005,0x000004f8,0x61726170,0x0000006d,0x00030005, + 0x00000502,0x00003076,0x00040005,0x00000503,0x61726170,0x0000006d,0x00040005,0x00000506, + 0x61726170,0x0000006d,0x00030005,0x0000050a,0x00003176,0x00040005,0x0000050b,0x61726170, + 0x0000006d,0x00040005,0x0000050e,0x61726170,0x0000006d,0x00030005,0x00000512,0x00003276, + 0x00040005,0x00000513,0x61726170,0x0000006d,0x00040005,0x00000516,0x61726170,0x0000006d, + 0x00030005,0x0000051a,0x00003376,0x00040005,0x0000051b,0x61726170,0x0000006d,0x00040005, + 0x0000051e,0x61726170,0x0000006d,0x00040005,0x00000522,0x61726170,0x0000006d,0x00040005, + 0x00000524,0x61726170,0x0000006d,0x00040005,0x00000526,0x61726170,0x0000006d,0x00040005, + 0x00000528,0x61726170,0x0000006d,0x00030005,0x0000052d,0x00003076,0x00040005,0x00000530, + 0x61726170,0x0000006d,0x00040005,0x00000531,0x61726170,0x0000006d,0x00030005,0x00000534, + 0x00003176,0x00040005,0x00000537,0x61726170,0x0000006d,0x00040005,0x00000538,0x61726170, + 0x0000006d,0x00030005,0x0000053b,0x00003276,0x00040005,0x0000053e,0x61726170,0x0000006d, + 0x00040005,0x0000053f,0x61726170,0x0000006d,0x00030005,0x00000542,0x00003376,0x00040005, + 0x00000545,0x61726170,0x0000006d,0x00040005,0x00000546,0x61726170,0x0000006d,0x00040005, + 0x00000549,0x61726170,0x0000006d,0x00040005,0x0000054b,0x61726170,0x0000006d,0x00040005, + 0x0000054d,0x61726170,0x0000006d,0x00040005,0x0000054f,0x61726170,0x0000006d,0x00040005, + 0x00000560,0x61726170,0x0000006d,0x00040005,0x00000561,0x61726170,0x0000006d,0x00040005, + 0x00000562,0x61726170,0x0000006d,0x00040005,0x00000563,0x61726170,0x0000006d,0x00040005, + 0x00000564,0x61726170,0x0000006d,0x00030005,0x00000569,0x00003076,0x00040005,0x0000056d, + 0x61726170,0x0000006d,0x00040005,0x0000056e,0x61726170,0x0000006d,0x00030005,0x00000571, + 0x00003176,0x00040005,0x00000575,0x61726170,0x0000006d,0x00040005,0x00000576,0x61726170, + 0x0000006d,0x00030005,0x00000579,0x00003276,0x00040005,0x0000057d,0x61726170,0x0000006d, + 0x00040005,0x0000057e,0x61726170,0x0000006d,0x00030005,0x00000581,0x00003376,0x00040005, + 0x00000585,0x61726170,0x0000006d,0x00040005,0x00000586,0x61726170,0x0000006d,0x00040005, + 0x00000589,0x61726170,0x0000006d,0x00040005,0x0000058b,0x61726170,0x0000006d,0x00040005, + 0x0000058d,0x61726170,0x0000006d,0x00040005,0x0000058f,0x61726170,0x0000006d,0x00040005, + 0x0000059c,0x61726170,0x0000006d,0x00040005,0x0000059d,0x61726170,0x0000006d,0x00040005, + 0x0000059e,0x61726170,0x0000006d,0x00040005,0x0000059f,0x61726170,0x0000006d,0x00040005, + 0x000005a0,0x61726170,0x0000006d,0x00030005,0x000005a5,0x00786574,0x00030005,0x000005b3, + 0x00786970,0x00030005,0x000005c1,0x00000076,0x00040005,0x000005c4,0x61726170,0x0000006d, + 0x00040005,0x000005c5,0x61726170,0x0000006d,0x00040005,0x000005c9,0x61726170,0x0000006d, + 0x00040005,0x000005cb,0x61726170,0x0000006d,0x00040005,0x000005ce,0x61726170,0x0000006d, + 0x00040005,0x000005cf,0x61726170,0x0000006d,0x00040005,0x000005ec,0x61726170,0x0000006d, + 0x00040005,0x000005ed,0x61726170,0x0000006d,0x00040005,0x000005f1,0x61726170,0x0000006d, + 0x00040005,0x000005f3,0x61726170,0x0000006d,0x00040005,0x000005f6,0x61726170,0x0000006d, + 0x00040005,0x000005f7,0x61726170,0x0000006d,0x00040005,0x00000614,0x61726170,0x0000006d, + 0x00040005,0x00000615,0x61726170,0x0000006d,0x00040005,0x00000619,0x61726170,0x0000006d, + 0x00040005,0x0000061b,0x61726170,0x0000006d,0x00040005,0x0000061e,0x61726170,0x0000006d, + 0x00040005,0x0000061f,0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d, + 0x00040005,0x0000063f,0x61726170,0x0000006d,0x00040005,0x00000643,0x61726170,0x0000006d, + 0x00040005,0x00000645,0x61726170,0x0000006d,0x00040005,0x00000648,0x61726170,0x0000006d, + 0x00040005,0x00000649,0x61726170,0x0000006d,0x00030005,0x00000651,0x00000069,0x00040005, + 0x0000065a,0x61726170,0x0000006d,0x00040005,0x0000065c,0x61726170,0x0000006d,0x00040005, + 0x0000065e,0x61726170,0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005, + 0x00000685,0x61726170,0x0000006d,0x00040005,0x00000686,0x61726170,0x0000006d,0x00040005, + 0x00000687,0x61726170,0x0000006d,0x00040005,0x0000069e,0x61726170,0x0000006d,0x00040005, + 0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a2,0x61726170,0x0000006d,0x00040005, + 0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006b1,0x61726170,0x0000006d,0x00040005, + 0x000006b2,0x61726170,0x0000006d,0x00040005,0x000006b3,0x61726170,0x0000006d,0x00040005, + 0x000006bb,0x61726170,0x0000006d,0x00040005,0x000006bc,0x61726170,0x0000006d,0x00040005, + 0x000006bd,0x61726170,0x0000006d,0x00040005,0x000006c5,0x61726170,0x0000006d,0x00040005, + 0x000006c6,0x61726170,0x0000006d,0x00040005,0x000006c7,0x61726170,0x0000006d,0x00040005, + 0x000006cf,0x61726170,0x0000006d,0x00040005,0x000006d0,0x61726170,0x0000006d,0x00040005, + 0x000006d1,0x61726170,0x0000006d,0x00040005,0x000006d5,0x61726170,0x0000006d,0x00040005, + 0x000006d7,0x61726170,0x0000006d,0x00040005,0x000006d9,0x61726170,0x0000006d,0x00040005, + 0x000006db,0x61726170,0x0000006d,0x00040005,0x000006dd,0x61726170,0x0000006d,0x00040005, + 0x000006df,0x61726170,0x0000006d,0x00030005,0x000006e6,0x00000076,0x00040005,0x00000703, + 0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d,0x00040005,0x00000705, + 0x61726170,0x0000006d,0x00040005,0x00000706,0x61726170,0x0000006d,0x00040005,0x00000712, + 0x61726170,0x0000006d,0x00040005,0x00000713,0x61726170,0x0000006d,0x00040005,0x00000715, + 0x61726170,0x0000006d,0x00040005,0x00000717,0x61726170,0x0000006d,0x00040005,0x00000721, + 0x61726170,0x0000006d,0x00040005,0x00000722,0x61726170,0x0000006d,0x00040005,0x00000723, + 0x61726170,0x0000006d,0x00030005,0x0000072a,0x00000076,0x00040005,0x0000074b,0x61726170, + 0x0000006d,0x00040005,0x0000074c,0x61726170,0x0000006d,0x00040005,0x0000074d,0x61726170, + 0x0000006d,0x00040005,0x0000074e,0x61726170,0x0000006d,0x00040005,0x0000075a,0x61726170, + 0x0000006d,0x00040005,0x0000075b,0x61726170,0x0000006d,0x00040005,0x0000075d,0x61726170, + 0x0000006d,0x00040005,0x0000075f,0x61726170,0x0000006d,0x00040005,0x00000768,0x61726170, + 0x0000006d,0x00040005,0x00000769,0x61726170,0x0000006d,0x00040005,0x0000076a,0x61726170, + 0x0000006d,0x00030005,0x00000771,0x00000076,0x00040005,0x0000079e,0x61726170,0x0000006d, + 0x00040005,0x0000079f,0x61726170,0x0000006d,0x00040005,0x000007a0,0x61726170,0x0000006d, + 0x00040005,0x000007a1,0x61726170,0x0000006d,0x00040005,0x000007ad,0x61726170,0x0000006d, + 0x00040005,0x000007ae,0x61726170,0x0000006d,0x00040005,0x000007b0,0x61726170,0x0000006d, + 0x00040005,0x000007b2,0x61726170,0x0000006d,0x00040005,0x000007b9,0x61726170,0x0000006d, + 0x00040005,0x000007ba,0x61726170,0x0000006d,0x00040005,0x000007bb,0x61726170,0x0000006d, + 0x00030005,0x000007c2,0x00000076,0x00040005,0x000007c5,0x61726170,0x0000006d,0x00040005, + 0x000007c6,0x61726170,0x0000006d,0x00040005,0x000007c7,0x61726170,0x0000006d,0x00040005, + 0x000007c8,0x61726170,0x0000006d,0x00040005,0x000007cc,0x61726170,0x0000006d,0x00040005, + 0x000007cd,0x61726170,0x0000006d,0x00040005,0x000007cf,0x61726170,0x0000006d,0x00040005, + 0x000007d1,0x61726170,0x0000006d,0x00030005,0x000007d4,0x00786574,0x00030005,0x000007de, + 0x00786970,0x00030005,0x000007e8,0x00003076,0x00040005,0x000007eb,0x61726170,0x0000006d, + 0x00040005,0x000007ec,0x61726170,0x0000006d,0x00040005,0x000007f0,0x61726170,0x0000006d, + 0x00040005,0x000007f2,0x61726170,0x0000006d,0x00040005,0x000007f4,0x61726170,0x0000006d, + 0x00040005,0x000007f5,0x61726170,0x0000006d,0x00030005,0x0000080a,0x00003176,0x00040005, + 0x0000080d,0x61726170,0x0000006d,0x00040005,0x0000080e,0x61726170,0x0000006d,0x00040005, + 0x00000811,0x61726170,0x0000006d,0x00040005,0x00000813,0x61726170,0x0000006d,0x00040005, + 0x00000815,0x61726170,0x0000006d,0x00040005,0x00000816,0x61726170,0x0000006d,0x00030005, + 0x0000082b,0x00003276,0x00040005,0x0000082e,0x61726170,0x0000006d,0x00040005,0x0000082f, + 0x61726170,0x0000006d,0x00040005,0x00000832,0x61726170,0x0000006d,0x00040005,0x00000834, + 0x61726170,0x0000006d,0x00040005,0x00000836,0x61726170,0x0000006d,0x00040005,0x00000837, + 0x61726170,0x0000006d,0x00030005,0x0000084c,0x00003376,0x00040005,0x0000084f,0x61726170, + 0x0000006d,0x00040005,0x00000850,0x61726170,0x0000006d,0x00040005,0x00000853,0x61726170, + 0x0000006d,0x00040005,0x00000855,0x61726170,0x0000006d,0x00040005,0x00000857,0x61726170, + 0x0000006d,0x00040005,0x00000858,0x61726170,0x0000006d,0x00030005,0x00000861,0x00000076, + 0x00040005,0x00000862,0x61726170,0x0000006d,0x00040005,0x00000864,0x61726170,0x0000006d, + 0x00040005,0x00000866,0x61726170,0x0000006d,0x00040005,0x00000868,0x61726170,0x0000006d, + 0x00040005,0x00000870,0x61726170,0x0000006d,0x00040005,0x00000871,0x61726170,0x0000006d, + 0x00040005,0x00000873,0x61726170,0x0000006d,0x00040005,0x00000874,0x61726170,0x0000006d, + 0x00040005,0x00000877,0x61726170,0x0000006d,0x00040005,0x00000879,0x61726170,0x0000006d, + 0x00040005,0x0000087b,0x61726170,0x0000006d,0x00040005,0x00000885,0x61726170,0x0000006d, + 0x00040005,0x00000887,0x61726170,0x0000006d,0x00040005,0x00000889,0x61726170,0x0000006d, + 0x00040005,0x0000088b,0x61726170,0x0000006d,0x00040005,0x0000088d,0x61726170,0x0000006d, + 0x00040005,0x0000088f,0x61726170,0x0000006d,0x00040005,0x0000089c,0x61726170,0x0000006d, + 0x00040005,0x0000089e,0x61726170,0x0000006d,0x00040005,0x000008a0,0x61726170,0x0000006d, + 0x00040005,0x000008a2,0x61726170,0x0000006d,0x00040005,0x000008a4,0x61726170,0x0000006d, + 0x00040005,0x000008a5,0x61726170,0x0000006d,0x00040005,0x000008b2,0x61726170,0x0000006d, + 0x00040005,0x000008b4,0x61726170,0x0000006d,0x00040005,0x000008b6,0x61726170,0x0000006d, + 0x00040005,0x000008b8,0x61726170,0x0000006d,0x00040005,0x000008ba,0x61726170,0x0000006d, + 0x00040005,0x000008bb,0x61726170,0x0000006d,0x00040005,0x000008c8,0x61726170,0x0000006d, + 0x00040005,0x000008ca,0x61726170,0x0000006d,0x00040005,0x000008cc,0x61726170,0x0000006d, + 0x00040005,0x000008cd,0x61726170,0x0000006d,0x00040005,0x000008d0,0x5f627573,0x00007978, + 0x00040005,0x000008d3,0x61726170,0x0000006d,0x00030005,0x000008d5,0x00000078,0x00030005, + 0x000008de,0x00000079,0x00040005,0x000008e5,0x61726170,0x0000006d,0x00040005,0x000008e7, + 0x61726170,0x0000006d,0x00040005,0x000008e9,0x61726170,0x0000006d,0x00040005,0x000008eb, + 0x61726170,0x0000006d,0x00040005,0x000008ed,0x61726170,0x0000006d,0x00040005,0x000008ef, + 0x61726170,0x0000006d,0x00040005,0x000008f2,0x61726170,0x0000006d,0x00040005,0x000008f4, + 0x61726170,0x0000006d,0x00040005,0x000008f6,0x61726170,0x0000006d,0x00040005,0x000008f8, + 0x61726170,0x0000006d,0x00040005,0x000008fa,0x61726170,0x0000006d,0x00040005,0x000008fb, + 0x61726170,0x0000006d,0x00040005,0x000008fd,0x61726170,0x0000006d,0x00040005,0x00000905, + 0x61726170,0x0000006d,0x00040005,0x00000907,0x61726170,0x0000006d,0x00040005,0x00000909, + 0x61726170,0x0000006d,0x00040005,0x0000090f,0x61726170,0x0000006d,0x00040005,0x00000912, + 0x61726170,0x0000006d,0x00040005,0x00000914,0x61726170,0x0000006d,0x00040005,0x00000916, + 0x61726170,0x0000006d,0x00040005,0x00000918,0x61726170,0x0000006d,0x00040005,0x0000091b, + 0x61726170,0x0000006d,0x00040005,0x0000091d,0x61726170,0x0000006d,0x00040005,0x0000091f, + 0x61726170,0x0000006d,0x00040005,0x00000920,0x61726170,0x0000006d,0x00040005,0x00000922, + 0x61726170,0x0000006d,0x00040005,0x00000923,0x61726170,0x0000006d,0x00040005,0x00000925, + 0x61726170,0x0000006d,0x00040005,0x0000092b,0x61726170,0x0000006d,0x00040005,0x0000092c, + 0x61726170,0x0000006d,0x00040005,0x0000092e,0x61726170,0x0000006d,0x00040005,0x00000930, + 0x61726170,0x0000006d,0x00040005,0x00000932,0x61726170,0x0000006d,0x00040005,0x0000093d, + 0x61726170,0x0000006d,0x00040005,0x0000093e,0x61726170,0x0000006d,0x00040005,0x0000093f, + 0x61726170,0x0000006d,0x00040005,0x00000940,0x61726170,0x0000006d,0x00040005,0x00000941, + 0x61726170,0x0000006d,0x00040005,0x00000942,0x61726170,0x0000006d,0x00060005,0x00000945, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000947,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000948,0x61726170,0x0000006d, + 0x00040005,0x0000094a,0x61726170,0x0000006d,0x00060005,0x00000950,0x6f505f73,0x43746e69, + 0x706d616c,0x00000000,0x00060005,0x00000951,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x0000018c,0x00000002,0x00050048,0x0000018c,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000018c,0x00000001,0x00000023,0x00000008,0x00050048,0x0000018c,0x00000002, + 0x00000023,0x00000010,0x00050048,0x0000018c,0x00000003,0x00000023,0x00000018,0x00050048, + 0x0000018c,0x00000004,0x00000023,0x00000020,0x00050048,0x0000018c,0x00000005,0x00000023, + 0x00000028,0x00050048,0x0000018c,0x00000006,0x00000023,0x00000030,0x00050048,0x0000018c, + 0x00000007,0x00000023,0x00000040,0x00050048,0x0000018c,0x00000008,0x00000023,0x00000048, + 0x00050048,0x0000018c,0x00000009,0x00000023,0x00000050,0x00050048,0x0000018c,0x0000000a, + 0x00000023,0x00000058,0x00050048,0x0000018c,0x0000000b,0x00000023,0x00000060,0x00050048, + 0x0000018c,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000018c,0x0000000d,0x00000023, + 0x0000006c,0x00050048,0x0000018c,0x0000000e,0x00000023,0x00000070,0x00050048,0x0000018c, + 0x0000000f,0x00000023,0x00000074,0x00050048,0x0000018c,0x00000010,0x00000023,0x00000078, + 0x00050048,0x0000018c,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000018c,0x00000012, + 0x00000023,0x00000080,0x00050048,0x0000018c,0x00000013,0x00000023,0x00000084,0x00050048, + 0x0000018c,0x00000014,0x00000023,0x00000088,0x00050048,0x0000018c,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x0000018c,0x00000016,0x00000023,0x00000090,0x00040047,0x0000018e, + 0x00000021,0x0000000b,0x00040047,0x0000018e,0x00000022,0x00000000,0x00030047,0x000001aa, + 0x00000002,0x00050048,0x000001aa,0x00000000,0x00000023,0x00000000,0x00050048,0x000001aa, + 0x00000001,0x00000023,0x00000004,0x00050048,0x000001aa,0x00000002,0x00000023,0x00000008, + 0x00050048,0x000001aa,0x00000003,0x00000023,0x00000010,0x00040047,0x000001ac,0x00000021, + 0x0000000c,0x00040047,0x000001ac,0x00000022,0x00000000,0x00040047,0x000001be,0x00000021, + 0x00000000,0x00040047,0x000001be,0x00000022,0x00000000,0x00040047,0x000001c6,0x00000021, + 0x00000001,0x00040047,0x000001c6,0x00000022,0x00000000,0x00040047,0x000001cd,0x00000021, + 0x00000002,0x00040047,0x000001cd,0x00000022,0x00000000,0x00040047,0x000001d5,0x00000021, + 0x00000003,0x00040047,0x000001d5,0x00000022,0x00000000,0x00040047,0x000001e9,0x00000021, + 0x00000005,0x00040047,0x000001e9,0x00000022,0x00000000,0x00040047,0x000001f3,0x00000021, + 0x00000006,0x00040047,0x000001f3,0x00000022,0x00000000,0x00040047,0x000001fd,0x00000021, + 0x00000007,0x00040047,0x000001fd,0x00000022,0x00000000,0x00040047,0x00000207,0x00000021, + 0x00000008,0x00040047,0x00000207,0x00000022,0x00000000,0x00040047,0x00000212,0x00000021, + 0x00000009,0x00040047,0x00000212,0x00000022,0x00000000,0x00030047,0x0000021c,0x00000017, + 0x00040047,0x0000021c,0x00000021,0x0000000a,0x00040047,0x0000021c,0x00000022,0x00000000, + 0x00030047,0x00000263,0x00000017,0x00040047,0x00000263,0x00000021,0x00000004,0x00040047, + 0x00000263,0x00000022,0x00000000,0x00040047,0x00000945,0x0000000b,0x0000001a,0x00040047, + 0x00000947,0x0000000b,0x0000001d,0x00040047,0x00000950,0x00000021,0x000003e8,0x00040047, + 0x00000950,0x00000022,0x00000000,0x00040047,0x00000951,0x00000021,0x000003e9,0x00040047, + 0x00000951,0x00000022,0x00000000,0x00040047,0x0000095a,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006,0x00000007, + 0x00000007,0x00000007,0x00030016,0x00000013,0x00000020,0x00040020,0x00000014,0x00000007, + 0x00000013,0x00050021,0x00000015,0x00000013,0x00000014,0x00000014,0x00040015,0x0000001a, + 0x00000020,0x00000001,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00050021,0x0000001c, + 0x0000001a,0x0000001b,0x0000001b,0x00040017,0x0000002d,0x00000006,0x00000002,0x00040021, + 0x0000002e,0x0000002d,0x00000007,0x00040017,0x00000032,0x0000001a,0x00000002,0x00030021, + 0x00000033,0x00000032,0x00040017,0x00000038,0x00000013,0x00000002,0x00030021,0x00000039, + 0x00000038,0x00030021,0x0000003e,0x00000013,0x00030021,0x00000041,0x00000006,0x00030021, + 0x00000046,0x0000002d,0x00040020,0x00000049,0x00000007,0x00000032,0x00040021,0x0000004a, + 0x00000013,0x00000049,0x00040021,0x00000051,0x00000038,0x00000049,0x00050021,0x00000057, + 0x00000038,0x00000049,0x00000007,0x00040020,0x0000005c,0x00000007,0x00000038,0x00060021, + 0x0000005d,0x00000002,0x00000049,0x0000005c,0x00000007,0x00040021,0x00000063,0x00000002, + 0x00000007,0x00050021,0x00000069,0x00000013,0x00000013,0x00000013,0x00020014,0x0000006e, + 0x00040021,0x0000006f,0x0000006e,0x0000005c,0x00060021,0x00000073,0x00000032,0x00000049, + 0x00000049,0x00000049,0x0004002b,0x00000006,0x00000081,0x00000005,0x0004001c,0x00000082, + 0x00000013,0x00000081,0x0003001e,0x00000083,0x00000082,0x00040020,0x00000084,0x00000007, + 0x00000083,0x00040021,0x00000085,0x00000002,0x00000084,0x00060021,0x00000089,0x00000013, + 0x00000049,0x00000084,0x00000084,0x00040021,0x0000008f,0x00000083,0x0000005c,0x0004001e, + 0x00000093,0x00000083,0x0000006e,0x00050021,0x00000094,0x00000093,0x0000005c,0x0000005c, + 0x00060021,0x00000099,0x00000013,0x00000049,0x0000005c,0x0000005c,0x00040017,0x0000009f, + 0x00000013,0x00000004,0x00050021,0x000000a0,0x0000009f,0x0000005c,0x00000007,0x00050021, + 0x000000a5,0x0000009f,0x00000049,0x00000007,0x00040020,0x000000aa,0x00000007,0x0000009f, + 0x00070021,0x000000ab,0x0000009f,0x000000aa,0x000000aa,0x000000aa,0x000000aa,0x00070021, + 0x000000b2,0x00000002,0x00000049,0x000000aa,0x00000007,0x00000007,0x00050021,0x000000b9, + 0x0000009f,0x00000007,0x00000007,0x00060021,0x000000be,0x00000002,0x00000007,0x00000007, + 0x000000aa,0x00060021,0x000000c6,0x0000006e,0x00000007,0x00000007,0x00000007,0x00040020, + 0x000000cc,0x00000007,0x0000002d,0x00070021,0x000000cd,0x0000009f,0x000000cc,0x000000cc, + 0x000000cc,0x000000cc,0x00080021,0x000000d4,0x0000009f,0x000000cc,0x000000cc,0x000000cc, + 0x000000cc,0x00000007,0x00050021,0x000000dc,0x0000009f,0x000000cc,0x00000007,0x00090021, + 0x000000ec,0x00000002,0x00000007,0x00000007,0x000000cc,0x00000007,0x00000007,0x00000007, + 0x00070021,0x00000115,0x00000002,0x000000cc,0x00000007,0x00000007,0x00000007,0x00070021, + 0x0000011c,0x00000002,0x00000007,0x00000007,0x00000007,0x00000007,0x000a0021,0x00000123, + 0x00000002,0x00000007,0x00000007,0x000000cc,0x00000007,0x00000007,0x00000007,0x00000007, + 0x00080021,0x0000012d,0x00000002,0x000000cc,0x00000007,0x00000007,0x00000007,0x00000007, + 0x00090021,0x00000135,0x00000002,0x000000cc,0x00000007,0x00000007,0x00000007,0x00000007, + 0x000000cc,0x00040017,0x0000013e,0x00000006,0x00000003,0x00040020,0x0000013f,0x00000007, + 0x0000013e,0x00050021,0x00000140,0x00000002,0x0000013f,0x00000007,0x0004002b,0x0000001a, + 0x0000014f,0x00000000,0x0004002b,0x00000006,0x0000016e,0x00000002,0x0004002b,0x00000006, + 0x0000016f,0x00000003,0x0004002b,0x00000006,0x00000175,0x00000001,0x0019001e,0x0000018c, + 0x00000032,0x00000032,0x00000032,0x00000032,0x00000032,0x00000032,0x0000009f,0x00000038, + 0x00000038,0x00000038,0x00000038,0x00000038,0x00000013,0x00000013,0x00000013,0x00000013, + 0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00040020, + 0x0000018d,0x00000002,0x0000018c,0x0004003b,0x0000018d,0x0000018e,0x00000002,0x00040020, + 0x0000018f,0x00000002,0x00000032,0x0004002b,0x0000001a,0x00000194,0x00000001,0x0004002b, + 0x0000001a,0x00000199,0x00000007,0x00040020,0x0000019a,0x00000002,0x00000038,0x0004002b, + 0x0000001a,0x0000019f,0x00000008,0x0004002b,0x0000001a,0x000001a4,0x0000000f,0x00040020, + 0x000001a5,0x00000002,0x00000013,0x0006001e,0x000001aa,0x00000006,0x00000006,0x0000002d, + 0x0000002d,0x00040020,0x000001ab,0x00000002,0x000001aa,0x0004003b,0x000001ab,0x000001ac, + 0x00000002,0x00040020,0x000001ad,0x00000002,0x00000006,0x0004002b,0x0000001a,0x000001b6, + 0x00000002,0x00040020,0x000001b7,0x00000002,0x0000002d,0x00090019,0x000001bc,0x00000013, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001bd, + 0x00000000,0x000001bc,0x0004003b,0x000001bd,0x000001be,0x00000000,0x0004002b,0x00000006, + 0x000001c2,0x00000000,0x0004003b,0x000001bd,0x000001c6,0x00000000,0x0004003b,0x000001bd, + 0x000001cd,0x00000000,0x0004003b,0x000001bd,0x000001d5,0x00000000,0x0005002c,0x00000032, + 0x000001d7,0x0000014f,0x0000014f,0x0004002b,0x00000013,0x000001db,0x00000000,0x0004002b, + 0x00000013,0x000001df,0x3f800000,0x00090019,0x000001e7,0x00000013,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000007,0x00040020,0x000001e8,0x00000000,0x000001e7, + 0x0004003b,0x000001e8,0x000001e9,0x00000000,0x0004003b,0x000001e8,0x000001f3,0x00000000, + 0x0004003b,0x000001e8,0x000001fd,0x00000000,0x0004003b,0x000001e8,0x00000207,0x00000000, + 0x0004002b,0x00000006,0x0000020e,0x00000004,0x0004003b,0x000001e8,0x00000212,0x00000000, + 0x0004003b,0x000001e8,0x0000021c,0x00000000,0x0005002c,0x00000038,0x00000222,0x000001db, + 0x000001db,0x00090019,0x00000261,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000021,0x00040020,0x00000262,0x00000000,0x00000261,0x0004003b,0x00000262, + 0x00000263,0x00000000,0x00040020,0x00000264,0x0000000b,0x00000006,0x00040017,0x00000268, + 0x00000006,0x00000004,0x0007002c,0x00000268,0x00000269,0x000001c2,0x000001c2,0x000001c2, + 0x000001c2,0x00040020,0x000002b2,0x00000004,0x00000006,0x0004003b,0x000002b2,0x000002b3, + 0x00000004,0x0004002b,0x0000001a,0x000002bd,0x00000003,0x0004002b,0x0000001a,0x000002d0, + 0x00000004,0x0004002b,0x00000013,0x00000361,0x477fdf00,0x0004002b,0x00000013,0x00000375, + 0x00800000,0x0004002b,0x0000001a,0x00000380,0x00000005,0x0004002b,0x00000013,0x00000383, + 0x477fe000,0x0004002b,0x00000013,0x00000390,0x387fda40,0x0004001c,0x000003dc,0x00000032, + 0x00000081,0x0004002b,0x0000001a,0x000003dd,0xffffffff,0x0005002c,0x00000032,0x000003de, + 0x000003dd,0x0000014f,0x0005002c,0x00000032,0x000003df,0x00000194,0x0000014f,0x0005002c, + 0x00000032,0x000003e0,0x0000014f,0x000003dd,0x0005002c,0x00000032,0x000003e1,0x0000014f, + 0x00000194,0x0008002c,0x000003dc,0x000003e2,0x000001d7,0x000003de,0x000003df,0x000003e0, + 0x000003e1,0x00040020,0x000003e8,0x00000007,0x000003dc,0x00040020,0x00000416,0x00000007, + 0x00000093,0x00040020,0x0000041b,0x00000007,0x0000006e,0x0004002b,0x00000013,0x00000482, + 0x3f000000,0x0007002c,0x0000009f,0x00000491,0x000001db,0x000001db,0x000001db,0x000001db, + 0x0004002b,0x00000013,0x000004b2,0x3e800000,0x0004002b,0x00000006,0x000004c2,0x00000010, + 0x0004001c,0x000004c3,0x00000013,0x000004c2,0x0004001c,0x000004c4,0x000004c3,0x000004c2, + 0x00040020,0x000004c5,0x00000004,0x000004c4,0x0004003b,0x000004c5,0x000004c6,0x00000004, + 0x00040020,0x000004c9,0x00000004,0x00000013,0x0004003b,0x000004c5,0x000004cc,0x00000004, + 0x0004003b,0x000004c5,0x000004d1,0x00000004,0x0004003b,0x000004c5,0x000004d6,0x00000004, + 0x0004002b,0x00000006,0x000004f2,0x00000d48,0x0004002b,0x00000006,0x000004f3,0x00000108, + 0x0005002c,0x0000002d,0x00000555,0x000001c2,0x000001c2,0x0005002c,0x0000002d,0x00000558, + 0x000001c2,0x00000175,0x0005002c,0x0000002d,0x0000055b,0x00000175,0x000001c2,0x0005002c, + 0x0000002d,0x0000055e,0x00000175,0x00000175,0x0004002b,0x00000006,0x000005a7,0x00000040, + 0x0004002b,0x00000006,0x000005b5,0x00000020,0x0004001c,0x000005bf,0x0000009f,0x0000020e, + 0x00040020,0x000005c0,0x00000007,0x000005bf,0x0004002b,0x00000006,0x00000691,0x00000008, + 0x0005002c,0x0000002d,0x000007c3,0x0000016e,0x000001c2,0x0005002c,0x0000002d,0x000007c4, + 0x0000016f,0x000001c2,0x0004002b,0x00000006,0x000007ef,0x00000006,0x0004002b,0x00000006, + 0x0000085c,0x00000007,0x0004002b,0x0000001a,0x000008d9,0x00000006,0x00040020,0x00000944, + 0x00000001,0x0000013e,0x0004003b,0x00000944,0x00000945,0x00000001,0x00040020,0x00000946, + 0x00000001,0x00000006,0x0004003b,0x00000946,0x00000947,0x00000001,0x0004002b,0x00000013, + 0x0000094d,0x37801002,0x0002001a,0x0000094e,0x00040020,0x0000094f,0x00000000,0x0000094e, + 0x0004003b,0x0000094f,0x00000950,0x00000000,0x0004003b,0x0000094f,0x00000951,0x00000000, + 0x0004002b,0x00000013,0x00000952,0x7f7fffff,0x0004002b,0x00000013,0x00000953,0x3a1fe868, + 0x0004002b,0x00000013,0x00000954,0x3d800000,0x0004002b,0x00000013,0x00000955,0x3d3d70a4, + 0x0004002b,0x00000013,0x00000956,0x3e400000,0x0004002b,0x00000013,0x00000957,0x40000000, + 0x0004002b,0x00000013,0x00000958,0x461c4000,0x0004002b,0x00000006,0x00000959,0x00000100, + 0x0006002c,0x0000013e,0x0000095a,0x00000959,0x00000175,0x00000175,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000013f,0x00000948, + 0x00000007,0x0004003b,0x00000007,0x0000094a,0x00000007,0x0004003d,0x0000013e,0x00000949, + 0x00000945,0x0003003e,0x00000948,0x00000949,0x0004003d,0x00000006,0x0000094b,0x00000947, + 0x0003003e,0x0000094a,0x0000094b,0x00060039,0x00000002,0x0000094c,0x00000143,0x00000948, + 0x0000094a,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007, + 0x0000000b,0x000200f8,0x0000000d,0x0004003d,0x00000006,0x00000145,0x00000009,0x0004003d, + 0x00000006,0x00000146,0x0000000a,0x0004007c,0x0000001a,0x00000147,0x00000146,0x0004003d, + 0x00000006,0x00000148,0x0000000b,0x0004007c,0x0000001a,0x00000149,0x00000148,0x000600cb, + 0x00000006,0x0000014a,0x00000145,0x00000147,0x00000149,0x000200fe,0x0000014a,0x00010038, + 0x00050036,0x00000006,0x00000011,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e, + 0x00030037,0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012, + 0x0004003d,0x00000006,0x0000014d,0x0000000e,0x0004003d,0x00000006,0x0000014e,0x0000000f, + 0x0004003d,0x00000006,0x00000150,0x00000010,0x0004007c,0x0000001a,0x00000151,0x00000150, + 0x000700c9,0x00000006,0x00000152,0x0000014d,0x0000014e,0x0000014f,0x00000151,0x000200fe, + 0x00000152,0x00010038,0x00050036,0x00000013,0x00000018,0x00000000,0x00000015,0x00030037, + 0x00000014,0x00000016,0x00030037,0x00000014,0x00000017,0x000200f8,0x00000019,0x0004003d, + 0x00000013,0x00000155,0x00000016,0x0004003d,0x00000013,0x00000156,0x00000017,0x0007000c, + 0x00000013,0x00000157,0x00000001,0x00000025,0x00000155,0x00000156,0x000200fe,0x00000157, + 0x00010038,0x00050036,0x0000001a,0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b, + 0x0000001d,0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a, + 0x0000015a,0x0000001d,0x0004003d,0x0000001a,0x0000015b,0x0000001e,0x0007000c,0x0000001a, + 0x0000015c,0x00000001,0x00000027,0x0000015a,0x0000015b,0x000200fe,0x0000015c,0x00010038, + 0x00050036,0x00000013,0x00000023,0x00000000,0x00000015,0x00030037,0x00000014,0x00000021, + 0x00030037,0x00000014,0x00000022,0x000200f8,0x00000024,0x0004003d,0x00000013,0x0000015f, + 0x00000021,0x0004003d,0x00000013,0x00000160,0x00000022,0x0007000c,0x00000013,0x00000161, + 0x00000001,0x00000028,0x0000015f,0x00000160,0x000200fe,0x00000161,0x00010038,0x00050036, + 0x0000001a,0x00000027,0x00000000,0x0000001c,0x00030037,0x0000001b,0x00000025,0x00030037, + 0x0000001b,0x00000026,0x000200f8,0x00000028,0x0004003d,0x0000001a,0x00000164,0x00000025, + 0x0004003d,0x0000001a,0x00000165,0x00000026,0x0007000c,0x0000001a,0x00000166,0x00000001, + 0x0000002a,0x00000164,0x00000165,0x000200fe,0x00000166,0x00010038,0x00050036,0x00000013, + 0x0000002b,0x00000000,0x00000015,0x00030037,0x00000014,0x00000029,0x00030037,0x00000014, + 0x0000002a,0x000200f8,0x0000002c,0x0004003d,0x00000013,0x00000169,0x00000029,0x0004003d, + 0x00000013,0x0000016a,0x0000002a,0x0007000c,0x00000013,0x0000016b,0x00000001,0x0000001a, + 0x00000169,0x0000016a,0x000200fe,0x0000016b,0x00010038,0x00050036,0x0000002d,0x00000030, + 0x00000000,0x0000002e,0x00030037,0x00000007,0x0000002f,0x000200f8,0x00000031,0x0004003b, + 0x00000007,0x00000170,0x00000007,0x0004003b,0x00000007,0x00000172,0x00000007,0x0004003b, + 0x00000007,0x00000173,0x00000007,0x0004003b,0x00000007,0x00000176,0x00000007,0x0004003b, + 0x00000007,0x00000177,0x00000007,0x0004003b,0x00000007,0x00000179,0x00000007,0x0004003b, + 0x00000007,0x0000017b,0x00000007,0x0004003b,0x00000007,0x0000017d,0x00000007,0x0004003b, + 0x00000007,0x0000017e,0x00000007,0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b, + 0x00000007,0x00000182,0x00000007,0x0004003b,0x00000007,0x00000183,0x00000007,0x0004003b, + 0x00000007,0x00000185,0x00000007,0x0004003b,0x00000007,0x00000186,0x00000007,0x0004003b, + 0x00000007,0x00000187,0x00000007,0x0004003d,0x00000006,0x00000171,0x0000002f,0x0003003e, + 0x00000170,0x00000171,0x0003003e,0x00000172,0x0000016e,0x0003003e,0x00000173,0x0000016f, + 0x00070039,0x00000006,0x00000174,0x0000000c,0x00000170,0x00000172,0x00000173,0x0003003e, + 0x00000176,0x00000174,0x0004003d,0x00000006,0x00000178,0x0000002f,0x0003003e,0x00000177, + 0x00000178,0x0003003e,0x00000179,0x00000175,0x00070039,0x00000006,0x0000017a,0x00000011, + 0x00000176,0x00000177,0x00000179,0x0004003d,0x00000006,0x0000017c,0x0000002f,0x0003003e, + 0x0000017b,0x0000017c,0x0003003e,0x0000017d,0x0000016f,0x0003003e,0x0000017e,0x0000016f, + 0x00070039,0x00000006,0x0000017f,0x0000000c,0x0000017b,0x0000017d,0x0000017e,0x0004003d, + 0x00000006,0x00000181,0x0000002f,0x0003003e,0x00000180,0x00000181,0x0003003e,0x00000182, + 0x00000175,0x0003003e,0x00000183,0x0000016e,0x00070039,0x00000006,0x00000184,0x0000000c, + 0x00000180,0x00000182,0x00000183,0x0003003e,0x00000185,0x0000017f,0x0003003e,0x00000186, + 0x00000184,0x0003003e,0x00000187,0x0000016e,0x00070039,0x00000006,0x00000188,0x00000011, + 0x00000185,0x00000186,0x00000187,0x00050050,0x0000002d,0x00000189,0x0000017a,0x00000188, + 0x000200fe,0x00000189,0x00010038,0x00050036,0x00000032,0x00000034,0x00000000,0x00000033, + 0x000200f8,0x00000035,0x00050041,0x0000018f,0x00000190,0x0000018e,0x0000014f,0x0004003d, + 0x00000032,0x00000191,0x00000190,0x000200fe,0x00000191,0x00010038,0x00050036,0x00000032, + 0x00000036,0x00000000,0x00000033,0x000200f8,0x00000037,0x00050041,0x0000018f,0x00000195, + 0x0000018e,0x00000194,0x0004003d,0x00000032,0x00000196,0x00000195,0x000200fe,0x00000196, + 0x00010038,0x00050036,0x00000038,0x0000003a,0x00000000,0x00000039,0x000200f8,0x0000003b, + 0x00050041,0x0000019a,0x0000019b,0x0000018e,0x00000199,0x0004003d,0x00000038,0x0000019c, + 0x0000019b,0x000200fe,0x0000019c,0x00010038,0x00050036,0x00000038,0x0000003c,0x00000000, + 0x00000039,0x000200f8,0x0000003d,0x00050041,0x0000019a,0x000001a0,0x0000018e,0x0000019f, + 0x0004003d,0x00000038,0x000001a1,0x000001a0,0x000200fe,0x000001a1,0x00010038,0x00050036, + 0x00000013,0x0000003f,0x00000000,0x0000003e,0x000200f8,0x00000040,0x00050041,0x000001a5, + 0x000001a6,0x0000018e,0x000001a4,0x0004003d,0x00000013,0x000001a7,0x000001a6,0x000200fe, + 0x000001a7,0x00010038,0x00050036,0x00000006,0x00000042,0x00000000,0x00000041,0x000200f8, + 0x00000043,0x00050041,0x000001ad,0x000001ae,0x000001ac,0x0000014f,0x0004003d,0x00000006, + 0x000001af,0x000001ae,0x000200fe,0x000001af,0x00010038,0x00050036,0x00000006,0x00000044, + 0x00000000,0x00000041,0x000200f8,0x00000045,0x00050041,0x000001ad,0x000001b2,0x000001ac, + 0x00000194,0x0004003d,0x00000006,0x000001b3,0x000001b2,0x000200fe,0x000001b3,0x00010038, + 0x00050036,0x0000002d,0x00000047,0x00000000,0x00000046,0x000200f8,0x00000048,0x00050041, + 0x000001b7,0x000001b8,0x000001ac,0x000001b6,0x0004003d,0x0000002d,0x000001b9,0x000001b8, + 0x000200fe,0x000001b9,0x00010038,0x00050036,0x00000013,0x0000004c,0x00000000,0x0000004a, + 0x00030037,0x00000049,0x0000004b,0x000200f8,0x0000004d,0x0004003d,0x000001bc,0x000001bf, + 0x000001be,0x0004003d,0x00000032,0x000001c0,0x0000004b,0x0007005f,0x0000009f,0x000001c1, + 0x000001bf,0x000001c0,0x00000002,0x0000014f,0x00050051,0x00000013,0x000001c3,0x000001c1, + 0x00000000,0x000200fe,0x000001c3,0x00010038,0x00050036,0x00000013,0x0000004f,0x00000000, + 0x0000004a,0x00030037,0x00000049,0x0000004e,0x000200f8,0x00000050,0x0004003d,0x000001bc, + 0x000001c7,0x000001c6,0x0004003d,0x00000032,0x000001c8,0x0000004e,0x0007005f,0x0000009f, + 0x000001c9,0x000001c7,0x000001c8,0x00000002,0x0000014f,0x00050051,0x00000013,0x000001ca, + 0x000001c9,0x00000000,0x000200fe,0x000001ca,0x00010038,0x00050036,0x00000038,0x00000053, + 0x00000000,0x00000051,0x00030037,0x00000049,0x00000052,0x000200f8,0x00000054,0x0004003d, + 0x000001bc,0x000001ce,0x000001cd,0x0004003d,0x00000032,0x000001cf,0x00000052,0x0007005f, + 0x0000009f,0x000001d0,0x000001ce,0x000001cf,0x00000002,0x0000014f,0x0007004f,0x00000038, + 0x000001d1,0x000001d0,0x000001d0,0x00000000,0x00000001,0x000200fe,0x000001d1,0x00010038, + 0x00050036,0x00000013,0x00000055,0x00000000,0x0000003e,0x000200f8,0x00000056,0x0004003b, + 0x00000014,0x000001d4,0x00000007,0x0004003d,0x000001bc,0x000001d6,0x000001d5,0x0007005f, + 0x0000009f,0x000001d8,0x000001d6,0x000001d7,0x00000002,0x0000014f,0x00050051,0x00000013, + 0x000001d9,0x000001d8,0x00000000,0x0003003e,0x000001d4,0x000001d9,0x0004003d,0x00000013, + 0x000001da,0x000001d4,0x000500b4,0x0000006e,0x000001dc,0x000001da,0x000001db,0x000300f7, + 0x000001de,0x00000000,0x000400fa,0x000001dc,0x000001dd,0x000001de,0x000200f8,0x000001dd, + 0x0003003e,0x000001d4,0x000001df,0x000200f9,0x000001de,0x000200f8,0x000001de,0x0004003d, + 0x00000013,0x000001e0,0x000001d4,0x000200fe,0x000001e0,0x00010038,0x00050036,0x00000038, + 0x0000005a,0x00000000,0x00000057,0x00030037,0x00000049,0x00000058,0x00030037,0x00000007, + 0x00000059,0x000200f8,0x0000005b,0x0004003d,0x00000006,0x000001e3,0x00000059,0x000500aa, + 0x0000006e,0x000001e4,0x000001e3,0x000001c2,0x000300f7,0x000001e6,0x00000000,0x000400fa, + 0x000001e4,0x000001e5,0x000001e6,0x000200f8,0x000001e5,0x0004003d,0x000001e7,0x000001ea, + 0x000001e9,0x0004003d,0x00000032,0x000001eb,0x00000058,0x00050062,0x0000009f,0x000001ec, + 0x000001ea,0x000001eb,0x0007004f,0x00000038,0x000001ed,0x000001ec,0x000001ec,0x00000000, + 0x00000001,0x000200fe,0x000001ed,0x000200f8,0x000001e6,0x0004003d,0x00000006,0x000001ef, + 0x00000059,0x000500aa,0x0000006e,0x000001f0,0x000001ef,0x00000175,0x000300f7,0x000001f2, + 0x00000000,0x000400fa,0x000001f0,0x000001f1,0x000001f2,0x000200f8,0x000001f1,0x0004003d, + 0x000001e7,0x000001f4,0x000001f3,0x0004003d,0x00000032,0x000001f5,0x00000058,0x00050062, + 0x0000009f,0x000001f6,0x000001f4,0x000001f5,0x0007004f,0x00000038,0x000001f7,0x000001f6, + 0x000001f6,0x00000000,0x00000001,0x000200fe,0x000001f7,0x000200f8,0x000001f2,0x0004003d, + 0x00000006,0x000001f9,0x00000059,0x000500aa,0x0000006e,0x000001fa,0x000001f9,0x0000016e, + 0x000300f7,0x000001fc,0x00000000,0x000400fa,0x000001fa,0x000001fb,0x000001fc,0x000200f8, + 0x000001fb,0x0004003d,0x000001e7,0x000001fe,0x000001fd,0x0004003d,0x00000032,0x000001ff, + 0x00000058,0x00050062,0x0000009f,0x00000200,0x000001fe,0x000001ff,0x0007004f,0x00000038, + 0x00000201,0x00000200,0x00000200,0x00000000,0x00000001,0x000200fe,0x00000201,0x000200f8, + 0x000001fc,0x0004003d,0x00000006,0x00000203,0x00000059,0x000500aa,0x0000006e,0x00000204, + 0x00000203,0x0000016f,0x000300f7,0x00000206,0x00000000,0x000400fa,0x00000204,0x00000205, + 0x00000206,0x000200f8,0x00000205,0x0004003d,0x000001e7,0x00000208,0x00000207,0x0004003d, + 0x00000032,0x00000209,0x00000058,0x00050062,0x0000009f,0x0000020a,0x00000208,0x00000209, + 0x0007004f,0x00000038,0x0000020b,0x0000020a,0x0000020a,0x00000000,0x00000001,0x000200fe, + 0x0000020b,0x000200f8,0x00000206,0x0004003d,0x00000006,0x0000020d,0x00000059,0x000500aa, + 0x0000006e,0x0000020f,0x0000020d,0x0000020e,0x000300f7,0x00000211,0x00000000,0x000400fa, + 0x0000020f,0x00000210,0x00000211,0x000200f8,0x00000210,0x0004003d,0x000001e7,0x00000213, + 0x00000212,0x0004003d,0x00000032,0x00000214,0x00000058,0x00050062,0x0000009f,0x00000215, + 0x00000213,0x00000214,0x0007004f,0x00000038,0x00000216,0x00000215,0x00000215,0x00000000, + 0x00000001,0x000200fe,0x00000216,0x000200f8,0x00000211,0x0004003d,0x00000006,0x00000218, + 0x00000059,0x000500aa,0x0000006e,0x00000219,0x00000218,0x00000081,0x000300f7,0x0000021b, + 0x00000000,0x000400fa,0x00000219,0x0000021a,0x0000021b,0x000200f8,0x0000021a,0x0004003d, + 0x000001e7,0x0000021d,0x0000021c,0x0004003d,0x00000032,0x0000021e,0x00000058,0x00050062, + 0x0000009f,0x0000021f,0x0000021d,0x0000021e,0x0007004f,0x00000038,0x00000220,0x0000021f, + 0x0000021f,0x00000000,0x00000001,0x000200fe,0x00000220,0x000200f8,0x0000021b,0x000200fe, + 0x00000222,0x00010038,0x00050036,0x00000002,0x00000061,0x00000000,0x0000005d,0x00030037, + 0x00000049,0x0000005e,0x00030037,0x0000005c,0x0000005f,0x00030037,0x00000007,0x00000060, + 0x000200f8,0x00000062,0x0004003d,0x00000006,0x00000225,0x00000060,0x000500aa,0x0000006e, + 0x00000226,0x00000225,0x000001c2,0x000300f7,0x00000228,0x00000000,0x000400fa,0x00000226, + 0x00000227,0x00000228,0x000200f8,0x00000227,0x0004003d,0x000001e7,0x00000229,0x000001e9, + 0x0004003d,0x00000032,0x0000022a,0x0000005e,0x0004003d,0x00000038,0x0000022b,0x0000005f, + 0x00050051,0x00000013,0x0000022c,0x0000022b,0x00000000,0x00050051,0x00000013,0x0000022d, + 0x0000022b,0x00000001,0x00070050,0x0000009f,0x0000022e,0x0000022c,0x0000022d,0x000001db, + 0x000001db,0x00040063,0x00000229,0x0000022a,0x0000022e,0x000200f9,0x00000228,0x000200f8, + 0x00000228,0x0004003d,0x00000006,0x0000022f,0x00000060,0x000500aa,0x0000006e,0x00000230, + 0x0000022f,0x00000175,0x000300f7,0x00000232,0x00000000,0x000400fa,0x00000230,0x00000231, + 0x00000232,0x000200f8,0x00000231,0x0004003d,0x000001e7,0x00000233,0x000001f3,0x0004003d, + 0x00000032,0x00000234,0x0000005e,0x0004003d,0x00000038,0x00000235,0x0000005f,0x00050051, + 0x00000013,0x00000236,0x00000235,0x00000000,0x00050051,0x00000013,0x00000237,0x00000235, + 0x00000001,0x00070050,0x0000009f,0x00000238,0x00000236,0x00000237,0x000001db,0x000001db, + 0x00040063,0x00000233,0x00000234,0x00000238,0x000200f9,0x00000232,0x000200f8,0x00000232, + 0x0004003d,0x00000006,0x00000239,0x00000060,0x000500aa,0x0000006e,0x0000023a,0x00000239, + 0x0000016e,0x000300f7,0x0000023c,0x00000000,0x000400fa,0x0000023a,0x0000023b,0x0000023c, + 0x000200f8,0x0000023b,0x0004003d,0x000001e7,0x0000023d,0x000001fd,0x0004003d,0x00000032, + 0x0000023e,0x0000005e,0x0004003d,0x00000038,0x0000023f,0x0000005f,0x00050051,0x00000013, + 0x00000240,0x0000023f,0x00000000,0x00050051,0x00000013,0x00000241,0x0000023f,0x00000001, + 0x00070050,0x0000009f,0x00000242,0x00000240,0x00000241,0x000001db,0x000001db,0x00040063, + 0x0000023d,0x0000023e,0x00000242,0x000200f9,0x0000023c,0x000200f8,0x0000023c,0x0004003d, + 0x00000006,0x00000243,0x00000060,0x000500aa,0x0000006e,0x00000244,0x00000243,0x0000016f, + 0x000300f7,0x00000246,0x00000000,0x000400fa,0x00000244,0x00000245,0x00000246,0x000200f8, + 0x00000245,0x0004003d,0x000001e7,0x00000247,0x00000207,0x0004003d,0x00000032,0x00000248, + 0x0000005e,0x0004003d,0x00000038,0x00000249,0x0000005f,0x00050051,0x00000013,0x0000024a, + 0x00000249,0x00000000,0x00050051,0x00000013,0x0000024b,0x00000249,0x00000001,0x00070050, + 0x0000009f,0x0000024c,0x0000024a,0x0000024b,0x000001db,0x000001db,0x00040063,0x00000247, + 0x00000248,0x0000024c,0x000200f9,0x00000246,0x000200f8,0x00000246,0x0004003d,0x00000006, + 0x0000024d,0x00000060,0x000500aa,0x0000006e,0x0000024e,0x0000024d,0x0000020e,0x000300f7, + 0x00000250,0x00000000,0x000400fa,0x0000024e,0x0000024f,0x00000250,0x000200f8,0x0000024f, + 0x0004003d,0x000001e7,0x00000251,0x00000212,0x0004003d,0x00000032,0x00000252,0x0000005e, + 0x0004003d,0x00000038,0x00000253,0x0000005f,0x00050051,0x00000013,0x00000254,0x00000253, + 0x00000000,0x00050051,0x00000013,0x00000255,0x00000253,0x00000001,0x00070050,0x0000009f, + 0x00000256,0x00000254,0x00000255,0x000001db,0x000001db,0x00040063,0x00000251,0x00000252, + 0x00000256,0x000200f9,0x00000250,0x000200f8,0x00000250,0x0004003d,0x00000006,0x00000257, + 0x00000060,0x000500aa,0x0000006e,0x00000258,0x00000257,0x00000081,0x000300f7,0x0000025a, + 0x00000000,0x000400fa,0x00000258,0x00000259,0x0000025a,0x000200f8,0x00000259,0x0004003d, + 0x000001e7,0x0000025b,0x0000021c,0x0004003d,0x00000032,0x0000025c,0x0000005e,0x0004003d, + 0x00000038,0x0000025d,0x0000005f,0x00050051,0x00000013,0x0000025e,0x0000025d,0x00000000, + 0x00050051,0x00000013,0x0000025f,0x0000025d,0x00000001,0x00070050,0x0000009f,0x00000260, + 0x0000025e,0x0000025f,0x000001db,0x000001db,0x00040063,0x0000025b,0x0000025c,0x00000260, + 0x000200f9,0x0000025a,0x000200f8,0x0000025a,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000065,0x00000000,0x00000063,0x00030037,0x00000007,0x00000064,0x000200f8,0x00000066, + 0x0006003c,0x00000264,0x00000265,0x00000263,0x000001d7,0x000001c2,0x000700ea,0x00000006, + 0x00000266,0x00000265,0x00000175,0x000001c2,0x00000175,0x0003003e,0x00000064,0x00000266, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000067,0x00000000,0x00000003,0x000200f8, + 0x00000068,0x0004003d,0x00000261,0x00000267,0x00000263,0x00040063,0x00000267,0x000001d7, + 0x00000269,0x000100fd,0x00010038,0x00050036,0x00000013,0x0000006c,0x00000000,0x00000069, + 0x00030037,0x00000013,0x0000006a,0x00030037,0x00000013,0x0000006b,0x000200f8,0x0000006d, + 0x0004003b,0x00000014,0x0000026a,0x00000007,0x0004003b,0x00000014,0x0000026b,0x00000007, + 0x0004003b,0x00000014,0x0000026c,0x00000007,0x0004003b,0x00000014,0x00000270,0x00000007, + 0x0004003b,0x00000014,0x00000273,0x00000007,0x0004003b,0x00000014,0x00000274,0x00000007, + 0x0003003e,0x0000026b,0x0000006a,0x0003003e,0x0000026c,0x0000006b,0x00060039,0x00000013, + 0x0000026d,0x00000023,0x0000026b,0x0000026c,0x0003003e,0x0000026a,0x0000026d,0x0004003d, + 0x00000013,0x0000026e,0x0000026a,0x000500b7,0x0000006e,0x0000026f,0x0000026e,0x000001db, + 0x000300f7,0x00000272,0x00000000,0x000400fa,0x0000026f,0x00000271,0x00000278,0x000200f8, + 0x00000271,0x0003003e,0x00000273,0x0000006a,0x0003003e,0x00000274,0x0000006b,0x00060039, + 0x00000013,0x00000275,0x00000018,0x00000273,0x00000274,0x0004003d,0x00000013,0x00000276, + 0x0000026a,0x00050088,0x00000013,0x00000277,0x00000275,0x00000276,0x0003003e,0x00000270, + 0x00000277,0x000200f9,0x00000272,0x000200f8,0x00000278,0x0003003e,0x00000270,0x000001db, + 0x000200f9,0x00000272,0x000200f8,0x00000272,0x0004003d,0x00000013,0x00000279,0x00000270, + 0x000200fe,0x00000279,0x00010038,0x00050036,0x0000006e,0x00000071,0x00000000,0x0000006f, + 0x00030037,0x0000005c,0x00000070,0x000200f8,0x00000072,0x00050041,0x00000014,0x0000027c, + 0x00000070,0x000001c2,0x0004003d,0x00000013,0x0000027d,0x0000027c,0x000500be,0x0000006e, + 0x0000027e,0x0000027d,0x000001db,0x000300f7,0x00000280,0x00000000,0x000400fa,0x0000027e, + 0x0000027f,0x00000280,0x000200f8,0x0000027f,0x00050041,0x00000014,0x00000281,0x00000070, + 0x000001c2,0x0004003d,0x00000013,0x00000282,0x00000281,0x000500bc,0x0000006e,0x00000283, + 0x00000282,0x000001df,0x000200f9,0x00000280,0x000200f8,0x00000280,0x000700f5,0x0000006e, + 0x00000284,0x0000027e,0x00000072,0x00000283,0x0000027f,0x000300f7,0x00000286,0x00000000, + 0x000400fa,0x00000284,0x00000285,0x00000286,0x000200f8,0x00000285,0x00050041,0x00000014, + 0x00000287,0x00000070,0x00000175,0x0004003d,0x00000013,0x00000288,0x00000287,0x000500be, + 0x0000006e,0x00000289,0x00000288,0x000001db,0x000300f7,0x0000028b,0x00000000,0x000400fa, + 0x00000289,0x0000028a,0x0000028b,0x000200f8,0x0000028a,0x00050041,0x00000014,0x0000028c, + 0x00000070,0x00000175,0x0004003d,0x00000013,0x0000028d,0x0000028c,0x000500bc,0x0000006e, + 0x0000028e,0x0000028d,0x000001df,0x000200f9,0x0000028b,0x000200f8,0x0000028b,0x000700f5, + 0x0000006e,0x0000028f,0x00000289,0x00000285,0x0000028e,0x0000028a,0x000200f9,0x00000286, + 0x000200f8,0x00000286,0x000700f5,0x0000006e,0x00000290,0x00000284,0x00000280,0x0000028f, + 0x0000028b,0x000200fe,0x00000290,0x00010038,0x00050036,0x00000032,0x00000077,0x00000000, + 0x00000073,0x00030037,0x00000049,0x00000074,0x00030037,0x00000049,0x00000075,0x00030037, + 0x00000049,0x00000076,0x000200f8,0x00000078,0x0004003b,0x00000049,0x00000293,0x00000007, + 0x0004003b,0x0000001b,0x0000029a,0x00000007,0x0004003b,0x0000001b,0x0000029d,0x00000007, + 0x0004003b,0x0000001b,0x0000029f,0x00000007,0x0004003b,0x0000001b,0x000002a0,0x00000007, + 0x0004003b,0x0000001b,0x000002a6,0x00000007,0x0004003b,0x0000001b,0x000002a9,0x00000007, + 0x0004003b,0x0000001b,0x000002ab,0x00000007,0x0004003b,0x0000001b,0x000002ac,0x00000007, + 0x0004003d,0x00000032,0x00000294,0x00000074,0x0004003d,0x00000032,0x00000295,0x00000075, + 0x00050080,0x00000032,0x00000296,0x00000294,0x00000295,0x0003003e,0x00000293,0x00000296, + 0x00050041,0x0000001b,0x00000297,0x00000076,0x000001c2,0x0004003d,0x0000001a,0x00000298, + 0x00000297,0x00050082,0x0000001a,0x00000299,0x00000298,0x00000194,0x00050041,0x0000001b, + 0x0000029b,0x00000293,0x000001c2,0x0004003d,0x0000001a,0x0000029c,0x0000029b,0x0003003e, + 0x0000029a,0x0000029c,0x0003003e,0x0000029d,0x00000299,0x00060039,0x0000001a,0x0000029e, + 0x0000001f,0x0000029a,0x0000029d,0x0003003e,0x0000029f,0x0000014f,0x0003003e,0x000002a0, + 0x0000029e,0x00060039,0x0000001a,0x000002a1,0x00000027,0x0000029f,0x000002a0,0x00050041, + 0x0000001b,0x000002a2,0x00000293,0x000001c2,0x0003003e,0x000002a2,0x000002a1,0x00050041, + 0x0000001b,0x000002a3,0x00000076,0x00000175,0x0004003d,0x0000001a,0x000002a4,0x000002a3, + 0x00050082,0x0000001a,0x000002a5,0x000002a4,0x00000194,0x00050041,0x0000001b,0x000002a7, + 0x00000293,0x00000175,0x0004003d,0x0000001a,0x000002a8,0x000002a7,0x0003003e,0x000002a6, + 0x000002a8,0x0003003e,0x000002a9,0x000002a5,0x00060039,0x0000001a,0x000002aa,0x0000001f, + 0x000002a6,0x000002a9,0x0003003e,0x000002ab,0x0000014f,0x0003003e,0x000002ac,0x000002aa, + 0x00060039,0x0000001a,0x000002ad,0x00000027,0x000002ab,0x000002ac,0x00050041,0x0000001b, + 0x000002ae,0x00000293,0x00000175,0x0003003e,0x000002ae,0x000002ad,0x0004003d,0x00000032, + 0x000002af,0x00000293,0x000200fe,0x000002af,0x00010038,0x00050036,0x00000002,0x0000007a, + 0x00000000,0x00000063,0x00030037,0x00000007,0x00000079,0x000200f8,0x0000007b,0x0004003b, + 0x00000007,0x000002b4,0x00000007,0x0004003d,0x00000006,0x000002b5,0x000002b3,0x0003003e, + 0x000002b4,0x000002b5,0x00050039,0x00000002,0x000002b6,0x00000065,0x000002b4,0x0004003d, + 0x00000006,0x000002b7,0x000002b4,0x0003003e,0x000002b3,0x000002b7,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000007c,0x00000000,0x00000041,0x000200f8,0x0000007d,0x0004003d, + 0x00000006,0x000002b8,0x000002b3,0x000200fe,0x000002b8,0x00010038,0x00050036,0x00000002, + 0x0000007f,0x00000000,0x00000063,0x00030037,0x00000007,0x0000007e,0x000200f8,0x00000080, + 0x00040039,0x00000002,0x000002bb,0x00000067,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000087,0x00000000,0x00000085,0x00030037,0x00000084,0x00000086,0x000200f8,0x00000088, + 0x0004003b,0x00000014,0x000002bc,0x00000007,0x0004003b,0x00000014,0x000002be,0x00000007, + 0x0004003b,0x00000014,0x000002c1,0x00000007,0x0004003b,0x00000014,0x000002c5,0x00000007, + 0x0004003b,0x00000014,0x000002c8,0x00000007,0x0004003b,0x00000014,0x000002cf,0x00000007, + 0x0004003b,0x00000014,0x000002d1,0x00000007,0x0004003b,0x00000014,0x000002d4,0x00000007, + 0x0004003b,0x00000014,0x000002d8,0x00000007,0x0004003b,0x00000014,0x000002db,0x00000007, + 0x0004003b,0x00000014,0x000002e2,0x00000007,0x0004003b,0x00000014,0x000002e3,0x00000007, + 0x0004003b,0x00000014,0x000002e6,0x00000007,0x0004003b,0x00000014,0x000002ea,0x00000007, + 0x0004003b,0x00000014,0x000002ed,0x00000007,0x0004003b,0x00000014,0x000002f4,0x00000007, + 0x0004003b,0x00000014,0x000002f5,0x00000007,0x0004003b,0x00000014,0x000002f8,0x00000007, + 0x0004003b,0x00000014,0x000002fc,0x00000007,0x0004003b,0x00000014,0x000002ff,0x00000007, + 0x0004003b,0x00000014,0x00000306,0x00000007,0x0004003b,0x00000014,0x00000307,0x00000007, + 0x0004003b,0x00000014,0x0000030a,0x00000007,0x0004003b,0x00000014,0x0000030e,0x00000007, + 0x0004003b,0x00000014,0x00000311,0x00000007,0x0004003b,0x00000014,0x00000318,0x00000007, + 0x0004003b,0x00000014,0x00000319,0x00000007,0x0004003b,0x00000014,0x0000031c,0x00000007, + 0x0004003b,0x00000014,0x00000320,0x00000007,0x0004003b,0x00000014,0x00000323,0x00000007, + 0x0004003b,0x00000014,0x0000032a,0x00000007,0x0004003b,0x00000014,0x0000032b,0x00000007, + 0x0004003b,0x00000014,0x0000032e,0x00000007,0x0004003b,0x00000014,0x00000332,0x00000007, + 0x0004003b,0x00000014,0x00000335,0x00000007,0x0004003b,0x00000014,0x0000033c,0x00000007, + 0x0004003b,0x00000014,0x0000033d,0x00000007,0x0004003b,0x00000014,0x00000340,0x00000007, + 0x0004003b,0x00000014,0x00000344,0x00000007,0x0004003b,0x00000014,0x00000347,0x00000007, + 0x0004003b,0x00000014,0x0000034e,0x00000007,0x0004003b,0x00000014,0x0000034f,0x00000007, + 0x0004003b,0x00000014,0x00000352,0x00000007,0x0004003b,0x00000014,0x00000356,0x00000007, + 0x0004003b,0x00000014,0x00000359,0x00000007,0x00060041,0x00000014,0x000002bf,0x00000086, + 0x0000014f,0x0000014f,0x0004003d,0x00000013,0x000002c0,0x000002bf,0x0003003e,0x000002be, + 0x000002c0,0x00060041,0x00000014,0x000002c2,0x00000086,0x0000014f,0x000002bd,0x0004003d, + 0x00000013,0x000002c3,0x000002c2,0x0003003e,0x000002c1,0x000002c3,0x00060039,0x00000013, + 0x000002c4,0x00000018,0x000002be,0x000002c1,0x0003003e,0x000002bc,0x000002c4,0x00060041, + 0x00000014,0x000002c6,0x00000086,0x0000014f,0x0000014f,0x0004003d,0x00000013,0x000002c7, + 0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00060041,0x00000014,0x000002c9,0x00000086, + 0x0000014f,0x000002bd,0x0004003d,0x00000013,0x000002ca,0x000002c9,0x0003003e,0x000002c8, + 0x000002ca,0x00060039,0x00000013,0x000002cb,0x00000023,0x000002c5,0x000002c8,0x00060041, + 0x00000014,0x000002cc,0x00000086,0x0000014f,0x000002bd,0x0003003e,0x000002cc,0x000002cb, + 0x0004003d,0x00000013,0x000002cd,0x000002bc,0x00060041,0x00000014,0x000002ce,0x00000086, + 0x0000014f,0x0000014f,0x0003003e,0x000002ce,0x000002cd,0x00060041,0x00000014,0x000002d2, + 0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x000002d3,0x000002d2,0x0003003e, + 0x000002d1,0x000002d3,0x00060041,0x00000014,0x000002d5,0x00000086,0x0000014f,0x000002d0, + 0x0004003d,0x00000013,0x000002d6,0x000002d5,0x0003003e,0x000002d4,0x000002d6,0x00060039, + 0x00000013,0x000002d7,0x00000018,0x000002d1,0x000002d4,0x0003003e,0x000002cf,0x000002d7, + 0x00060041,0x00000014,0x000002d9,0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013, + 0x000002da,0x000002d9,0x0003003e,0x000002d8,0x000002da,0x00060041,0x00000014,0x000002dc, + 0x00000086,0x0000014f,0x000002d0,0x0004003d,0x00000013,0x000002dd,0x000002dc,0x0003003e, + 0x000002db,0x000002dd,0x00060039,0x00000013,0x000002de,0x00000023,0x000002d8,0x000002db, + 0x00060041,0x00000014,0x000002df,0x00000086,0x0000014f,0x000002d0,0x0003003e,0x000002df, + 0x000002de,0x0004003d,0x00000013,0x000002e0,0x000002cf,0x00060041,0x00000014,0x000002e1, + 0x00000086,0x0000014f,0x00000194,0x0003003e,0x000002e1,0x000002e0,0x00060041,0x00000014, + 0x000002e4,0x00000086,0x0000014f,0x0000014f,0x0004003d,0x00000013,0x000002e5,0x000002e4, + 0x0003003e,0x000002e3,0x000002e5,0x00060041,0x00000014,0x000002e7,0x00000086,0x0000014f, + 0x000001b6,0x0004003d,0x00000013,0x000002e8,0x000002e7,0x0003003e,0x000002e6,0x000002e8, + 0x00060039,0x00000013,0x000002e9,0x00000018,0x000002e3,0x000002e6,0x0003003e,0x000002e2, + 0x000002e9,0x00060041,0x00000014,0x000002eb,0x00000086,0x0000014f,0x0000014f,0x0004003d, + 0x00000013,0x000002ec,0x000002eb,0x0003003e,0x000002ea,0x000002ec,0x00060041,0x00000014, + 0x000002ee,0x00000086,0x0000014f,0x000001b6,0x0004003d,0x00000013,0x000002ef,0x000002ee, + 0x0003003e,0x000002ed,0x000002ef,0x00060039,0x00000013,0x000002f0,0x00000023,0x000002ea, + 0x000002ed,0x00060041,0x00000014,0x000002f1,0x00000086,0x0000014f,0x000001b6,0x0003003e, + 0x000002f1,0x000002f0,0x0004003d,0x00000013,0x000002f2,0x000002e2,0x00060041,0x00000014, + 0x000002f3,0x00000086,0x0000014f,0x0000014f,0x0003003e,0x000002f3,0x000002f2,0x00060041, + 0x00000014,0x000002f6,0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x000002f7, + 0x000002f6,0x0003003e,0x000002f5,0x000002f7,0x00060041,0x00000014,0x000002f9,0x00000086, + 0x0000014f,0x000002bd,0x0004003d,0x00000013,0x000002fa,0x000002f9,0x0003003e,0x000002f8, + 0x000002fa,0x00060039,0x00000013,0x000002fb,0x00000018,0x000002f5,0x000002f8,0x0003003e, + 0x000002f4,0x000002fb,0x00060041,0x00000014,0x000002fd,0x00000086,0x0000014f,0x00000194, + 0x0004003d,0x00000013,0x000002fe,0x000002fd,0x0003003e,0x000002fc,0x000002fe,0x00060041, + 0x00000014,0x00000300,0x00000086,0x0000014f,0x000002bd,0x0004003d,0x00000013,0x00000301, + 0x00000300,0x0003003e,0x000002ff,0x00000301,0x00060039,0x00000013,0x00000302,0x00000023, + 0x000002fc,0x000002ff,0x00060041,0x00000014,0x00000303,0x00000086,0x0000014f,0x000002bd, + 0x0003003e,0x00000303,0x00000302,0x0004003d,0x00000013,0x00000304,0x000002f4,0x00060041, + 0x00000014,0x00000305,0x00000086,0x0000014f,0x00000194,0x0003003e,0x00000305,0x00000304, + 0x00060041,0x00000014,0x00000308,0x00000086,0x0000014f,0x0000014f,0x0004003d,0x00000013, + 0x00000309,0x00000308,0x0003003e,0x00000307,0x00000309,0x00060041,0x00000014,0x0000030b, + 0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x0000030c,0x0000030b,0x0003003e, + 0x0000030a,0x0000030c,0x00060039,0x00000013,0x0000030d,0x00000018,0x00000307,0x0000030a, + 0x0003003e,0x00000306,0x0000030d,0x00060041,0x00000014,0x0000030f,0x00000086,0x0000014f, + 0x0000014f,0x0004003d,0x00000013,0x00000310,0x0000030f,0x0003003e,0x0000030e,0x00000310, + 0x00060041,0x00000014,0x00000312,0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013, + 0x00000313,0x00000312,0x0003003e,0x00000311,0x00000313,0x00060039,0x00000013,0x00000314, + 0x00000023,0x0000030e,0x00000311,0x00060041,0x00000014,0x00000315,0x00000086,0x0000014f, + 0x00000194,0x0003003e,0x00000315,0x00000314,0x0004003d,0x00000013,0x00000316,0x00000306, + 0x00060041,0x00000014,0x00000317,0x00000086,0x0000014f,0x0000014f,0x0003003e,0x00000317, + 0x00000316,0x00060041,0x00000014,0x0000031a,0x00000086,0x0000014f,0x000001b6,0x0004003d, + 0x00000013,0x0000031b,0x0000031a,0x0003003e,0x00000319,0x0000031b,0x00060041,0x00000014, + 0x0000031d,0x00000086,0x0000014f,0x000002d0,0x0004003d,0x00000013,0x0000031e,0x0000031d, + 0x0003003e,0x0000031c,0x0000031e,0x00060039,0x00000013,0x0000031f,0x00000018,0x00000319, + 0x0000031c,0x0003003e,0x00000318,0x0000031f,0x00060041,0x00000014,0x00000321,0x00000086, + 0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000322,0x00000321,0x0003003e,0x00000320, + 0x00000322,0x00060041,0x00000014,0x00000324,0x00000086,0x0000014f,0x000002d0,0x0004003d, + 0x00000013,0x00000325,0x00000324,0x0003003e,0x00000323,0x00000325,0x00060039,0x00000013, + 0x00000326,0x00000023,0x00000320,0x00000323,0x00060041,0x00000014,0x00000327,0x00000086, + 0x0000014f,0x000002d0,0x0003003e,0x00000327,0x00000326,0x0004003d,0x00000013,0x00000328, + 0x00000318,0x00060041,0x00000014,0x00000329,0x00000086,0x0000014f,0x000001b6,0x0003003e, + 0x00000329,0x00000328,0x00060041,0x00000014,0x0000032c,0x00000086,0x0000014f,0x00000194, + 0x0004003d,0x00000013,0x0000032d,0x0000032c,0x0003003e,0x0000032b,0x0000032d,0x00060041, + 0x00000014,0x0000032f,0x00000086,0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000330, + 0x0000032f,0x0003003e,0x0000032e,0x00000330,0x00060039,0x00000013,0x00000331,0x00000018, + 0x0000032b,0x0000032e,0x0003003e,0x0000032a,0x00000331,0x00060041,0x00000014,0x00000333, + 0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x00000334,0x00000333,0x0003003e, + 0x00000332,0x00000334,0x00060041,0x00000014,0x00000336,0x00000086,0x0000014f,0x000001b6, + 0x0004003d,0x00000013,0x00000337,0x00000336,0x0003003e,0x00000335,0x00000337,0x00060039, + 0x00000013,0x00000338,0x00000023,0x00000332,0x00000335,0x00060041,0x00000014,0x00000339, + 0x00000086,0x0000014f,0x000001b6,0x0003003e,0x00000339,0x00000338,0x0004003d,0x00000013, + 0x0000033a,0x0000032a,0x00060041,0x00000014,0x0000033b,0x00000086,0x0000014f,0x00000194, + 0x0003003e,0x0000033b,0x0000033a,0x00060041,0x00000014,0x0000033e,0x00000086,0x0000014f, + 0x000002bd,0x0004003d,0x00000013,0x0000033f,0x0000033e,0x0003003e,0x0000033d,0x0000033f, + 0x00060041,0x00000014,0x00000341,0x00000086,0x0000014f,0x000002d0,0x0004003d,0x00000013, + 0x00000342,0x00000341,0x0003003e,0x00000340,0x00000342,0x00060039,0x00000013,0x00000343, + 0x00000018,0x0000033d,0x00000340,0x0003003e,0x0000033c,0x00000343,0x00060041,0x00000014, + 0x00000345,0x00000086,0x0000014f,0x000002bd,0x0004003d,0x00000013,0x00000346,0x00000345, + 0x0003003e,0x00000344,0x00000346,0x00060041,0x00000014,0x00000348,0x00000086,0x0000014f, + 0x000002d0,0x0004003d,0x00000013,0x00000349,0x00000348,0x0003003e,0x00000347,0x00000349, + 0x00060039,0x00000013,0x0000034a,0x00000023,0x00000344,0x00000347,0x00060041,0x00000014, + 0x0000034b,0x00000086,0x0000014f,0x000002d0,0x0003003e,0x0000034b,0x0000034a,0x0004003d, + 0x00000013,0x0000034c,0x0000033c,0x00060041,0x00000014,0x0000034d,0x00000086,0x0000014f, + 0x000002bd,0x0003003e,0x0000034d,0x0000034c,0x00060041,0x00000014,0x00000350,0x00000086, + 0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000351,0x00000350,0x0003003e,0x0000034f, + 0x00000351,0x00060041,0x00000014,0x00000353,0x00000086,0x0000014f,0x000002bd,0x0004003d, + 0x00000013,0x00000354,0x00000353,0x0003003e,0x00000352,0x00000354,0x00060039,0x00000013, + 0x00000355,0x00000018,0x0000034f,0x00000352,0x0003003e,0x0000034e,0x00000355,0x00060041, + 0x00000014,0x00000357,0x00000086,0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000358, + 0x00000357,0x0003003e,0x00000356,0x00000358,0x00060041,0x00000014,0x0000035a,0x00000086, + 0x0000014f,0x000002bd,0x0004003d,0x00000013,0x0000035b,0x0000035a,0x0003003e,0x00000359, + 0x0000035b,0x00060039,0x00000013,0x0000035c,0x00000023,0x00000356,0x00000359,0x00060041, + 0x00000014,0x0000035d,0x00000086,0x0000014f,0x000002bd,0x0003003e,0x0000035d,0x0000035c, + 0x0004003d,0x00000013,0x0000035e,0x0000034e,0x00060041,0x00000014,0x0000035f,0x00000086, + 0x0000014f,0x000001b6,0x0003003e,0x0000035f,0x0000035e,0x000100fd,0x00010038,0x00050036, + 0x00000013,0x0000008d,0x00000000,0x00000089,0x00030037,0x00000049,0x0000008a,0x00030037, + 0x00000084,0x0000008b,0x00030037,0x00000084,0x0000008c,0x000200f8,0x0000008e,0x0004003b, + 0x00000014,0x00000360,0x00000007,0x0004003b,0x0000001b,0x00000362,0x00000007,0x0004003b, + 0x0000001b,0x00000363,0x00000007,0x0004003b,0x00000084,0x00000364,0x00000007,0x0004003b, + 0x00000084,0x00000368,0x00000007,0x0004003b,0x00000014,0x0000036c,0x00000007,0x0004003b, + 0x00000014,0x0000036d,0x00000007,0x0004003b,0x00000014,0x00000370,0x00000007,0x0004003b, + 0x0000001b,0x00000379,0x00000007,0x0004003b,0x00000014,0x00000386,0x00000007,0x0003003e, + 0x00000360,0x00000361,0x0003003e,0x00000362,0x0000014f,0x0003003e,0x00000363,0x0000014f, + 0x0004003d,0x00000083,0x00000365,0x0000008b,0x0003003e,0x00000364,0x00000365,0x00050039, + 0x00000002,0x00000366,0x00000087,0x00000364,0x0004003d,0x00000083,0x00000367,0x00000364, + 0x0003003e,0x0000008b,0x00000367,0x0004003d,0x00000083,0x00000369,0x0000008c,0x0003003e, + 0x00000368,0x00000369,0x00050039,0x00000002,0x0000036a,0x00000087,0x00000368,0x0004003d, + 0x00000083,0x0000036b,0x00000368,0x0003003e,0x0000008c,0x0000036b,0x00060041,0x00000014, + 0x0000036e,0x0000008b,0x0000014f,0x000002d0,0x0004003d,0x00000013,0x0000036f,0x0000036e, + 0x0003003e,0x0000036d,0x0000036f,0x00060041,0x00000014,0x00000371,0x0000008c,0x0000014f, + 0x000002d0,0x0004003d,0x00000013,0x00000372,0x00000371,0x0003003e,0x00000370,0x00000372, + 0x00060039,0x00000013,0x00000373,0x00000018,0x0000036d,0x00000370,0x0003003e,0x0000036c, + 0x00000373,0x0004003d,0x00000013,0x00000374,0x0000036c,0x000500ba,0x0000006e,0x00000376, + 0x00000374,0x00000375,0x000300f7,0x00000378,0x00000000,0x000400fa,0x00000376,0x00000377, + 0x00000378,0x000200f8,0x00000377,0x0003003e,0x00000379,0x0000014f,0x000200f9,0x0000037a, + 0x000200f8,0x0000037a,0x000400f6,0x0000037c,0x0000037d,0x00000000,0x000200f9,0x0000037e, + 0x000200f8,0x0000037e,0x0004003d,0x0000001a,0x0000037f,0x00000379,0x000500b1,0x0000006e, + 0x00000381,0x0000037f,0x00000380,0x0004003d,0x00000013,0x00000382,0x00000360,0x000500b8, + 0x0000006e,0x00000384,0x00000382,0x00000383,0x000500a7,0x0000006e,0x00000385,0x00000381, + 0x00000384,0x000400fa,0x00000385,0x0000037b,0x0000037c,0x000200f8,0x0000037b,0x0004003d, + 0x0000001a,0x00000387,0x00000362,0x00060041,0x00000014,0x00000388,0x0000008b,0x0000014f, + 0x00000387,0x0004003d,0x00000013,0x00000389,0x00000388,0x0004003d,0x0000001a,0x0000038a, + 0x00000363,0x00060041,0x00000014,0x0000038b,0x0000008c,0x0000014f,0x0000038a,0x0004003d, + 0x00000013,0x0000038c,0x0000038b,0x00050083,0x00000013,0x0000038d,0x00000389,0x0000038c, + 0x0003003e,0x00000386,0x0000038d,0x0004003d,0x00000013,0x0000038e,0x00000386,0x0006000c, + 0x00000013,0x0000038f,0x00000001,0x00000004,0x0000038e,0x000500ba,0x0000006e,0x00000391, + 0x0000038f,0x00000390,0x000300f7,0x00000393,0x00000000,0x000400fa,0x00000391,0x00000392, + 0x000003bb,0x000200f8,0x00000392,0x0004003d,0x00000013,0x00000394,0x00000386,0x0006000c, + 0x00000013,0x00000395,0x00000001,0x00000006,0x00000394,0x0004003d,0x0000001a,0x00000396, + 0x00000362,0x00060041,0x00000014,0x00000397,0x0000008b,0x0000014f,0x00000396,0x0004003d, + 0x00000013,0x00000398,0x00000397,0x0004003d,0x0000001a,0x00000399,0x00000363,0x00060041, + 0x00000014,0x0000039a,0x0000008c,0x0000014f,0x00000399,0x0004003d,0x00000013,0x0000039b, + 0x0000039a,0x00060039,0x00000013,0x0000039c,0x0000006c,0x00000398,0x0000039b,0x00050083, + 0x00000013,0x0000039d,0x000001df,0x0000039c,0x00050085,0x00000013,0x0000039e,0x00000395, + 0x0000039d,0x0003003e,0x00000386,0x0000039e,0x0004003d,0x00000013,0x0000039f,0x00000386, + 0x0006000c,0x00000013,0x000003a0,0x00000001,0x00000004,0x0000039f,0x0004003d,0x00000013, + 0x000003a1,0x00000360,0x0006000c,0x00000013,0x000003a2,0x00000001,0x00000004,0x000003a1, + 0x000500b8,0x0000006e,0x000003a3,0x000003a0,0x000003a2,0x0004003d,0x00000013,0x000003a4, + 0x00000386,0x0004003d,0x00000013,0x000003a5,0x00000360,0x000600a9,0x00000013,0x000003a6, + 0x000003a3,0x000003a4,0x000003a5,0x0003003e,0x00000360,0x000003a6,0x0004003d,0x0000001a, + 0x000003a7,0x00000362,0x00060041,0x00000014,0x000003a8,0x0000008b,0x0000014f,0x000003a7, + 0x0004003d,0x00000013,0x000003a9,0x000003a8,0x0004003d,0x0000001a,0x000003aa,0x00000363, + 0x00060041,0x00000014,0x000003ab,0x0000008c,0x0000014f,0x000003aa,0x0004003d,0x00000013, + 0x000003ac,0x000003ab,0x000500b8,0x0000006e,0x000003ad,0x000003a9,0x000003ac,0x000600a9, + 0x0000001a,0x000003ae,0x000003ad,0x00000194,0x0000014f,0x0004003d,0x0000001a,0x000003af, + 0x00000362,0x00050080,0x0000001a,0x000003b0,0x000003af,0x000003ae,0x0003003e,0x00000362, + 0x000003b0,0x0004003d,0x0000001a,0x000003b1,0x00000362,0x00060041,0x00000014,0x000003b2, + 0x0000008b,0x0000014f,0x000003b1,0x0004003d,0x00000013,0x000003b3,0x000003b2,0x0004003d, + 0x0000001a,0x000003b4,0x00000363,0x00060041,0x00000014,0x000003b5,0x0000008c,0x0000014f, + 0x000003b4,0x0004003d,0x00000013,0x000003b6,0x000003b5,0x000500be,0x0000006e,0x000003b7, + 0x000003b3,0x000003b6,0x000600a9,0x0000001a,0x000003b8,0x000003b7,0x00000194,0x0000014f, + 0x0004003d,0x0000001a,0x000003b9,0x00000363,0x00050080,0x0000001a,0x000003ba,0x000003b9, + 0x000003b8,0x0003003e,0x00000363,0x000003ba,0x000200f9,0x00000393,0x000200f8,0x000003bb, + 0x0003003e,0x00000360,0x00000383,0x000200f9,0x00000393,0x000200f8,0x00000393,0x000200f9, + 0x0000037d,0x000200f8,0x0000037d,0x0004003d,0x0000001a,0x000003bc,0x00000379,0x00050080, + 0x0000001a,0x000003bd,0x000003bc,0x00000194,0x0003003e,0x00000379,0x000003bd,0x000200f9, + 0x0000037a,0x000200f8,0x0000037c,0x000200f9,0x00000378,0x000200f8,0x00000378,0x0004003d, + 0x00000013,0x000003be,0x00000360,0x0004003d,0x00000013,0x000003bf,0x00000360,0x000500b8, + 0x0000006e,0x000003c0,0x000003bf,0x00000361,0x000600a9,0x00000013,0x000003c1,0x000003c0, + 0x000001df,0x000001db,0x00050085,0x00000013,0x000003c2,0x000003be,0x000003c1,0x000200fe, + 0x000003c2,0x00010038,0x00050036,0x00000083,0x00000091,0x00000000,0x0000008f,0x00030037, + 0x0000005c,0x00000090,0x000200f8,0x00000092,0x0004003b,0x0000005c,0x000003c5,0x00000007, + 0x0004003b,0x00000049,0x000003cc,0x00000007,0x0004003b,0x0000001b,0x000003d3,0x00000007, + 0x0004003b,0x00000049,0x000003db,0x00000007,0x0004003b,0x00000049,0x000003e5,0x00000007, + 0x0004003b,0x00000049,0x000003e7,0x00000007,0x0004003b,0x000003e8,0x000003e9,0x00000007, + 0x0004003b,0x00000049,0x000003ec,0x00000007,0x0004003b,0x00000084,0x000003ee,0x00000007, + 0x0004003b,0x00000049,0x000003f0,0x00000007,0x0004003b,0x00000014,0x000003f8,0x00000007, + 0x0004003b,0x00000014,0x000003fb,0x00000007,0x0004003b,0x00000014,0x00000400,0x00000007, + 0x0004003b,0x00000014,0x00000403,0x00000007,0x0004003d,0x00000038,0x000003c6,0x00000090, + 0x00040039,0x00000038,0x000003c7,0x0000003a,0x00040039,0x00000032,0x000003c8,0x00000034, + 0x0004006f,0x00000038,0x000003c9,0x000003c8,0x00050088,0x00000038,0x000003ca,0x000003c7, + 0x000003c9,0x00050081,0x00000038,0x000003cb,0x000003c6,0x000003ca,0x0003003e,0x000003c5, + 0x000003cb,0x0004003d,0x00000038,0x000003cd,0x000003c5,0x00040039,0x00000032,0x000003ce, + 0x00000034,0x0004006f,0x00000038,0x000003cf,0x000003ce,0x00050085,0x00000038,0x000003d0, + 0x000003cd,0x000003cf,0x0006000c,0x00000038,0x000003d1,0x00000001,0x00000008,0x000003d0, + 0x0004006e,0x00000032,0x000003d2,0x000003d1,0x0003003e,0x000003cc,0x000003d2,0x0003003e, + 0x000003d3,0x0000014f,0x000200f9,0x000003d4,0x000200f8,0x000003d4,0x000400f6,0x000003d6, + 0x000003d7,0x00000000,0x000200f9,0x000003d8,0x000200f8,0x000003d8,0x0004003d,0x0000001a, + 0x000003d9,0x000003d3,0x000500b1,0x0000006e,0x000003da,0x000003d9,0x00000380,0x000400fa, + 0x000003da,0x000003d5,0x000003d6,0x000200f8,0x000003d5,0x0004003d,0x0000001a,0x000003e3, + 0x000003d3,0x00040039,0x00000032,0x000003e4,0x00000034,0x0004003d,0x00000032,0x000003e6, + 0x000003cc,0x0003003e,0x000003e5,0x000003e6,0x0003003e,0x000003e9,0x000003e2,0x00050041, + 0x00000049,0x000003ea,0x000003e9,0x000003e3,0x0004003d,0x00000032,0x000003eb,0x000003ea, + 0x0003003e,0x000003e7,0x000003eb,0x0003003e,0x000003ec,0x000003e4,0x00070039,0x00000032, + 0x000003ed,0x00000077,0x000003e5,0x000003e7,0x000003ec,0x0003003e,0x000003db,0x000003ed, + 0x0004003d,0x0000001a,0x000003ef,0x000003d3,0x0004003d,0x00000032,0x000003f1,0x000003db, + 0x0003003e,0x000003f0,0x000003f1,0x00050039,0x00000013,0x000003f2,0x0000004c,0x000003f0, + 0x00040039,0x00000013,0x000003f3,0x00000055,0x00050085,0x00000013,0x000003f4,0x000003f2, + 0x000003f3,0x00060041,0x00000014,0x000003f5,0x000003ee,0x0000014f,0x000003ef,0x0003003e, + 0x000003f5,0x000003f4,0x0004003d,0x0000001a,0x000003f6,0x000003d3,0x0004003d,0x0000001a, + 0x000003f7,0x000003d3,0x00060041,0x00000014,0x000003f9,0x000003ee,0x0000014f,0x000003f7, + 0x0004003d,0x00000013,0x000003fa,0x000003f9,0x0003003e,0x000003f8,0x000003fa,0x0003003e, + 0x000003fb,0x000001df,0x00060039,0x00000013,0x000003fc,0x0000002b,0x000003f8,0x000003fb, + 0x00060041,0x00000014,0x000003fd,0x000003ee,0x0000014f,0x000003f6,0x0003003e,0x000003fd, + 0x000003fc,0x0004003d,0x0000001a,0x000003fe,0x000003d3,0x0004003d,0x0000001a,0x000003ff, + 0x000003d3,0x00060041,0x00000014,0x00000401,0x000003ee,0x0000014f,0x000003ff,0x0004003d, + 0x00000013,0x00000402,0x00000401,0x0003003e,0x00000400,0x00000402,0x0003003e,0x00000403, + 0x00000390,0x00060039,0x00000013,0x00000404,0x00000023,0x00000400,0x00000403,0x00060041, + 0x00000014,0x00000405,0x000003ee,0x0000014f,0x000003fe,0x0003003e,0x00000405,0x00000404, + 0x000200f9,0x000003d7,0x000200f8,0x000003d7,0x0004003d,0x0000001a,0x00000406,0x000003d3, + 0x00050080,0x0000001a,0x00000407,0x00000406,0x00000194,0x0003003e,0x000003d3,0x00000407, + 0x000200f9,0x000003d4,0x000200f8,0x000003d6,0x0004003d,0x00000083,0x00000408,0x000003ee, + 0x000200fe,0x00000408,0x00010038,0x00050036,0x00000093,0x00000097,0x00000000,0x00000094, + 0x00030037,0x0000005c,0x00000095,0x00030037,0x0000005c,0x00000096,0x000200f8,0x00000098, + 0x0004003b,0x0000005c,0x0000040b,0x00000007,0x0004003b,0x0000005c,0x00000412,0x00000007, + 0x0004003b,0x00000416,0x00000417,0x00000007,0x0004003b,0x0000005c,0x00000418,0x00000007, + 0x0004003b,0x00000049,0x00000421,0x00000007,0x0004003b,0x0000001b,0x00000428,0x00000007, + 0x0004003b,0x00000049,0x00000430,0x00000007,0x0004003b,0x00000049,0x00000433,0x00000007, + 0x0004003b,0x00000049,0x00000435,0x00000007,0x0004003b,0x000003e8,0x00000436,0x00000007, + 0x0004003b,0x00000049,0x00000439,0x00000007,0x0004003b,0x00000049,0x0000043c,0x00000007, + 0x0004003b,0x00000014,0x00000446,0x00000007,0x0004003b,0x00000014,0x00000449,0x00000007, + 0x0004003b,0x00000014,0x0000044e,0x00000007,0x0004003b,0x00000014,0x00000451,0x00000007, + 0x0004003d,0x00000038,0x0000040c,0x00000095,0x00040039,0x00000038,0x0000040d,0x0000003c, + 0x00040039,0x00000032,0x0000040e,0x00000036,0x0004006f,0x00000038,0x0000040f,0x0000040e, + 0x00050088,0x00000038,0x00000410,0x0000040d,0x0000040f,0x00050081,0x00000038,0x00000411, + 0x0000040c,0x00000410,0x0003003e,0x0000040b,0x00000411,0x0004003d,0x00000038,0x00000413, + 0x0000040b,0x0004003d,0x00000038,0x00000414,0x00000096,0x00050081,0x00000038,0x00000415, + 0x00000413,0x00000414,0x0003003e,0x00000412,0x00000415,0x0004003d,0x00000038,0x00000419, + 0x00000412,0x0003003e,0x00000418,0x00000419,0x00050039,0x0000006e,0x0000041a,0x00000071, + 0x00000418,0x00050041,0x0000041b,0x0000041c,0x00000417,0x00000194,0x0003003e,0x0000041c, + 0x0000041a,0x00050041,0x0000041b,0x0000041d,0x00000417,0x00000194,0x0004003d,0x0000006e, + 0x0000041e,0x0000041d,0x000300f7,0x00000420,0x00000000,0x000400fa,0x0000041e,0x0000041f, + 0x00000420,0x000200f8,0x0000041f,0x0004003d,0x00000038,0x00000422,0x00000412,0x00040039, + 0x00000032,0x00000423,0x00000036,0x0004006f,0x00000038,0x00000424,0x00000423,0x00050085, + 0x00000038,0x00000425,0x00000422,0x00000424,0x0006000c,0x00000038,0x00000426,0x00000001, + 0x00000008,0x00000425,0x0004006e,0x00000032,0x00000427,0x00000426,0x0003003e,0x00000421, + 0x00000427,0x0003003e,0x00000428,0x0000014f,0x000200f9,0x00000429,0x000200f8,0x00000429, + 0x000400f6,0x0000042b,0x0000042c,0x00000000,0x000200f9,0x0000042d,0x000200f8,0x0000042d, + 0x0004003d,0x0000001a,0x0000042e,0x00000428,0x000500b1,0x0000006e,0x0000042f,0x0000042e, + 0x00000380,0x000400fa,0x0000042f,0x0000042a,0x0000042b,0x000200f8,0x0000042a,0x0004003d, + 0x0000001a,0x00000431,0x00000428,0x00040039,0x00000032,0x00000432,0x00000036,0x0004003d, + 0x00000032,0x00000434,0x00000421,0x0003003e,0x00000433,0x00000434,0x0003003e,0x00000436, + 0x000003e2,0x00050041,0x00000049,0x00000437,0x00000436,0x00000431,0x0004003d,0x00000032, + 0x00000438,0x00000437,0x0003003e,0x00000435,0x00000438,0x0003003e,0x00000439,0x00000432, + 0x00070039,0x00000032,0x0000043a,0x00000077,0x00000433,0x00000435,0x00000439,0x0003003e, + 0x00000430,0x0000043a,0x0004003d,0x0000001a,0x0000043b,0x00000428,0x0004003d,0x00000032, + 0x0000043d,0x00000430,0x0003003e,0x0000043c,0x0000043d,0x00050039,0x00000013,0x0000043e, + 0x0000004f,0x0000043c,0x00040039,0x00000013,0x0000043f,0x0000003f,0x00050085,0x00000013, + 0x00000440,0x0000043e,0x0000043f,0x00040039,0x00000013,0x00000441,0x00000055,0x00050085, + 0x00000013,0x00000442,0x00000440,0x00000441,0x00070041,0x00000014,0x00000443,0x00000417, + 0x0000014f,0x0000014f,0x0000043b,0x0003003e,0x00000443,0x00000442,0x0004003d,0x0000001a, + 0x00000444,0x00000428,0x0004003d,0x0000001a,0x00000445,0x00000428,0x00070041,0x00000014, + 0x00000447,0x00000417,0x0000014f,0x0000014f,0x00000445,0x0004003d,0x00000013,0x00000448, + 0x00000447,0x0003003e,0x00000446,0x00000448,0x0003003e,0x00000449,0x000001df,0x00060039, + 0x00000013,0x0000044a,0x0000002b,0x00000446,0x00000449,0x00070041,0x00000014,0x0000044b, + 0x00000417,0x0000014f,0x0000014f,0x00000444,0x0003003e,0x0000044b,0x0000044a,0x0004003d, + 0x0000001a,0x0000044c,0x00000428,0x0004003d,0x0000001a,0x0000044d,0x00000428,0x00070041, + 0x00000014,0x0000044f,0x00000417,0x0000014f,0x0000014f,0x0000044d,0x0004003d,0x00000013, + 0x00000450,0x0000044f,0x0003003e,0x0000044e,0x00000450,0x0003003e,0x00000451,0x00000390, + 0x00060039,0x00000013,0x00000452,0x00000023,0x0000044e,0x00000451,0x00070041,0x00000014, + 0x00000453,0x00000417,0x0000014f,0x0000014f,0x0000044c,0x0003003e,0x00000453,0x00000452, + 0x000200f9,0x0000042c,0x000200f8,0x0000042c,0x0004003d,0x0000001a,0x00000454,0x00000428, + 0x00050080,0x0000001a,0x00000455,0x00000454,0x00000194,0x0003003e,0x00000428,0x00000455, + 0x000200f9,0x00000429,0x000200f8,0x0000042b,0x000200f9,0x00000420,0x000200f8,0x00000420, + 0x0004003d,0x00000093,0x00000456,0x00000417,0x000200fe,0x00000456,0x00010038,0x00050036, + 0x00000013,0x0000009d,0x00000000,0x00000099,0x00030037,0x00000049,0x0000009a,0x00030037, + 0x0000005c,0x0000009b,0x00030037,0x0000005c,0x0000009c,0x000200f8,0x0000009e,0x0004003b, + 0x00000014,0x00000459,0x00000007,0x0004003b,0x00000084,0x0000045a,0x00000007,0x0004003b, + 0x0000005c,0x0000045b,0x00000007,0x0004003b,0x00000416,0x0000045e,0x00000007,0x0004003b, + 0x0000005c,0x0000045f,0x00000007,0x0004003b,0x0000005c,0x00000461,0x00000007,0x0004003b, + 0x00000049,0x00000468,0x00000007,0x0004003b,0x00000084,0x0000046a,0x00000007,0x0004003b, + 0x00000084,0x0000046c,0x00000007,0x0003003e,0x00000459,0x000001db,0x0004003d,0x00000038, + 0x0000045c,0x0000009b,0x0003003e,0x0000045b,0x0000045c,0x00050039,0x00000083,0x0000045d, + 0x00000091,0x0000045b,0x0003003e,0x0000045a,0x0000045d,0x0004003d,0x00000038,0x00000460, + 0x0000009b,0x0003003e,0x0000045f,0x00000460,0x0004003d,0x00000038,0x00000462,0x0000009c, + 0x0003003e,0x00000461,0x00000462,0x00060039,0x00000093,0x00000463,0x00000097,0x0000045f, + 0x00000461,0x0003003e,0x0000045e,0x00000463,0x00050041,0x0000041b,0x00000464,0x0000045e, + 0x00000194,0x0004003d,0x0000006e,0x00000465,0x00000464,0x000300f7,0x00000467,0x00000000, + 0x000400fa,0x00000465,0x00000466,0x00000467,0x000200f8,0x00000466,0x0004003d,0x00000032, + 0x00000469,0x0000009a,0x0003003e,0x00000468,0x00000469,0x0004003d,0x00000083,0x0000046b, + 0x0000045a,0x0003003e,0x0000046a,0x0000046b,0x00050041,0x00000084,0x0000046d,0x0000045e, + 0x0000014f,0x0004003d,0x00000083,0x0000046e,0x0000046d,0x0003003e,0x0000046c,0x0000046e, + 0x00070039,0x00000013,0x0000046f,0x0000008d,0x00000468,0x0000046a,0x0000046c,0x0003003e, + 0x00000459,0x0000046f,0x000200f9,0x00000467,0x000200f8,0x00000467,0x0004003d,0x00000013, + 0x00000470,0x00000459,0x000200fe,0x00000470,0x00010038,0x00050036,0x0000009f,0x000000a3, + 0x00000000,0x000000a0,0x00030037,0x0000005c,0x000000a1,0x00030037,0x00000007,0x000000a2, + 0x000200f8,0x000000a4,0x0004003b,0x00000049,0x00000473,0x00000007,0x0004003b,0x00000049, + 0x00000477,0x00000007,0x0004003b,0x00000049,0x00000478,0x00000007,0x0004003b,0x00000049, + 0x00000479,0x00000007,0x0004003b,0x0000005c,0x0000047b,0x00000007,0x0004003b,0x00000049, + 0x0000047c,0x00000007,0x0004003b,0x0000005c,0x0000047f,0x00000007,0x0004003b,0x00000014, + 0x00000488,0x00000007,0x0004003b,0x00000049,0x00000489,0x00000007,0x0004003b,0x0000005c, + 0x0000048b,0x00000007,0x0004003b,0x0000005c,0x0000048d,0x00000007,0x0004003b,0x000000aa, + 0x00000490,0x00000007,0x0004003b,0x00000014,0x00000496,0x00000007,0x0004003d,0x00000038, + 0x00000474,0x000000a1,0x0004006e,0x00000032,0x00000475,0x00000474,0x00040039,0x00000032, + 0x00000476,0x00000034,0x0003003e,0x00000477,0x00000475,0x0003003e,0x00000478,0x000001d7, + 0x0003003e,0x00000479,0x00000476,0x00070039,0x00000032,0x0000047a,0x00000077,0x00000477, + 0x00000478,0x00000479,0x0003003e,0x00000473,0x0000047a,0x0004003d,0x00000032,0x0000047d, + 0x00000473,0x0003003e,0x0000047c,0x0000047d,0x00050039,0x00000038,0x0000047e,0x00000053, + 0x0000047c,0x0003003e,0x0000047b,0x0000047e,0x0004003d,0x00000032,0x00000480,0x00000473, + 0x0004006f,0x00000038,0x00000481,0x00000480,0x00050050,0x00000038,0x00000483,0x00000482, + 0x00000482,0x00050081,0x00000038,0x00000484,0x00000481,0x00000483,0x00040039,0x00000032, + 0x00000485,0x00000034,0x0004006f,0x00000038,0x00000486,0x00000485,0x00050088,0x00000038, + 0x00000487,0x00000484,0x00000486,0x0003003e,0x0000047f,0x00000487,0x0004003d,0x00000032, + 0x0000048a,0x00000473,0x0003003e,0x00000489,0x0000048a,0x0004003d,0x00000038,0x0000048c, + 0x0000047f,0x0003003e,0x0000048b,0x0000048c,0x0004003d,0x00000038,0x0000048e,0x0000047b, + 0x0003003e,0x0000048d,0x0000048e,0x00070039,0x00000013,0x0000048f,0x0000009d,0x00000489, + 0x0000048b,0x0000048d,0x0003003e,0x00000488,0x0000048f,0x0003003e,0x00000490,0x00000491, + 0x0004003d,0x00000013,0x00000492,0x00000488,0x00050041,0x00000014,0x00000493,0x00000490, + 0x000001c2,0x0003003e,0x00000493,0x00000492,0x0004003d,0x00000013,0x00000494,0x00000488, + 0x000500b7,0x0000006e,0x00000495,0x00000494,0x000001db,0x000300f7,0x00000498,0x00000000, + 0x000400fa,0x00000495,0x00000497,0x0000049b,0x000200f8,0x00000497,0x0004003d,0x00000013, + 0x00000499,0x00000488,0x0006000c,0x00000013,0x0000049a,0x00000001,0x00000006,0x00000499, + 0x0003003e,0x00000496,0x0000049a,0x000200f9,0x00000498,0x000200f8,0x0000049b,0x0003003e, + 0x00000496,0x000001db,0x000200f9,0x00000498,0x000200f8,0x00000498,0x0004003d,0x00000013, + 0x0000049c,0x00000496,0x00050041,0x00000014,0x0000049d,0x00000490,0x00000175,0x0003003e, + 0x0000049d,0x0000049c,0x00050041,0x00000014,0x0000049e,0x00000490,0x0000016e,0x0003003e, + 0x0000049e,0x000001df,0x0004003d,0x0000009f,0x0000049f,0x00000490,0x000200fe,0x0000049f, + 0x00010038,0x00050036,0x0000009f,0x000000a8,0x00000000,0x000000a5,0x00030037,0x00000049, + 0x000000a6,0x00030037,0x00000007,0x000000a7,0x000200f8,0x000000a9,0x0004003b,0x00000049, + 0x000004a2,0x00000007,0x0004003b,0x00000007,0x000004a4,0x00000007,0x0004003d,0x00000032, + 0x000004a3,0x000000a6,0x0003003e,0x000004a2,0x000004a3,0x0003003e,0x000004a4,0x00000081, + 0x00060039,0x00000038,0x000004a5,0x0000005a,0x000004a2,0x000004a4,0x00050051,0x00000013, + 0x000004a6,0x000004a5,0x00000000,0x00050051,0x00000013,0x000004a7,0x000004a5,0x00000001, + 0x00070050,0x0000009f,0x000004a8,0x000004a6,0x000004a7,0x000001db,0x000001db,0x000200fe, + 0x000004a8,0x00010038,0x00050036,0x0000009f,0x000000b0,0x00000000,0x000000ab,0x00030037, + 0x000000aa,0x000000ac,0x00030037,0x000000aa,0x000000ad,0x00030037,0x000000aa,0x000000ae, + 0x00030037,0x000000aa,0x000000af,0x000200f8,0x000000b1,0x0004003d,0x0000009f,0x000004ab, + 0x000000ac,0x0004003d,0x0000009f,0x000004ac,0x000000ad,0x00050081,0x0000009f,0x000004ad, + 0x000004ab,0x000004ac,0x0004003d,0x0000009f,0x000004ae,0x000000ae,0x00050081,0x0000009f, + 0x000004af,0x000004ad,0x000004ae,0x0004003d,0x0000009f,0x000004b0,0x000000af,0x00050081, + 0x0000009f,0x000004b1,0x000004af,0x000004b0,0x0005008e,0x0000009f,0x000004b3,0x000004b1, + 0x000004b2,0x000200fe,0x000004b3,0x00010038,0x00050036,0x00000002,0x000000b7,0x00000000, + 0x000000b2,0x00030037,0x00000049,0x000000b3,0x00030037,0x000000aa,0x000000b4,0x00030037, + 0x00000007,0x000000b5,0x00030037,0x00000007,0x000000b6,0x000200f8,0x000000b8,0x0004003b, + 0x00000049,0x000004ba,0x00000007,0x0004003b,0x0000005c,0x000004bc,0x00000007,0x0004003b, + 0x00000007,0x000004bf,0x00000007,0x0004003d,0x00000006,0x000004b6,0x000000b5,0x000500ae, + 0x0000006e,0x000004b7,0x000004b6,0x000001c2,0x000300f7,0x000004b9,0x00000000,0x000400fa, + 0x000004b7,0x000004b8,0x000004b9,0x000200f8,0x000004b8,0x0004003d,0x00000032,0x000004bb, + 0x000000b3,0x0003003e,0x000004ba,0x000004bb,0x0004003d,0x0000009f,0x000004bd,0x000000b4, + 0x0007004f,0x00000038,0x000004be,0x000004bd,0x000004bd,0x00000000,0x00000001,0x0003003e, + 0x000004bc,0x000004be,0x0004003d,0x00000006,0x000004c0,0x000000b5,0x0003003e,0x000004bf, + 0x000004c0,0x00070039,0x00000002,0x000004c1,0x00000061,0x000004ba,0x000004bc,0x000004bf, + 0x000200f9,0x000004b9,0x000200f8,0x000004b9,0x000100fd,0x00010038,0x00050036,0x0000009f, + 0x000000bc,0x00000000,0x000000b9,0x00030037,0x00000007,0x000000ba,0x00030037,0x00000007, + 0x000000bb,0x000200f8,0x000000bd,0x0004003d,0x00000006,0x000004c7,0x000000ba,0x0004003d, + 0x00000006,0x000004c8,0x000000bb,0x00060041,0x000004c9,0x000004ca,0x000004c6,0x000004c7, + 0x000004c8,0x0004003d,0x00000013,0x000004cb,0x000004ca,0x0004003d,0x00000006,0x000004cd, + 0x000000ba,0x0004003d,0x00000006,0x000004ce,0x000000bb,0x00060041,0x000004c9,0x000004cf, + 0x000004cc,0x000004cd,0x000004ce,0x0004003d,0x00000013,0x000004d0,0x000004cf,0x0004003d, + 0x00000006,0x000004d2,0x000000ba,0x0004003d,0x00000006,0x000004d3,0x000000bb,0x00060041, + 0x000004c9,0x000004d4,0x000004d1,0x000004d2,0x000004d3,0x0004003d,0x00000013,0x000004d5, + 0x000004d4,0x0004003d,0x00000006,0x000004d7,0x000000ba,0x0004003d,0x00000006,0x000004d8, + 0x000000bb,0x00060041,0x000004c9,0x000004d9,0x000004d6,0x000004d7,0x000004d8,0x0004003d, + 0x00000013,0x000004da,0x000004d9,0x00070050,0x0000009f,0x000004db,0x000004cb,0x000004d0, + 0x000004d5,0x000004da,0x000200fe,0x000004db,0x00010038,0x00050036,0x00000002,0x000000c2, + 0x00000000,0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007,0x000000c0, + 0x00030037,0x000000aa,0x000000c1,0x000200f8,0x000000c3,0x0004003d,0x00000006,0x000004de, + 0x000000bf,0x0004003d,0x00000006,0x000004df,0x000000c0,0x00050041,0x00000014,0x000004e0, + 0x000000c1,0x000001c2,0x0004003d,0x00000013,0x000004e1,0x000004e0,0x00060041,0x000004c9, + 0x000004e2,0x000004c6,0x000004de,0x000004df,0x0003003e,0x000004e2,0x000004e1,0x0004003d, + 0x00000006,0x000004e3,0x000000bf,0x0004003d,0x00000006,0x000004e4,0x000000c0,0x00050041, + 0x00000014,0x000004e5,0x000000c1,0x00000175,0x0004003d,0x00000013,0x000004e6,0x000004e5, + 0x00060041,0x000004c9,0x000004e7,0x000004cc,0x000004e3,0x000004e4,0x0003003e,0x000004e7, + 0x000004e6,0x0004003d,0x00000006,0x000004e8,0x000000bf,0x0004003d,0x00000006,0x000004e9, + 0x000000c0,0x00050041,0x00000014,0x000004ea,0x000000c1,0x0000016e,0x0004003d,0x00000013, + 0x000004eb,0x000004ea,0x00060041,0x000004c9,0x000004ec,0x000004d1,0x000004e8,0x000004e9, + 0x0003003e,0x000004ec,0x000004eb,0x0004003d,0x00000006,0x000004ed,0x000000bf,0x0004003d, + 0x00000006,0x000004ee,0x000000c0,0x00050041,0x00000014,0x000004ef,0x000000c1,0x0000016f, + 0x0004003d,0x00000013,0x000004f0,0x000004ef,0x00060041,0x000004c9,0x000004f1,0x000004d6, + 0x000004ed,0x000004ee,0x0003003e,0x000004f1,0x000004f0,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000c4,0x00000000,0x00000003,0x000200f8,0x000000c5,0x000300e1,0x0000016e, + 0x000004f2,0x000400e0,0x0000016e,0x0000016e,0x000004f3,0x000100fd,0x00010038,0x00050036, + 0x0000006e,0x000000ca,0x00000000,0x000000c6,0x00030037,0x00000007,0x000000c7,0x00030037, + 0x00000007,0x000000c8,0x00030037,0x00000007,0x000000c9,0x000200f8,0x000000cb,0x0004003b, + 0x00000007,0x000004f8,0x00000007,0x0004003d,0x00000006,0x000004f4,0x000000c8,0x000500aa, + 0x0000006e,0x000004f5,0x000004f4,0x000001c2,0x000300f7,0x000004f7,0x00000000,0x000400fa, + 0x000004f5,0x000004f6,0x000004f7,0x000200f8,0x000004f6,0x0004003d,0x00000006,0x000004f9, + 0x000000c9,0x0003003e,0x000004f8,0x000004f9,0x00050039,0x00000002,0x000004fa,0x0000007a, + 0x000004f8,0x000200f9,0x000004f7,0x000200f8,0x000004f7,0x00040039,0x00000002,0x000004fb, + 0x000000c4,0x00040039,0x00000006,0x000004fc,0x0000007c,0x0004003d,0x00000006,0x000004fd, + 0x000000c7,0x00050082,0x00000006,0x000004fe,0x000004fd,0x00000175,0x000500ab,0x0000006e, + 0x000004ff,0x000004fc,0x000004fe,0x000200fe,0x000004ff,0x00010038,0x00050036,0x0000009f, + 0x000000d2,0x00000000,0x000000cd,0x00030037,0x000000cc,0x000000ce,0x00030037,0x000000cc, + 0x000000cf,0x00030037,0x000000cc,0x000000d0,0x00030037,0x000000cc,0x000000d1,0x000200f8, + 0x000000d3,0x0004003b,0x000000aa,0x00000502,0x00000007,0x0004003b,0x00000007,0x00000503, + 0x00000007,0x0004003b,0x00000007,0x00000506,0x00000007,0x0004003b,0x000000aa,0x0000050a, + 0x00000007,0x0004003b,0x00000007,0x0000050b,0x00000007,0x0004003b,0x00000007,0x0000050e, + 0x00000007,0x0004003b,0x000000aa,0x00000512,0x00000007,0x0004003b,0x00000007,0x00000513, + 0x00000007,0x0004003b,0x00000007,0x00000516,0x00000007,0x0004003b,0x000000aa,0x0000051a, + 0x00000007,0x0004003b,0x00000007,0x0000051b,0x00000007,0x0004003b,0x00000007,0x0000051e, + 0x00000007,0x0004003b,0x000000aa,0x00000522,0x00000007,0x0004003b,0x000000aa,0x00000524, + 0x00000007,0x0004003b,0x000000aa,0x00000526,0x00000007,0x0004003b,0x000000aa,0x00000528, + 0x00000007,0x00050041,0x00000007,0x00000504,0x000000ce,0x000001c2,0x0004003d,0x00000006, + 0x00000505,0x00000504,0x0003003e,0x00000503,0x00000505,0x00050041,0x00000007,0x00000507, + 0x000000ce,0x00000175,0x0004003d,0x00000006,0x00000508,0x00000507,0x0003003e,0x00000506, + 0x00000508,0x00060039,0x0000009f,0x00000509,0x000000bc,0x00000503,0x00000506,0x0003003e, + 0x00000502,0x00000509,0x00050041,0x00000007,0x0000050c,0x000000cf,0x000001c2,0x0004003d, + 0x00000006,0x0000050d,0x0000050c,0x0003003e,0x0000050b,0x0000050d,0x00050041,0x00000007, + 0x0000050f,0x000000cf,0x00000175,0x0004003d,0x00000006,0x00000510,0x0000050f,0x0003003e, + 0x0000050e,0x00000510,0x00060039,0x0000009f,0x00000511,0x000000bc,0x0000050b,0x0000050e, + 0x0003003e,0x0000050a,0x00000511,0x00050041,0x00000007,0x00000514,0x000000d0,0x000001c2, + 0x0004003d,0x00000006,0x00000515,0x00000514,0x0003003e,0x00000513,0x00000515,0x00050041, + 0x00000007,0x00000517,0x000000d0,0x00000175,0x0004003d,0x00000006,0x00000518,0x00000517, + 0x0003003e,0x00000516,0x00000518,0x00060039,0x0000009f,0x00000519,0x000000bc,0x00000513, + 0x00000516,0x0003003e,0x00000512,0x00000519,0x00050041,0x00000007,0x0000051c,0x000000d1, + 0x000001c2,0x0004003d,0x00000006,0x0000051d,0x0000051c,0x0003003e,0x0000051b,0x0000051d, + 0x00050041,0x00000007,0x0000051f,0x000000d1,0x00000175,0x0004003d,0x00000006,0x00000520, + 0x0000051f,0x0003003e,0x0000051e,0x00000520,0x00060039,0x0000009f,0x00000521,0x000000bc, + 0x0000051b,0x0000051e,0x0003003e,0x0000051a,0x00000521,0x0004003d,0x0000009f,0x00000523, + 0x00000502,0x0003003e,0x00000522,0x00000523,0x0004003d,0x0000009f,0x00000525,0x0000050a, + 0x0003003e,0x00000524,0x00000525,0x0004003d,0x0000009f,0x00000527,0x00000512,0x0003003e, + 0x00000526,0x00000527,0x0004003d,0x0000009f,0x00000529,0x0000051a,0x0003003e,0x00000528, + 0x00000529,0x00080039,0x0000009f,0x0000052a,0x000000b0,0x00000522,0x00000524,0x00000526, + 0x00000528,0x000200fe,0x0000052a,0x00010038,0x00050036,0x0000009f,0x000000da,0x00000000, + 0x000000d4,0x00030037,0x000000cc,0x000000d5,0x00030037,0x000000cc,0x000000d6,0x00030037, + 0x000000cc,0x000000d7,0x00030037,0x000000cc,0x000000d8,0x00030037,0x00000007,0x000000d9, + 0x000200f8,0x000000db,0x0004003b,0x000000aa,0x0000052d,0x00000007,0x0004003b,0x00000049, + 0x00000530,0x00000007,0x0004003b,0x00000007,0x00000531,0x00000007,0x0004003b,0x000000aa, + 0x00000534,0x00000007,0x0004003b,0x00000049,0x00000537,0x00000007,0x0004003b,0x00000007, + 0x00000538,0x00000007,0x0004003b,0x000000aa,0x0000053b,0x00000007,0x0004003b,0x00000049, + 0x0000053e,0x00000007,0x0004003b,0x00000007,0x0000053f,0x00000007,0x0004003b,0x000000aa, + 0x00000542,0x00000007,0x0004003b,0x00000049,0x00000545,0x00000007,0x0004003b,0x00000007, + 0x00000546,0x00000007,0x0004003b,0x000000aa,0x00000549,0x00000007,0x0004003b,0x000000aa, + 0x0000054b,0x00000007,0x0004003b,0x000000aa,0x0000054d,0x00000007,0x0004003b,0x000000aa, + 0x0000054f,0x00000007,0x0004003d,0x0000002d,0x0000052e,0x000000d5,0x0004007c,0x00000032, + 0x0000052f,0x0000052e,0x0003003e,0x00000530,0x0000052f,0x0004003d,0x00000006,0x00000532, + 0x000000d9,0x0003003e,0x00000531,0x00000532,0x00060039,0x0000009f,0x00000533,0x000000a8, + 0x00000530,0x00000531,0x0003003e,0x0000052d,0x00000533,0x0004003d,0x0000002d,0x00000535, + 0x000000d6,0x0004007c,0x00000032,0x00000536,0x00000535,0x0003003e,0x00000537,0x00000536, + 0x0004003d,0x00000006,0x00000539,0x000000d9,0x0003003e,0x00000538,0x00000539,0x00060039, + 0x0000009f,0x0000053a,0x000000a8,0x00000537,0x00000538,0x0003003e,0x00000534,0x0000053a, + 0x0004003d,0x0000002d,0x0000053c,0x000000d7,0x0004007c,0x00000032,0x0000053d,0x0000053c, + 0x0003003e,0x0000053e,0x0000053d,0x0004003d,0x00000006,0x00000540,0x000000d9,0x0003003e, + 0x0000053f,0x00000540,0x00060039,0x0000009f,0x00000541,0x000000a8,0x0000053e,0x0000053f, + 0x0003003e,0x0000053b,0x00000541,0x0004003d,0x0000002d,0x00000543,0x000000d8,0x0004007c, + 0x00000032,0x00000544,0x00000543,0x0003003e,0x00000545,0x00000544,0x0004003d,0x00000006, + 0x00000547,0x000000d9,0x0003003e,0x00000546,0x00000547,0x00060039,0x0000009f,0x00000548, + 0x000000a8,0x00000545,0x00000546,0x0003003e,0x00000542,0x00000548,0x0004003d,0x0000009f, + 0x0000054a,0x0000052d,0x0003003e,0x00000549,0x0000054a,0x0004003d,0x0000009f,0x0000054c, + 0x00000534,0x0003003e,0x0000054b,0x0000054c,0x0004003d,0x0000009f,0x0000054e,0x0000053b, + 0x0003003e,0x0000054d,0x0000054e,0x0004003d,0x0000009f,0x00000550,0x00000542,0x0003003e, + 0x0000054f,0x00000550,0x00080039,0x0000009f,0x00000551,0x000000b0,0x00000549,0x0000054b, + 0x0000054d,0x0000054f,0x000200fe,0x00000551,0x00010038,0x00050036,0x0000009f,0x000000df, + 0x00000000,0x000000dc,0x00030037,0x000000cc,0x000000dd,0x00030037,0x00000007,0x000000de, + 0x000200f8,0x000000e0,0x0004003b,0x000000cc,0x00000560,0x00000007,0x0004003b,0x000000cc, + 0x00000561,0x00000007,0x0004003b,0x000000cc,0x00000562,0x00000007,0x0004003b,0x000000cc, + 0x00000563,0x00000007,0x0004003b,0x00000007,0x00000564,0x00000007,0x0004003d,0x0000002d, + 0x00000554,0x000000dd,0x00050080,0x0000002d,0x00000556,0x00000554,0x00000555,0x0004003d, + 0x0000002d,0x00000557,0x000000dd,0x00050080,0x0000002d,0x00000559,0x00000557,0x00000558, + 0x0004003d,0x0000002d,0x0000055a,0x000000dd,0x00050080,0x0000002d,0x0000055c,0x0000055a, + 0x0000055b,0x0004003d,0x0000002d,0x0000055d,0x000000dd,0x00050080,0x0000002d,0x0000055f, + 0x0000055d,0x0000055e,0x0003003e,0x00000560,0x00000556,0x0003003e,0x00000561,0x00000559, + 0x0003003e,0x00000562,0x0000055c,0x0003003e,0x00000563,0x0000055f,0x0004003d,0x00000006, + 0x00000565,0x000000de,0x0003003e,0x00000564,0x00000565,0x00090039,0x0000009f,0x00000566, + 0x000000da,0x00000560,0x00000561,0x00000562,0x00000563,0x00000564,0x000200fe,0x00000566, + 0x00010038,0x00050036,0x0000009f,0x000000e6,0x00000000,0x000000d4,0x00030037,0x000000cc, + 0x000000e1,0x00030037,0x000000cc,0x000000e2,0x00030037,0x000000cc,0x000000e3,0x00030037, + 0x000000cc,0x000000e4,0x00030037,0x00000007,0x000000e5,0x000200f8,0x000000e7,0x0004003b, + 0x000000aa,0x00000569,0x00000007,0x0004003b,0x0000005c,0x0000056d,0x00000007,0x0004003b, + 0x00000007,0x0000056e,0x00000007,0x0004003b,0x000000aa,0x00000571,0x00000007,0x0004003b, + 0x0000005c,0x00000575,0x00000007,0x0004003b,0x00000007,0x00000576,0x00000007,0x0004003b, + 0x000000aa,0x00000579,0x00000007,0x0004003b,0x0000005c,0x0000057d,0x00000007,0x0004003b, + 0x00000007,0x0000057e,0x00000007,0x0004003b,0x000000aa,0x00000581,0x00000007,0x0004003b, + 0x0000005c,0x00000585,0x00000007,0x0004003b,0x00000007,0x00000586,0x00000007,0x0004003b, + 0x000000aa,0x00000589,0x00000007,0x0004003b,0x000000aa,0x0000058b,0x00000007,0x0004003b, + 0x000000aa,0x0000058d,0x00000007,0x0004003b,0x000000aa,0x0000058f,0x00000007,0x0004003d, + 0x0000002d,0x0000056a,0x000000e1,0x0004007c,0x00000032,0x0000056b,0x0000056a,0x0004006f, + 0x00000038,0x0000056c,0x0000056b,0x0003003e,0x0000056d,0x0000056c,0x0004003d,0x00000006, + 0x0000056f,0x000000e5,0x0003003e,0x0000056e,0x0000056f,0x00060039,0x0000009f,0x00000570, + 0x000000a3,0x0000056d,0x0000056e,0x0003003e,0x00000569,0x00000570,0x0004003d,0x0000002d, + 0x00000572,0x000000e2,0x0004007c,0x00000032,0x00000573,0x00000572,0x0004006f,0x00000038, + 0x00000574,0x00000573,0x0003003e,0x00000575,0x00000574,0x0004003d,0x00000006,0x00000577, + 0x000000e5,0x0003003e,0x00000576,0x00000577,0x00060039,0x0000009f,0x00000578,0x000000a3, + 0x00000575,0x00000576,0x0003003e,0x00000571,0x00000578,0x0004003d,0x0000002d,0x0000057a, + 0x000000e3,0x0004007c,0x00000032,0x0000057b,0x0000057a,0x0004006f,0x00000038,0x0000057c, + 0x0000057b,0x0003003e,0x0000057d,0x0000057c,0x0004003d,0x00000006,0x0000057f,0x000000e5, + 0x0003003e,0x0000057e,0x0000057f,0x00060039,0x0000009f,0x00000580,0x000000a3,0x0000057d, + 0x0000057e,0x0003003e,0x00000579,0x00000580,0x0004003d,0x0000002d,0x00000582,0x000000e4, + 0x0004007c,0x00000032,0x00000583,0x00000582,0x0004006f,0x00000038,0x00000584,0x00000583, + 0x0003003e,0x00000585,0x00000584,0x0004003d,0x00000006,0x00000587,0x000000e5,0x0003003e, + 0x00000586,0x00000587,0x00060039,0x0000009f,0x00000588,0x000000a3,0x00000585,0x00000586, + 0x0003003e,0x00000581,0x00000588,0x0004003d,0x0000009f,0x0000058a,0x00000569,0x0003003e, + 0x00000589,0x0000058a,0x0004003d,0x0000009f,0x0000058c,0x00000571,0x0003003e,0x0000058b, + 0x0000058c,0x0004003d,0x0000009f,0x0000058e,0x00000579,0x0003003e,0x0000058d,0x0000058e, + 0x0004003d,0x0000009f,0x00000590,0x00000581,0x0003003e,0x0000058f,0x00000590,0x00080039, + 0x0000009f,0x00000591,0x000000b0,0x00000589,0x0000058b,0x0000058d,0x0000058f,0x000200fe, + 0x00000591,0x00010038,0x00050036,0x0000009f,0x000000ea,0x00000000,0x000000dc,0x00030037, + 0x000000cc,0x000000e8,0x00030037,0x00000007,0x000000e9,0x000200f8,0x000000eb,0x0004003b, + 0x000000cc,0x0000059c,0x00000007,0x0004003b,0x000000cc,0x0000059d,0x00000007,0x0004003b, + 0x000000cc,0x0000059e,0x00000007,0x0004003b,0x000000cc,0x0000059f,0x00000007,0x0004003b, + 0x00000007,0x000005a0,0x00000007,0x0004003d,0x0000002d,0x00000594,0x000000e8,0x00050080, + 0x0000002d,0x00000595,0x00000594,0x00000555,0x0004003d,0x0000002d,0x00000596,0x000000e8, + 0x00050080,0x0000002d,0x00000597,0x00000596,0x00000558,0x0004003d,0x0000002d,0x00000598, + 0x000000e8,0x00050080,0x0000002d,0x00000599,0x00000598,0x0000055b,0x0004003d,0x0000002d, + 0x0000059a,0x000000e8,0x00050080,0x0000002d,0x0000059b,0x0000059a,0x0000055e,0x0003003e, + 0x0000059c,0x00000595,0x0003003e,0x0000059d,0x00000597,0x0003003e,0x0000059e,0x00000599, + 0x0003003e,0x0000059f,0x0000059b,0x0004003d,0x00000006,0x000005a1,0x000000e9,0x0003003e, + 0x000005a0,0x000005a1,0x00090039,0x0000009f,0x000005a2,0x000000e6,0x0000059c,0x0000059d, + 0x0000059e,0x0000059f,0x000005a0,0x000200fe,0x000005a2,0x00010038,0x00050036,0x00000002, + 0x000000f3,0x00000000,0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007, + 0x000000ee,0x00030037,0x000000cc,0x000000ef,0x00030037,0x00000007,0x000000f0,0x00030037, + 0x00000007,0x000000f1,0x00030037,0x00000007,0x000000f2,0x000200f8,0x000000f4,0x0004003b, + 0x00000049,0x000005a5,0x00000007,0x0004003b,0x00000049,0x000005b3,0x00000007,0x0004003b, + 0x000005c0,0x000005c1,0x00000007,0x0004003b,0x000000cc,0x000005c4,0x00000007,0x0004003b, + 0x00000007,0x000005c5,0x00000007,0x0004003b,0x00000049,0x000005c9,0x00000007,0x0004003b, + 0x000000aa,0x000005cb,0x00000007,0x0004003b,0x00000007,0x000005ce,0x00000007,0x0004003b, + 0x00000007,0x000005cf,0x00000007,0x0004003b,0x000000cc,0x000005ec,0x00000007,0x0004003b, + 0x00000007,0x000005ed,0x00000007,0x0004003b,0x00000049,0x000005f1,0x00000007,0x0004003b, + 0x000000aa,0x000005f3,0x00000007,0x0004003b,0x00000007,0x000005f6,0x00000007,0x0004003b, + 0x00000007,0x000005f7,0x00000007,0x0004003b,0x000000cc,0x00000614,0x00000007,0x0004003b, + 0x00000007,0x00000615,0x00000007,0x0004003b,0x00000049,0x00000619,0x00000007,0x0004003b, + 0x000000aa,0x0000061b,0x00000007,0x0004003b,0x00000007,0x0000061e,0x00000007,0x0004003b, + 0x00000007,0x0000061f,0x00000007,0x0004003b,0x000000cc,0x0000063e,0x00000007,0x0004003b, + 0x00000007,0x0000063f,0x00000007,0x0004003b,0x00000049,0x00000643,0x00000007,0x0004003b, + 0x000000aa,0x00000645,0x00000007,0x0004003b,0x00000007,0x00000648,0x00000007,0x0004003b, + 0x00000007,0x00000649,0x00000007,0x0004003b,0x00000007,0x00000651,0x00000007,0x0004003b, + 0x00000007,0x0000065a,0x00000007,0x0004003b,0x00000007,0x0000065c,0x00000007,0x0004003b, + 0x000000aa,0x0000065e,0x00000007,0x0004003b,0x000000cc,0x00000684,0x00000007,0x0004003b, + 0x000000cc,0x00000685,0x00000007,0x0004003b,0x000000cc,0x00000686,0x00000007,0x0004003b, + 0x000000cc,0x00000687,0x00000007,0x0004003b,0x00000049,0x0000069e,0x00000007,0x0004003b, + 0x000000aa,0x0000069f,0x00000007,0x0004003b,0x00000007,0x000006a2,0x00000007,0x0004003b, + 0x00000007,0x000006a3,0x00000007,0x0004003b,0x00000007,0x000006b1,0x00000007,0x0004003b, + 0x00000007,0x000006b2,0x00000007,0x0004003b,0x000000aa,0x000006b3,0x00000007,0x0004003b, + 0x00000007,0x000006bb,0x00000007,0x0004003b,0x00000007,0x000006bc,0x00000007,0x0004003b, + 0x000000aa,0x000006bd,0x00000007,0x0004003b,0x00000007,0x000006c5,0x00000007,0x0004003b, + 0x00000007,0x000006c6,0x00000007,0x0004003b,0x000000aa,0x000006c7,0x00000007,0x0004003b, + 0x00000007,0x000006cf,0x00000007,0x0004003b,0x00000007,0x000006d0,0x00000007,0x0004003b, + 0x000000aa,0x000006d1,0x00000007,0x0004003d,0x0000002d,0x000005a6,0x000000ef,0x00050050, + 0x0000002d,0x000005a8,0x000005a7,0x000005a7,0x00050084,0x0000002d,0x000005a9,0x000005a6, + 0x000005a8,0x0004007c,0x00000032,0x000005aa,0x000005a9,0x0004003d,0x00000006,0x000005ab, + 0x000000ed,0x00050084,0x00000006,0x000005ac,0x000005ab,0x0000016e,0x0004007c,0x0000001a, + 0x000005ad,0x000005ac,0x0004003d,0x00000006,0x000005ae,0x000000ee,0x00050084,0x00000006, + 0x000005af,0x000005ae,0x0000016e,0x0004007c,0x0000001a,0x000005b0,0x000005af,0x00050050, + 0x00000032,0x000005b1,0x000005ad,0x000005b0,0x00050080,0x00000032,0x000005b2,0x000005aa, + 0x000005b1,0x0003003e,0x000005a5,0x000005b2,0x0004003d,0x0000002d,0x000005b4,0x000000ef, + 0x00050050,0x0000002d,0x000005b6,0x000005b5,0x000005b5,0x00050084,0x0000002d,0x000005b7, + 0x000005b4,0x000005b6,0x0004007c,0x00000032,0x000005b8,0x000005b7,0x0004003d,0x00000006, + 0x000005b9,0x000000ed,0x0004007c,0x0000001a,0x000005ba,0x000005b9,0x0004003d,0x00000006, + 0x000005bb,0x000000ee,0x0004007c,0x0000001a,0x000005bc,0x000005bb,0x00050050,0x00000032, + 0x000005bd,0x000005ba,0x000005bc,0x00050080,0x00000032,0x000005be,0x000005b8,0x000005bd, + 0x0003003e,0x000005b3,0x000005be,0x0004003d,0x00000032,0x000005c2,0x000005a5,0x0004007c, + 0x0000002d,0x000005c3,0x000005c2,0x0003003e,0x000005c4,0x000005c3,0x0004003d,0x00000006, + 0x000005c6,0x000000f2,0x0003003e,0x000005c5,0x000005c6,0x00060039,0x0000009f,0x000005c7, + 0x000000ea,0x000005c4,0x000005c5,0x00050041,0x000000aa,0x000005c8,0x000005c1,0x0000014f, + 0x0003003e,0x000005c8,0x000005c7,0x0004003d,0x00000032,0x000005ca,0x000005b3,0x0003003e, + 0x000005c9,0x000005ca,0x00050041,0x000000aa,0x000005cc,0x000005c1,0x0000014f,0x0004003d, + 0x0000009f,0x000005cd,0x000005cc,0x0003003e,0x000005cb,0x000005cd,0x0003003e,0x000005ce, + 0x000001c2,0x0004003d,0x00000006,0x000005d0,0x000000f2,0x0003003e,0x000005cf,0x000005d0, + 0x00080039,0x00000002,0x000005d1,0x000000b7,0x000005c9,0x000005cb,0x000005ce,0x000005cf, + 0x0004003d,0x0000002d,0x000005d2,0x000000ef,0x00050050,0x0000002d,0x000005d3,0x000005a7, + 0x000005a7,0x00050084,0x0000002d,0x000005d4,0x000005d2,0x000005d3,0x0004007c,0x00000032, + 0x000005d5,0x000005d4,0x0004003d,0x00000006,0x000005d6,0x000000ed,0x00050084,0x00000006, + 0x000005d7,0x000005d6,0x0000016e,0x00050080,0x00000006,0x000005d8,0x000005d7,0x000005b5, + 0x0004007c,0x0000001a,0x000005d9,0x000005d8,0x0004003d,0x00000006,0x000005da,0x000000ee, + 0x00050084,0x00000006,0x000005db,0x000005da,0x0000016e,0x0004007c,0x0000001a,0x000005dc, + 0x000005db,0x00050050,0x00000032,0x000005dd,0x000005d9,0x000005dc,0x00050080,0x00000032, + 0x000005de,0x000005d5,0x000005dd,0x0003003e,0x000005a5,0x000005de,0x0004003d,0x0000002d, + 0x000005df,0x000000ef,0x00050050,0x0000002d,0x000005e0,0x000005b5,0x000005b5,0x00050084, + 0x0000002d,0x000005e1,0x000005df,0x000005e0,0x0004007c,0x00000032,0x000005e2,0x000005e1, + 0x0004003d,0x00000006,0x000005e3,0x000000ed,0x00050080,0x00000006,0x000005e4,0x000005e3, + 0x000004c2,0x0004007c,0x0000001a,0x000005e5,0x000005e4,0x0004003d,0x00000006,0x000005e6, + 0x000000ee,0x0004007c,0x0000001a,0x000005e7,0x000005e6,0x00050050,0x00000032,0x000005e8, + 0x000005e5,0x000005e7,0x00050080,0x00000032,0x000005e9,0x000005e2,0x000005e8,0x0003003e, + 0x000005b3,0x000005e9,0x0004003d,0x00000032,0x000005ea,0x000005a5,0x0004007c,0x0000002d, + 0x000005eb,0x000005ea,0x0003003e,0x000005ec,0x000005eb,0x0004003d,0x00000006,0x000005ee, + 0x000000f2,0x0003003e,0x000005ed,0x000005ee,0x00060039,0x0000009f,0x000005ef,0x000000ea, + 0x000005ec,0x000005ed,0x00050041,0x000000aa,0x000005f0,0x000005c1,0x00000194,0x0003003e, + 0x000005f0,0x000005ef,0x0004003d,0x00000032,0x000005f2,0x000005b3,0x0003003e,0x000005f1, + 0x000005f2,0x00050041,0x000000aa,0x000005f4,0x000005c1,0x00000194,0x0004003d,0x0000009f, + 0x000005f5,0x000005f4,0x0003003e,0x000005f3,0x000005f5,0x0003003e,0x000005f6,0x000001c2, + 0x0004003d,0x00000006,0x000005f8,0x000000f2,0x0003003e,0x000005f7,0x000005f8,0x00080039, + 0x00000002,0x000005f9,0x000000b7,0x000005f1,0x000005f3,0x000005f6,0x000005f7,0x0004003d, + 0x0000002d,0x000005fa,0x000000ef,0x00050050,0x0000002d,0x000005fb,0x000005a7,0x000005a7, + 0x00050084,0x0000002d,0x000005fc,0x000005fa,0x000005fb,0x0004007c,0x00000032,0x000005fd, + 0x000005fc,0x0004003d,0x00000006,0x000005fe,0x000000ed,0x00050084,0x00000006,0x000005ff, + 0x000005fe,0x0000016e,0x0004007c,0x0000001a,0x00000600,0x000005ff,0x0004003d,0x00000006, + 0x00000601,0x000000ee,0x00050084,0x00000006,0x00000602,0x00000601,0x0000016e,0x00050080, + 0x00000006,0x00000603,0x00000602,0x000005b5,0x0004007c,0x0000001a,0x00000604,0x00000603, + 0x00050050,0x00000032,0x00000605,0x00000600,0x00000604,0x00050080,0x00000032,0x00000606, + 0x000005fd,0x00000605,0x0003003e,0x000005a5,0x00000606,0x0004003d,0x0000002d,0x00000607, + 0x000000ef,0x00050050,0x0000002d,0x00000608,0x000005b5,0x000005b5,0x00050084,0x0000002d, + 0x00000609,0x00000607,0x00000608,0x0004007c,0x00000032,0x0000060a,0x00000609,0x0004003d, + 0x00000006,0x0000060b,0x000000ed,0x0004007c,0x0000001a,0x0000060c,0x0000060b,0x0004003d, + 0x00000006,0x0000060d,0x000000ee,0x00050080,0x00000006,0x0000060e,0x0000060d,0x000004c2, + 0x0004007c,0x0000001a,0x0000060f,0x0000060e,0x00050050,0x00000032,0x00000610,0x0000060c, + 0x0000060f,0x00050080,0x00000032,0x00000611,0x0000060a,0x00000610,0x0003003e,0x000005b3, + 0x00000611,0x0004003d,0x00000032,0x00000612,0x000005a5,0x0004007c,0x0000002d,0x00000613, + 0x00000612,0x0003003e,0x00000614,0x00000613,0x0004003d,0x00000006,0x00000616,0x000000f2, + 0x0003003e,0x00000615,0x00000616,0x00060039,0x0000009f,0x00000617,0x000000ea,0x00000614, + 0x00000615,0x00050041,0x000000aa,0x00000618,0x000005c1,0x000001b6,0x0003003e,0x00000618, + 0x00000617,0x0004003d,0x00000032,0x0000061a,0x000005b3,0x0003003e,0x00000619,0x0000061a, + 0x00050041,0x000000aa,0x0000061c,0x000005c1,0x000001b6,0x0004003d,0x0000009f,0x0000061d, + 0x0000061c,0x0003003e,0x0000061b,0x0000061d,0x0003003e,0x0000061e,0x000001c2,0x0004003d, + 0x00000006,0x00000620,0x000000f2,0x0003003e,0x0000061f,0x00000620,0x00080039,0x00000002, + 0x00000621,0x000000b7,0x00000619,0x0000061b,0x0000061e,0x0000061f,0x0004003d,0x0000002d, + 0x00000622,0x000000ef,0x00050050,0x0000002d,0x00000623,0x000005a7,0x000005a7,0x00050084, + 0x0000002d,0x00000624,0x00000622,0x00000623,0x0004007c,0x00000032,0x00000625,0x00000624, + 0x0004003d,0x00000006,0x00000626,0x000000ed,0x00050084,0x00000006,0x00000627,0x00000626, + 0x0000016e,0x00050080,0x00000006,0x00000628,0x00000627,0x000005b5,0x0004007c,0x0000001a, + 0x00000629,0x00000628,0x0004003d,0x00000006,0x0000062a,0x000000ee,0x00050084,0x00000006, + 0x0000062b,0x0000062a,0x0000016e,0x00050080,0x00000006,0x0000062c,0x0000062b,0x000005b5, + 0x0004007c,0x0000001a,0x0000062d,0x0000062c,0x00050050,0x00000032,0x0000062e,0x00000629, + 0x0000062d,0x00050080,0x00000032,0x0000062f,0x00000625,0x0000062e,0x0003003e,0x000005a5, + 0x0000062f,0x0004003d,0x0000002d,0x00000630,0x000000ef,0x00050050,0x0000002d,0x00000631, + 0x000005b5,0x000005b5,0x00050084,0x0000002d,0x00000632,0x00000630,0x00000631,0x0004007c, + 0x00000032,0x00000633,0x00000632,0x0004003d,0x00000006,0x00000634,0x000000ed,0x00050080, + 0x00000006,0x00000635,0x00000634,0x000004c2,0x0004007c,0x0000001a,0x00000636,0x00000635, + 0x0004003d,0x00000006,0x00000637,0x000000ee,0x00050080,0x00000006,0x00000638,0x00000637, + 0x000004c2,0x0004007c,0x0000001a,0x00000639,0x00000638,0x00050050,0x00000032,0x0000063a, + 0x00000636,0x00000639,0x00050080,0x00000032,0x0000063b,0x00000633,0x0000063a,0x0003003e, + 0x000005b3,0x0000063b,0x0004003d,0x00000032,0x0000063c,0x000005a5,0x0004007c,0x0000002d, + 0x0000063d,0x0000063c,0x0003003e,0x0000063e,0x0000063d,0x0004003d,0x00000006,0x00000640, + 0x000000f2,0x0003003e,0x0000063f,0x00000640,0x00060039,0x0000009f,0x00000641,0x000000ea, + 0x0000063e,0x0000063f,0x00050041,0x000000aa,0x00000642,0x000005c1,0x000002bd,0x0003003e, + 0x00000642,0x00000641,0x0004003d,0x00000032,0x00000644,0x000005b3,0x0003003e,0x00000643, + 0x00000644,0x00050041,0x000000aa,0x00000646,0x000005c1,0x000002bd,0x0004003d,0x0000009f, + 0x00000647,0x00000646,0x0003003e,0x00000645,0x00000647,0x0003003e,0x00000648,0x000001c2, + 0x0004003d,0x00000006,0x0000064a,0x000000f2,0x0003003e,0x00000649,0x0000064a,0x00080039, + 0x00000002,0x0000064b,0x000000b7,0x00000643,0x00000645,0x00000648,0x00000649,0x0004003d, + 0x00000006,0x0000064c,0x000000f1,0x000500b2,0x0000006e,0x0000064d,0x0000064c,0x00000175, + 0x000300f7,0x0000064f,0x00000000,0x000400fa,0x0000064d,0x0000064e,0x0000064f,0x000200f8, + 0x0000064e,0x000100fd,0x000200f8,0x0000064f,0x0003003e,0x00000651,0x000001c2,0x000200f9, + 0x00000652,0x000200f8,0x00000652,0x000400f6,0x00000654,0x00000655,0x00000000,0x000200f9, + 0x00000656,0x000200f8,0x00000656,0x0004003d,0x00000006,0x00000657,0x00000651,0x000500b0, + 0x0000006e,0x00000658,0x00000657,0x0000020e,0x000400fa,0x00000658,0x00000653,0x00000654, + 0x000200f8,0x00000653,0x0004003d,0x00000006,0x00000659,0x00000651,0x0004003d,0x00000006, + 0x0000065b,0x000000ed,0x0003003e,0x0000065a,0x0000065b,0x0004003d,0x00000006,0x0000065d, + 0x000000ee,0x0003003e,0x0000065c,0x0000065d,0x00050041,0x000000aa,0x0000065f,0x000005c1, + 0x00000659,0x0004003d,0x0000009f,0x00000660,0x0000065f,0x0003003e,0x0000065e,0x00000660, + 0x00070039,0x00000002,0x00000661,0x000000c2,0x0000065a,0x0000065c,0x0000065e,0x00040039, + 0x00000002,0x00000662,0x000000c4,0x0004003d,0x00000006,0x00000663,0x000000f0,0x000500b0, + 0x0000006e,0x00000664,0x00000663,0x000005a7,0x000300f7,0x00000666,0x00000000,0x000400fa, + 0x00000664,0x00000665,0x00000666,0x000200f8,0x00000665,0x0004003d,0x00000006,0x00000667, + 0x00000651,0x0004003d,0x00000006,0x00000668,0x000000ed,0x00050084,0x00000006,0x00000669, + 0x00000668,0x0000016e,0x00050080,0x00000006,0x0000066a,0x00000669,0x000001c2,0x0004003d, + 0x00000006,0x0000066b,0x000000ee,0x00050084,0x00000006,0x0000066c,0x0000066b,0x0000016e, + 0x00050080,0x00000006,0x0000066d,0x0000066c,0x000001c2,0x00050050,0x0000002d,0x0000066e, + 0x0000066a,0x0000066d,0x0004003d,0x00000006,0x0000066f,0x000000ed,0x00050084,0x00000006, + 0x00000670,0x0000066f,0x0000016e,0x00050080,0x00000006,0x00000671,0x00000670,0x00000175, + 0x0004003d,0x00000006,0x00000672,0x000000ee,0x00050084,0x00000006,0x00000673,0x00000672, + 0x0000016e,0x00050080,0x00000006,0x00000674,0x00000673,0x000001c2,0x00050050,0x0000002d, + 0x00000675,0x00000671,0x00000674,0x0004003d,0x00000006,0x00000676,0x000000ed,0x00050084, + 0x00000006,0x00000677,0x00000676,0x0000016e,0x00050080,0x00000006,0x00000678,0x00000677, + 0x000001c2,0x0004003d,0x00000006,0x00000679,0x000000ee,0x00050084,0x00000006,0x0000067a, + 0x00000679,0x0000016e,0x00050080,0x00000006,0x0000067b,0x0000067a,0x00000175,0x00050050, + 0x0000002d,0x0000067c,0x00000678,0x0000067b,0x0004003d,0x00000006,0x0000067d,0x000000ed, + 0x00050084,0x00000006,0x0000067e,0x0000067d,0x0000016e,0x00050080,0x00000006,0x0000067f, + 0x0000067e,0x00000175,0x0004003d,0x00000006,0x00000680,0x000000ee,0x00050084,0x00000006, + 0x00000681,0x00000680,0x0000016e,0x00050080,0x00000006,0x00000682,0x00000681,0x00000175, + 0x00050050,0x0000002d,0x00000683,0x0000067f,0x00000682,0x0003003e,0x00000684,0x0000066e, + 0x0003003e,0x00000685,0x00000675,0x0003003e,0x00000686,0x0000067c,0x0003003e,0x00000687, + 0x00000683,0x00080039,0x0000009f,0x00000688,0x000000d2,0x00000684,0x00000685,0x00000686, + 0x00000687,0x00050041,0x000000aa,0x00000689,0x000005c1,0x00000667,0x0003003e,0x00000689, + 0x00000688,0x0004003d,0x0000002d,0x0000068a,0x000000ef,0x00050050,0x0000002d,0x0000068b, + 0x000004c2,0x000004c2,0x00050084,0x0000002d,0x0000068c,0x0000068a,0x0000068b,0x0004007c, + 0x00000032,0x0000068d,0x0000068c,0x0004003d,0x00000006,0x0000068e,0x000000ed,0x0004003d, + 0x00000006,0x0000068f,0x00000651,0x00050089,0x00000006,0x00000690,0x0000068f,0x0000016e, + 0x00050084,0x00000006,0x00000692,0x00000690,0x00000691,0x00050080,0x00000006,0x00000693, + 0x0000068e,0x00000692,0x0004007c,0x0000001a,0x00000694,0x00000693,0x0004003d,0x00000006, + 0x00000695,0x000000ee,0x0004003d,0x00000006,0x00000696,0x00000651,0x00050086,0x00000006, + 0x00000697,0x00000696,0x0000016e,0x00050084,0x00000006,0x00000698,0x00000697,0x00000691, + 0x00050080,0x00000006,0x00000699,0x00000695,0x00000698,0x0004007c,0x0000001a,0x0000069a, + 0x00000699,0x00050050,0x00000032,0x0000069b,0x00000694,0x0000069a,0x00050080,0x00000032, + 0x0000069c,0x0000068d,0x0000069b,0x0004003d,0x00000006,0x0000069d,0x00000651,0x0003003e, + 0x0000069e,0x0000069c,0x00050041,0x000000aa,0x000006a0,0x000005c1,0x0000069d,0x0004003d, + 0x0000009f,0x000006a1,0x000006a0,0x0003003e,0x0000069f,0x000006a1,0x0003003e,0x000006a2, + 0x00000175,0x0004003d,0x00000006,0x000006a4,0x000000f2,0x0003003e,0x000006a3,0x000006a4, + 0x00080039,0x00000002,0x000006a5,0x000000b7,0x0000069e,0x0000069f,0x000006a2,0x000006a3, + 0x000200f9,0x00000666,0x000200f8,0x00000666,0x00040039,0x00000002,0x000006a6,0x000000c4, + 0x000200f9,0x00000655,0x000200f8,0x00000655,0x0004003d,0x00000006,0x000006a7,0x00000651, + 0x00050080,0x00000006,0x000006a8,0x000006a7,0x00000194,0x0003003e,0x00000651,0x000006a8, + 0x000200f9,0x00000652,0x000200f8,0x00000654,0x0004003d,0x00000006,0x000006a9,0x000000f0, + 0x000500b0,0x0000006e,0x000006aa,0x000006a9,0x000005a7,0x000300f7,0x000006ac,0x00000000, + 0x000400fa,0x000006aa,0x000006ab,0x000006ac,0x000200f8,0x000006ab,0x0004003d,0x00000006, + 0x000006ad,0x000000ed,0x00050080,0x00000006,0x000006ae,0x000006ad,0x000001c2,0x0004003d, + 0x00000006,0x000006af,0x000000ee,0x00050080,0x00000006,0x000006b0,0x000006af,0x000001c2, + 0x0003003e,0x000006b1,0x000006ae,0x0003003e,0x000006b2,0x000006b0,0x00050041,0x000000aa, + 0x000006b4,0x000005c1,0x0000014f,0x0004003d,0x0000009f,0x000006b5,0x000006b4,0x0003003e, + 0x000006b3,0x000006b5,0x00070039,0x00000002,0x000006b6,0x000000c2,0x000006b1,0x000006b2, + 0x000006b3,0x0004003d,0x00000006,0x000006b7,0x000000ed,0x00050080,0x00000006,0x000006b8, + 0x000006b7,0x00000691,0x0004003d,0x00000006,0x000006b9,0x000000ee,0x00050080,0x00000006, + 0x000006ba,0x000006b9,0x000001c2,0x0003003e,0x000006bb,0x000006b8,0x0003003e,0x000006bc, + 0x000006ba,0x00050041,0x000000aa,0x000006be,0x000005c1,0x00000194,0x0004003d,0x0000009f, + 0x000006bf,0x000006be,0x0003003e,0x000006bd,0x000006bf,0x00070039,0x00000002,0x000006c0, + 0x000000c2,0x000006bb,0x000006bc,0x000006bd,0x0004003d,0x00000006,0x000006c1,0x000000ed, + 0x00050080,0x00000006,0x000006c2,0x000006c1,0x000001c2,0x0004003d,0x00000006,0x000006c3, + 0x000000ee,0x00050080,0x00000006,0x000006c4,0x000006c3,0x00000691,0x0003003e,0x000006c5, + 0x000006c2,0x0003003e,0x000006c6,0x000006c4,0x00050041,0x000000aa,0x000006c8,0x000005c1, + 0x000001b6,0x0004003d,0x0000009f,0x000006c9,0x000006c8,0x0003003e,0x000006c7,0x000006c9, + 0x00070039,0x00000002,0x000006ca,0x000000c2,0x000006c5,0x000006c6,0x000006c7,0x0004003d, + 0x00000006,0x000006cb,0x000000ed,0x00050080,0x00000006,0x000006cc,0x000006cb,0x00000691, + 0x0004003d,0x00000006,0x000006cd,0x000000ee,0x00050080,0x00000006,0x000006ce,0x000006cd, + 0x00000691,0x0003003e,0x000006cf,0x000006cc,0x0003003e,0x000006d0,0x000006ce,0x00050041, + 0x000000aa,0x000006d2,0x000005c1,0x000002bd,0x0004003d,0x0000009f,0x000006d3,0x000006d2, + 0x0003003e,0x000006d1,0x000006d3,0x00070039,0x00000002,0x000006d4,0x000000c2,0x000006cf, + 0x000006d0,0x000006d1,0x000200f9,0x000006ac,0x000200f8,0x000006ac,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000fb,0x00000000,0x000000ec,0x00030037,0x00000007,0x000000f5, + 0x00030037,0x00000007,0x000000f6,0x00030037,0x000000cc,0x000000f7,0x00030037,0x00000007, + 0x000000f8,0x00030037,0x00000007,0x000000f9,0x00030037,0x00000007,0x000000fa,0x000200f8, + 0x000000fc,0x0004003b,0x00000007,0x000006d5,0x00000007,0x0004003b,0x00000007,0x000006d7, + 0x00000007,0x0004003b,0x000000cc,0x000006d9,0x00000007,0x0004003b,0x00000007,0x000006db, + 0x00000007,0x0004003b,0x00000007,0x000006dd,0x00000007,0x0004003b,0x00000007,0x000006df, + 0x00000007,0x0004003d,0x00000006,0x000006d6,0x000000f5,0x0003003e,0x000006d5,0x000006d6, + 0x0004003d,0x00000006,0x000006d8,0x000000f6,0x0003003e,0x000006d7,0x000006d8,0x0004003d, + 0x0000002d,0x000006da,0x000000f7,0x0003003e,0x000006d9,0x000006da,0x0004003d,0x00000006, + 0x000006dc,0x000000f8,0x0003003e,0x000006db,0x000006dc,0x0004003d,0x00000006,0x000006de, + 0x000000f9,0x0003003e,0x000006dd,0x000006de,0x0004003d,0x00000006,0x000006e0,0x000000fa, + 0x0003003e,0x000006df,0x000006e0,0x000a0039,0x00000002,0x000006e1,0x000000f3,0x000006d5, + 0x000006d7,0x000006d9,0x000006db,0x000006dd,0x000006df,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000103,0x00000000,0x000000ec,0x00030037,0x00000007,0x000000fd,0x00030037, + 0x00000007,0x000000fe,0x00030037,0x000000cc,0x000000ff,0x00030037,0x00000007,0x00000100, + 0x00030037,0x00000007,0x00000101,0x00030037,0x00000007,0x00000102,0x000200f8,0x00000104, + 0x0004003b,0x000000aa,0x000006e6,0x00000007,0x0004003b,0x000000cc,0x00000703,0x00000007, + 0x0004003b,0x000000cc,0x00000704,0x00000007,0x0004003b,0x000000cc,0x00000705,0x00000007, + 0x0004003b,0x000000cc,0x00000706,0x00000007,0x0004003b,0x00000049,0x00000712,0x00000007, + 0x0004003b,0x000000aa,0x00000713,0x00000007,0x0004003b,0x00000007,0x00000715,0x00000007, + 0x0004003b,0x00000007,0x00000717,0x00000007,0x0004003b,0x00000007,0x00000721,0x00000007, + 0x0004003b,0x00000007,0x00000722,0x00000007,0x0004003b,0x000000aa,0x00000723,0x00000007, + 0x0004003d,0x00000006,0x000006e2,0x00000100,0x000500b0,0x0000006e,0x000006e3,0x000006e2, + 0x000005a7,0x000300f7,0x000006e5,0x00000000,0x000400fa,0x000006e3,0x000006e4,0x000006e5, + 0x000200f8,0x000006e4,0x0004003d,0x00000006,0x000006e7,0x000000fd,0x00050084,0x00000006, + 0x000006e8,0x000006e7,0x0000016e,0x00050080,0x00000006,0x000006e9,0x000006e8,0x000001c2, + 0x0004003d,0x00000006,0x000006ea,0x000000fe,0x00050084,0x00000006,0x000006eb,0x000006ea, + 0x0000016e,0x00050080,0x00000006,0x000006ec,0x000006eb,0x000001c2,0x00050050,0x0000002d, + 0x000006ed,0x000006e9,0x000006ec,0x0004003d,0x00000006,0x000006ee,0x000000fd,0x00050084, + 0x00000006,0x000006ef,0x000006ee,0x0000016e,0x00050080,0x00000006,0x000006f0,0x000006ef, + 0x00000175,0x0004003d,0x00000006,0x000006f1,0x000000fe,0x00050084,0x00000006,0x000006f2, + 0x000006f1,0x0000016e,0x00050080,0x00000006,0x000006f3,0x000006f2,0x000001c2,0x00050050, + 0x0000002d,0x000006f4,0x000006f0,0x000006f3,0x0004003d,0x00000006,0x000006f5,0x000000fd, + 0x00050084,0x00000006,0x000006f6,0x000006f5,0x0000016e,0x00050080,0x00000006,0x000006f7, + 0x000006f6,0x000001c2,0x0004003d,0x00000006,0x000006f8,0x000000fe,0x00050084,0x00000006, + 0x000006f9,0x000006f8,0x0000016e,0x00050080,0x00000006,0x000006fa,0x000006f9,0x00000175, + 0x00050050,0x0000002d,0x000006fb,0x000006f7,0x000006fa,0x0004003d,0x00000006,0x000006fc, + 0x000000fd,0x00050084,0x00000006,0x000006fd,0x000006fc,0x0000016e,0x00050080,0x00000006, + 0x000006fe,0x000006fd,0x00000175,0x0004003d,0x00000006,0x000006ff,0x000000fe,0x00050084, + 0x00000006,0x00000700,0x000006ff,0x0000016e,0x00050080,0x00000006,0x00000701,0x00000700, + 0x00000175,0x00050050,0x0000002d,0x00000702,0x000006fe,0x00000701,0x0003003e,0x00000703, + 0x000006ed,0x0003003e,0x00000704,0x000006f4,0x0003003e,0x00000705,0x000006fb,0x0003003e, + 0x00000706,0x00000702,0x00080039,0x0000009f,0x00000707,0x000000d2,0x00000703,0x00000704, + 0x00000705,0x00000706,0x0003003e,0x000006e6,0x00000707,0x0004003d,0x0000002d,0x00000708, + 0x000000ff,0x00050050,0x0000002d,0x00000709,0x00000691,0x00000691,0x00050084,0x0000002d, + 0x0000070a,0x00000708,0x00000709,0x0004007c,0x00000032,0x0000070b,0x0000070a,0x0004003d, + 0x00000006,0x0000070c,0x000000fd,0x0004007c,0x0000001a,0x0000070d,0x0000070c,0x0004003d, + 0x00000006,0x0000070e,0x000000fe,0x0004007c,0x0000001a,0x0000070f,0x0000070e,0x00050050, + 0x00000032,0x00000710,0x0000070d,0x0000070f,0x00050080,0x00000032,0x00000711,0x0000070b, + 0x00000710,0x0003003e,0x00000712,0x00000711,0x0004003d,0x0000009f,0x00000714,0x000006e6, + 0x0003003e,0x00000713,0x00000714,0x0004003d,0x00000006,0x00000716,0x00000101,0x0003003e, + 0x00000715,0x00000716,0x0004003d,0x00000006,0x00000718,0x00000102,0x0003003e,0x00000717, + 0x00000718,0x00080039,0x00000002,0x00000719,0x000000b7,0x00000712,0x00000713,0x00000715, + 0x00000717,0x0004003d,0x00000006,0x0000071a,0x000000fd,0x00050084,0x00000006,0x0000071b, + 0x0000071a,0x0000016e,0x0004003d,0x00000006,0x0000071c,0x000000fe,0x00050089,0x00000006, + 0x0000071d,0x0000071c,0x0000016e,0x00050080,0x00000006,0x0000071e,0x0000071b,0x0000071d, + 0x0004003d,0x00000006,0x0000071f,0x000000fe,0x00050084,0x00000006,0x00000720,0x0000071f, + 0x0000016e,0x0003003e,0x00000721,0x0000071e,0x0003003e,0x00000722,0x00000720,0x0004003d, + 0x0000009f,0x00000724,0x000006e6,0x0003003e,0x00000723,0x00000724,0x00070039,0x00000002, + 0x00000725,0x000000c2,0x00000721,0x00000722,0x00000723,0x000200f9,0x000006e5,0x000200f8, + 0x000006e5,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000010b,0x00000000,0x000000ec, + 0x00030037,0x00000007,0x00000105,0x00030037,0x00000007,0x00000106,0x00030037,0x000000cc, + 0x00000107,0x00030037,0x00000007,0x00000108,0x00030037,0x00000007,0x00000109,0x00030037, + 0x00000007,0x0000010a,0x000200f8,0x0000010c,0x0004003b,0x000000aa,0x0000072a,0x00000007, + 0x0004003b,0x000000cc,0x0000074b,0x00000007,0x0004003b,0x000000cc,0x0000074c,0x00000007, + 0x0004003b,0x000000cc,0x0000074d,0x00000007,0x0004003b,0x000000cc,0x0000074e,0x00000007, + 0x0004003b,0x00000049,0x0000075a,0x00000007,0x0004003b,0x000000aa,0x0000075b,0x00000007, + 0x0004003b,0x00000007,0x0000075d,0x00000007,0x0004003b,0x00000007,0x0000075f,0x00000007, + 0x0004003b,0x00000007,0x00000768,0x00000007,0x0004003b,0x00000007,0x00000769,0x00000007, + 0x0004003b,0x000000aa,0x0000076a,0x00000007,0x0004003d,0x00000006,0x00000726,0x00000108, + 0x000500b0,0x0000006e,0x00000727,0x00000726,0x000004c2,0x000300f7,0x00000729,0x00000000, + 0x000400fa,0x00000727,0x00000728,0x00000729,0x000200f8,0x00000728,0x0004003d,0x00000006, + 0x0000072b,0x00000105,0x00050084,0x00000006,0x0000072c,0x0000072b,0x0000020e,0x00050080, + 0x00000006,0x0000072d,0x0000072c,0x000001c2,0x00050080,0x00000006,0x0000072e,0x0000072d, + 0x000001c2,0x0004003d,0x00000006,0x0000072f,0x00000106,0x00050084,0x00000006,0x00000730, + 0x0000072f,0x0000020e,0x00050080,0x00000006,0x00000731,0x00000730,0x000001c2,0x00050050, + 0x0000002d,0x00000732,0x0000072e,0x00000731,0x0004003d,0x00000006,0x00000733,0x00000105, + 0x00050084,0x00000006,0x00000734,0x00000733,0x0000020e,0x00050080,0x00000006,0x00000735, + 0x00000734,0x0000016e,0x00050080,0x00000006,0x00000736,0x00000735,0x000001c2,0x0004003d, + 0x00000006,0x00000737,0x00000106,0x00050084,0x00000006,0x00000738,0x00000737,0x0000020e, + 0x00050080,0x00000006,0x00000739,0x00000738,0x000001c2,0x00050050,0x0000002d,0x0000073a, + 0x00000736,0x00000739,0x0004003d,0x00000006,0x0000073b,0x00000105,0x00050084,0x00000006, + 0x0000073c,0x0000073b,0x0000020e,0x00050080,0x00000006,0x0000073d,0x0000073c,0x000001c2, + 0x00050080,0x00000006,0x0000073e,0x0000073d,0x00000175,0x0004003d,0x00000006,0x0000073f, + 0x00000106,0x00050084,0x00000006,0x00000740,0x0000073f,0x0000020e,0x00050080,0x00000006, + 0x00000741,0x00000740,0x0000016e,0x00050050,0x0000002d,0x00000742,0x0000073e,0x00000741, + 0x0004003d,0x00000006,0x00000743,0x00000105,0x00050084,0x00000006,0x00000744,0x00000743, + 0x0000020e,0x00050080,0x00000006,0x00000745,0x00000744,0x0000016e,0x00050080,0x00000006, + 0x00000746,0x00000745,0x00000175,0x0004003d,0x00000006,0x00000747,0x00000106,0x00050084, + 0x00000006,0x00000748,0x00000747,0x0000020e,0x00050080,0x00000006,0x00000749,0x00000748, + 0x0000016e,0x00050050,0x0000002d,0x0000074a,0x00000746,0x00000749,0x0003003e,0x0000074b, + 0x00000732,0x0003003e,0x0000074c,0x0000073a,0x0003003e,0x0000074d,0x00000742,0x0003003e, + 0x0000074e,0x0000074a,0x00080039,0x0000009f,0x0000074f,0x000000d2,0x0000074b,0x0000074c, + 0x0000074d,0x0000074e,0x0003003e,0x0000072a,0x0000074f,0x0004003d,0x0000002d,0x00000750, + 0x00000107,0x00050050,0x0000002d,0x00000751,0x0000020e,0x0000020e,0x00050084,0x0000002d, + 0x00000752,0x00000750,0x00000751,0x0004007c,0x00000032,0x00000753,0x00000752,0x0004003d, + 0x00000006,0x00000754,0x00000105,0x0004007c,0x0000001a,0x00000755,0x00000754,0x0004003d, + 0x00000006,0x00000756,0x00000106,0x0004007c,0x0000001a,0x00000757,0x00000756,0x00050050, + 0x00000032,0x00000758,0x00000755,0x00000757,0x00050080,0x00000032,0x00000759,0x00000753, + 0x00000758,0x0003003e,0x0000075a,0x00000759,0x0004003d,0x0000009f,0x0000075c,0x0000072a, + 0x0003003e,0x0000075b,0x0000075c,0x0004003d,0x00000006,0x0000075e,0x00000109,0x0003003e, + 0x0000075d,0x0000075e,0x0004003d,0x00000006,0x00000760,0x0000010a,0x0003003e,0x0000075f, + 0x00000760,0x00080039,0x00000002,0x00000761,0x000000b7,0x0000075a,0x0000075b,0x0000075d, + 0x0000075f,0x0004003d,0x00000006,0x00000762,0x00000105,0x00050084,0x00000006,0x00000763, + 0x00000762,0x0000020e,0x0004003d,0x00000006,0x00000764,0x00000106,0x00050080,0x00000006, + 0x00000765,0x00000763,0x00000764,0x0004003d,0x00000006,0x00000766,0x00000106,0x00050084, + 0x00000006,0x00000767,0x00000766,0x0000020e,0x0003003e,0x00000768,0x00000765,0x0003003e, + 0x00000769,0x00000767,0x0004003d,0x0000009f,0x0000076b,0x0000072a,0x0003003e,0x0000076a, + 0x0000076b,0x00070039,0x00000002,0x0000076c,0x000000c2,0x00000768,0x00000769,0x0000076a, + 0x000200f9,0x00000729,0x000200f8,0x00000729,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000113,0x00000000,0x000000ec,0x00030037,0x00000007,0x0000010d,0x00030037,0x00000007, + 0x0000010e,0x00030037,0x000000cc,0x0000010f,0x00030037,0x00000007,0x00000110,0x00030037, + 0x00000007,0x00000111,0x00030037,0x00000007,0x00000112,0x000200f8,0x00000114,0x0004003b, + 0x000000aa,0x00000771,0x00000007,0x0004003b,0x000000cc,0x0000079e,0x00000007,0x0004003b, + 0x000000cc,0x0000079f,0x00000007,0x0004003b,0x000000cc,0x000007a0,0x00000007,0x0004003b, + 0x000000cc,0x000007a1,0x00000007,0x0004003b,0x00000049,0x000007ad,0x00000007,0x0004003b, + 0x000000aa,0x000007ae,0x00000007,0x0004003b,0x00000007,0x000007b0,0x00000007,0x0004003b, + 0x00000007,0x000007b2,0x00000007,0x0004003b,0x00000007,0x000007b9,0x00000007,0x0004003b, + 0x00000007,0x000007ba,0x00000007,0x0004003b,0x000000aa,0x000007bb,0x00000007,0x0004003d, + 0x00000006,0x0000076d,0x00000110,0x000500b0,0x0000006e,0x0000076e,0x0000076d,0x0000020e, + 0x000300f7,0x00000770,0x00000000,0x000400fa,0x0000076e,0x0000076f,0x00000770,0x000200f8, + 0x0000076f,0x0004003d,0x00000006,0x00000772,0x0000010d,0x00050084,0x00000006,0x00000773, + 0x00000772,0x00000691,0x00050080,0x00000006,0x00000774,0x00000773,0x000001c2,0x00050080, + 0x00000006,0x00000775,0x00000774,0x000001c2,0x0004003d,0x00000006,0x00000776,0x0000010e, + 0x00050084,0x00000006,0x00000777,0x00000776,0x0000016e,0x00050080,0x00000006,0x00000778, + 0x00000775,0x00000777,0x0004003d,0x00000006,0x00000779,0x0000010e,0x00050084,0x00000006, + 0x0000077a,0x00000779,0x00000691,0x00050080,0x00000006,0x0000077b,0x0000077a,0x000001c2, + 0x00050050,0x0000002d,0x0000077c,0x00000778,0x0000077b,0x0004003d,0x00000006,0x0000077d, + 0x0000010d,0x00050084,0x00000006,0x0000077e,0x0000077d,0x00000691,0x00050080,0x00000006, + 0x0000077f,0x0000077e,0x0000020e,0x00050080,0x00000006,0x00000780,0x0000077f,0x000001c2, + 0x0004003d,0x00000006,0x00000781,0x0000010e,0x00050084,0x00000006,0x00000782,0x00000781, + 0x0000016e,0x00050080,0x00000006,0x00000783,0x00000780,0x00000782,0x0004003d,0x00000006, + 0x00000784,0x0000010e,0x00050084,0x00000006,0x00000785,0x00000784,0x00000691,0x00050080, + 0x00000006,0x00000786,0x00000785,0x000001c2,0x00050050,0x0000002d,0x00000787,0x00000783, + 0x00000786,0x0004003d,0x00000006,0x00000788,0x0000010d,0x00050084,0x00000006,0x00000789, + 0x00000788,0x00000691,0x00050080,0x00000006,0x0000078a,0x00000789,0x000001c2,0x00050080, + 0x00000006,0x0000078b,0x0000078a,0x00000175,0x0004003d,0x00000006,0x0000078c,0x0000010e, + 0x00050084,0x00000006,0x0000078d,0x0000078c,0x0000016e,0x00050080,0x00000006,0x0000078e, + 0x0000078b,0x0000078d,0x0004003d,0x00000006,0x0000078f,0x0000010e,0x00050084,0x00000006, + 0x00000790,0x0000078f,0x00000691,0x00050080,0x00000006,0x00000791,0x00000790,0x0000020e, + 0x00050050,0x0000002d,0x00000792,0x0000078e,0x00000791,0x0004003d,0x00000006,0x00000793, + 0x0000010d,0x00050084,0x00000006,0x00000794,0x00000793,0x00000691,0x00050080,0x00000006, + 0x00000795,0x00000794,0x0000020e,0x00050080,0x00000006,0x00000796,0x00000795,0x00000175, + 0x0004003d,0x00000006,0x00000797,0x0000010e,0x00050084,0x00000006,0x00000798,0x00000797, + 0x0000016e,0x00050080,0x00000006,0x00000799,0x00000796,0x00000798,0x0004003d,0x00000006, + 0x0000079a,0x0000010e,0x00050084,0x00000006,0x0000079b,0x0000079a,0x00000691,0x00050080, + 0x00000006,0x0000079c,0x0000079b,0x0000020e,0x00050050,0x0000002d,0x0000079d,0x00000799, + 0x0000079c,0x0003003e,0x0000079e,0x0000077c,0x0003003e,0x0000079f,0x00000787,0x0003003e, + 0x000007a0,0x00000792,0x0003003e,0x000007a1,0x0000079d,0x00080039,0x0000009f,0x000007a2, + 0x000000d2,0x0000079e,0x0000079f,0x000007a0,0x000007a1,0x0003003e,0x00000771,0x000007a2, + 0x0004003d,0x0000002d,0x000007a3,0x0000010f,0x00050050,0x0000002d,0x000007a4,0x0000016e, + 0x0000016e,0x00050084,0x0000002d,0x000007a5,0x000007a3,0x000007a4,0x0004007c,0x00000032, + 0x000007a6,0x000007a5,0x0004003d,0x00000006,0x000007a7,0x0000010d,0x0004007c,0x0000001a, + 0x000007a8,0x000007a7,0x0004003d,0x00000006,0x000007a9,0x0000010e,0x0004007c,0x0000001a, + 0x000007aa,0x000007a9,0x00050050,0x00000032,0x000007ab,0x000007a8,0x000007aa,0x00050080, + 0x00000032,0x000007ac,0x000007a6,0x000007ab,0x0003003e,0x000007ad,0x000007ac,0x0004003d, + 0x0000009f,0x000007af,0x00000771,0x0003003e,0x000007ae,0x000007af,0x0004003d,0x00000006, + 0x000007b1,0x00000111,0x0003003e,0x000007b0,0x000007b1,0x0004003d,0x00000006,0x000007b3, + 0x00000112,0x0003003e,0x000007b2,0x000007b3,0x00080039,0x00000002,0x000007b4,0x000000b7, + 0x000007ad,0x000007ae,0x000007b0,0x000007b2,0x0004003d,0x00000006,0x000007b5,0x0000010d, + 0x0004003d,0x00000006,0x000007b6,0x0000010e,0x00050084,0x00000006,0x000007b7,0x000007b6, + 0x0000016e,0x00050080,0x00000006,0x000007b8,0x000007b5,0x000007b7,0x0003003e,0x000007b9, + 0x000007b8,0x0003003e,0x000007ba,0x000001c2,0x0004003d,0x0000009f,0x000007bc,0x00000771, + 0x0003003e,0x000007bb,0x000007bc,0x00070039,0x00000002,0x000007bd,0x000000c2,0x000007b9, + 0x000007ba,0x000007bb,0x000200f9,0x00000770,0x000200f8,0x00000770,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000011a,0x00000000,0x00000115,0x00030037,0x000000cc,0x00000116, + 0x00030037,0x00000007,0x00000117,0x00030037,0x00000007,0x00000118,0x00030037,0x00000007, + 0x00000119,0x000200f8,0x0000011b,0x0004003b,0x000000aa,0x000007c2,0x00000007,0x0004003b, + 0x000000cc,0x000007c5,0x00000007,0x0004003b,0x000000cc,0x000007c6,0x00000007,0x0004003b, + 0x000000cc,0x000007c7,0x00000007,0x0004003b,0x000000cc,0x000007c8,0x00000007,0x0004003b, + 0x00000049,0x000007cc,0x00000007,0x0004003b,0x000000aa,0x000007cd,0x00000007,0x0004003b, + 0x00000007,0x000007cf,0x00000007,0x0004003b,0x00000007,0x000007d1,0x00000007,0x0004003d, + 0x00000006,0x000007be,0x00000117,0x000500b0,0x0000006e,0x000007bf,0x000007be,0x00000175, + 0x000300f7,0x000007c1,0x00000000,0x000400fa,0x000007bf,0x000007c0,0x000007c1,0x000200f8, + 0x000007c0,0x0003003e,0x000007c5,0x00000555,0x0003003e,0x000007c6,0x0000055b,0x0003003e, + 0x000007c7,0x000007c3,0x0003003e,0x000007c8,0x000007c4,0x00080039,0x0000009f,0x000007c9, + 0x000000d2,0x000007c5,0x000007c6,0x000007c7,0x000007c8,0x0003003e,0x000007c2,0x000007c9, + 0x0004003d,0x0000002d,0x000007ca,0x00000116,0x0004007c,0x00000032,0x000007cb,0x000007ca, + 0x0003003e,0x000007cc,0x000007cb,0x0004003d,0x0000009f,0x000007ce,0x000007c2,0x0003003e, + 0x000007cd,0x000007ce,0x0004003d,0x00000006,0x000007d0,0x00000118,0x0003003e,0x000007cf, + 0x000007d0,0x0004003d,0x00000006,0x000007d2,0x00000119,0x0003003e,0x000007d1,0x000007d2, + 0x00080039,0x00000002,0x000007d3,0x000000b7,0x000007cc,0x000007cd,0x000007cf,0x000007d1, + 0x000200f9,0x000007c1,0x000200f8,0x000007c1,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000121,0x00000000,0x0000011c,0x00030037,0x00000007,0x0000011d,0x00030037,0x00000007, + 0x0000011e,0x00030037,0x00000007,0x0000011f,0x00030037,0x00000007,0x00000120,0x000200f8, + 0x00000122,0x0004003b,0x00000049,0x000007d4,0x00000007,0x0004003b,0x00000049,0x000007de, + 0x00000007,0x0004003b,0x000000aa,0x000007e8,0x00000007,0x0004003b,0x000000cc,0x000007eb, + 0x00000007,0x0004003b,0x00000007,0x000007ec,0x00000007,0x0004003b,0x00000049,0x000007f0, + 0x00000007,0x0004003b,0x000000aa,0x000007f2,0x00000007,0x0004003b,0x00000007,0x000007f4, + 0x00000007,0x0004003b,0x00000007,0x000007f5,0x00000007,0x0004003b,0x000000aa,0x0000080a, + 0x00000007,0x0004003b,0x000000cc,0x0000080d,0x00000007,0x0004003b,0x00000007,0x0000080e, + 0x00000007,0x0004003b,0x00000049,0x00000811,0x00000007,0x0004003b,0x000000aa,0x00000813, + 0x00000007,0x0004003b,0x00000007,0x00000815,0x00000007,0x0004003b,0x00000007,0x00000816, + 0x00000007,0x0004003b,0x000000aa,0x0000082b,0x00000007,0x0004003b,0x000000cc,0x0000082e, + 0x00000007,0x0004003b,0x00000007,0x0000082f,0x00000007,0x0004003b,0x00000049,0x00000832, + 0x00000007,0x0004003b,0x000000aa,0x00000834,0x00000007,0x0004003b,0x00000007,0x00000836, + 0x00000007,0x0004003b,0x00000007,0x00000837,0x00000007,0x0004003b,0x000000aa,0x0000084c, + 0x00000007,0x0004003b,0x000000cc,0x0000084f,0x00000007,0x0004003b,0x00000007,0x00000850, + 0x00000007,0x0004003b,0x00000049,0x00000853,0x00000007,0x0004003b,0x000000aa,0x00000855, + 0x00000007,0x0004003b,0x00000007,0x00000857,0x00000007,0x0004003b,0x00000007,0x00000858, + 0x00000007,0x0004003b,0x000000aa,0x00000861,0x00000007,0x0004003b,0x000000aa,0x00000862, + 0x00000007,0x0004003b,0x000000aa,0x00000864,0x00000007,0x0004003b,0x000000aa,0x00000866, + 0x00000007,0x0004003b,0x000000aa,0x00000868,0x00000007,0x0004003b,0x00000049,0x00000870, + 0x00000007,0x0004003b,0x000000aa,0x00000871,0x00000007,0x0004003b,0x00000007,0x00000873, + 0x00000007,0x0004003b,0x00000007,0x00000874,0x00000007,0x0004003b,0x00000007,0x00000877, + 0x00000007,0x0004003b,0x00000007,0x00000879,0x00000007,0x0004003b,0x000000aa,0x0000087b, + 0x00000007,0x0004003d,0x00000006,0x000007d5,0x0000011d,0x00050084,0x00000006,0x000007d6, + 0x000007d5,0x0000020e,0x00050080,0x00000006,0x000007d7,0x000007d6,0x000001c2,0x0004007c, + 0x0000001a,0x000007d8,0x000007d7,0x0004003d,0x00000006,0x000007d9,0x0000011e,0x00050084, + 0x00000006,0x000007da,0x000007d9,0x0000020e,0x00050080,0x00000006,0x000007db,0x000007da, + 0x000001c2,0x0004007c,0x0000001a,0x000007dc,0x000007db,0x00050050,0x00000032,0x000007dd, + 0x000007d8,0x000007dc,0x0003003e,0x000007d4,0x000007dd,0x0004003d,0x00000006,0x000007df, + 0x0000011d,0x00050084,0x00000006,0x000007e0,0x000007df,0x0000016e,0x00050080,0x00000006, + 0x000007e1,0x000007e0,0x000001c2,0x0004007c,0x0000001a,0x000007e2,0x000007e1,0x0004003d, + 0x00000006,0x000007e3,0x0000011e,0x00050084,0x00000006,0x000007e4,0x000007e3,0x0000016e, + 0x00050080,0x00000006,0x000007e5,0x000007e4,0x000001c2,0x0004007c,0x0000001a,0x000007e6, + 0x000007e5,0x00050050,0x00000032,0x000007e7,0x000007e2,0x000007e6,0x0003003e,0x000007de, + 0x000007e7,0x0004003d,0x00000032,0x000007e9,0x000007d4,0x0004007c,0x0000002d,0x000007ea, + 0x000007e9,0x0003003e,0x000007eb,0x000007ea,0x0004003d,0x00000006,0x000007ed,0x00000120, + 0x0003003e,0x000007ec,0x000007ed,0x00060039,0x0000009f,0x000007ee,0x000000df,0x000007eb, + 0x000007ec,0x0003003e,0x000007e8,0x000007ee,0x0004003d,0x00000032,0x000007f1,0x000007de, + 0x0003003e,0x000007f0,0x000007f1,0x0004003d,0x0000009f,0x000007f3,0x000007e8,0x0003003e, + 0x000007f2,0x000007f3,0x0003003e,0x000007f4,0x000007ef,0x0004003d,0x00000006,0x000007f6, + 0x00000120,0x0003003e,0x000007f5,0x000007f6,0x00080039,0x00000002,0x000007f7,0x000000b7, + 0x000007f0,0x000007f2,0x000007f4,0x000007f5,0x0004003d,0x00000006,0x000007f8,0x0000011d, + 0x00050084,0x00000006,0x000007f9,0x000007f8,0x0000020e,0x00050080,0x00000006,0x000007fa, + 0x000007f9,0x0000016e,0x0004007c,0x0000001a,0x000007fb,0x000007fa,0x0004003d,0x00000006, + 0x000007fc,0x0000011e,0x00050084,0x00000006,0x000007fd,0x000007fc,0x0000020e,0x00050080, + 0x00000006,0x000007fe,0x000007fd,0x000001c2,0x0004007c,0x0000001a,0x000007ff,0x000007fe, + 0x00050050,0x00000032,0x00000800,0x000007fb,0x000007ff,0x0003003e,0x000007d4,0x00000800, + 0x0004003d,0x00000006,0x00000801,0x0000011d,0x00050084,0x00000006,0x00000802,0x00000801, + 0x0000016e,0x00050080,0x00000006,0x00000803,0x00000802,0x00000175,0x0004007c,0x0000001a, + 0x00000804,0x00000803,0x0004003d,0x00000006,0x00000805,0x0000011e,0x00050084,0x00000006, + 0x00000806,0x00000805,0x0000016e,0x00050080,0x00000006,0x00000807,0x00000806,0x000001c2, + 0x0004007c,0x0000001a,0x00000808,0x00000807,0x00050050,0x00000032,0x00000809,0x00000804, + 0x00000808,0x0003003e,0x000007de,0x00000809,0x0004003d,0x00000032,0x0000080b,0x000007d4, + 0x0004007c,0x0000002d,0x0000080c,0x0000080b,0x0003003e,0x0000080d,0x0000080c,0x0004003d, + 0x00000006,0x0000080f,0x00000120,0x0003003e,0x0000080e,0x0000080f,0x00060039,0x0000009f, + 0x00000810,0x000000df,0x0000080d,0x0000080e,0x0003003e,0x0000080a,0x00000810,0x0004003d, + 0x00000032,0x00000812,0x000007de,0x0003003e,0x00000811,0x00000812,0x0004003d,0x0000009f, + 0x00000814,0x0000080a,0x0003003e,0x00000813,0x00000814,0x0003003e,0x00000815,0x000007ef, + 0x0004003d,0x00000006,0x00000817,0x00000120,0x0003003e,0x00000816,0x00000817,0x00080039, + 0x00000002,0x00000818,0x000000b7,0x00000811,0x00000813,0x00000815,0x00000816,0x0004003d, + 0x00000006,0x00000819,0x0000011d,0x00050084,0x00000006,0x0000081a,0x00000819,0x0000020e, + 0x00050080,0x00000006,0x0000081b,0x0000081a,0x000001c2,0x0004007c,0x0000001a,0x0000081c, + 0x0000081b,0x0004003d,0x00000006,0x0000081d,0x0000011e,0x00050084,0x00000006,0x0000081e, + 0x0000081d,0x0000020e,0x00050080,0x00000006,0x0000081f,0x0000081e,0x0000016e,0x0004007c, + 0x0000001a,0x00000820,0x0000081f,0x00050050,0x00000032,0x00000821,0x0000081c,0x00000820, + 0x0003003e,0x000007d4,0x00000821,0x0004003d,0x00000006,0x00000822,0x0000011d,0x00050084, + 0x00000006,0x00000823,0x00000822,0x0000016e,0x00050080,0x00000006,0x00000824,0x00000823, + 0x000001c2,0x0004007c,0x0000001a,0x00000825,0x00000824,0x0004003d,0x00000006,0x00000826, + 0x0000011e,0x00050084,0x00000006,0x00000827,0x00000826,0x0000016e,0x00050080,0x00000006, + 0x00000828,0x00000827,0x00000175,0x0004007c,0x0000001a,0x00000829,0x00000828,0x00050050, + 0x00000032,0x0000082a,0x00000825,0x00000829,0x0003003e,0x000007de,0x0000082a,0x0004003d, + 0x00000032,0x0000082c,0x000007d4,0x0004007c,0x0000002d,0x0000082d,0x0000082c,0x0003003e, + 0x0000082e,0x0000082d,0x0004003d,0x00000006,0x00000830,0x00000120,0x0003003e,0x0000082f, + 0x00000830,0x00060039,0x0000009f,0x00000831,0x000000df,0x0000082e,0x0000082f,0x0003003e, + 0x0000082b,0x00000831,0x0004003d,0x00000032,0x00000833,0x000007de,0x0003003e,0x00000832, + 0x00000833,0x0004003d,0x0000009f,0x00000835,0x0000082b,0x0003003e,0x00000834,0x00000835, + 0x0003003e,0x00000836,0x000007ef,0x0004003d,0x00000006,0x00000838,0x00000120,0x0003003e, + 0x00000837,0x00000838,0x00080039,0x00000002,0x00000839,0x000000b7,0x00000832,0x00000834, + 0x00000836,0x00000837,0x0004003d,0x00000006,0x0000083a,0x0000011d,0x00050084,0x00000006, + 0x0000083b,0x0000083a,0x0000020e,0x00050080,0x00000006,0x0000083c,0x0000083b,0x0000016e, + 0x0004007c,0x0000001a,0x0000083d,0x0000083c,0x0004003d,0x00000006,0x0000083e,0x0000011e, + 0x00050084,0x00000006,0x0000083f,0x0000083e,0x0000020e,0x00050080,0x00000006,0x00000840, + 0x0000083f,0x0000016e,0x0004007c,0x0000001a,0x00000841,0x00000840,0x00050050,0x00000032, + 0x00000842,0x0000083d,0x00000841,0x0003003e,0x000007d4,0x00000842,0x0004003d,0x00000006, + 0x00000843,0x0000011d,0x00050084,0x00000006,0x00000844,0x00000843,0x0000016e,0x00050080, + 0x00000006,0x00000845,0x00000844,0x00000175,0x0004007c,0x0000001a,0x00000846,0x00000845, + 0x0004003d,0x00000006,0x00000847,0x0000011e,0x00050084,0x00000006,0x00000848,0x00000847, + 0x0000016e,0x00050080,0x00000006,0x00000849,0x00000848,0x00000175,0x0004007c,0x0000001a, + 0x0000084a,0x00000849,0x00050050,0x00000032,0x0000084b,0x00000846,0x0000084a,0x0003003e, + 0x000007de,0x0000084b,0x0004003d,0x00000032,0x0000084d,0x000007d4,0x0004007c,0x0000002d, + 0x0000084e,0x0000084d,0x0003003e,0x0000084f,0x0000084e,0x0004003d,0x00000006,0x00000851, + 0x00000120,0x0003003e,0x00000850,0x00000851,0x00060039,0x0000009f,0x00000852,0x000000df, + 0x0000084f,0x00000850,0x0003003e,0x0000084c,0x00000852,0x0004003d,0x00000032,0x00000854, + 0x000007de,0x0003003e,0x00000853,0x00000854,0x0004003d,0x0000009f,0x00000856,0x0000084c, + 0x0003003e,0x00000855,0x00000856,0x0003003e,0x00000857,0x000007ef,0x0004003d,0x00000006, + 0x00000859,0x00000120,0x0003003e,0x00000858,0x00000859,0x00080039,0x00000002,0x0000085a, + 0x000000b7,0x00000853,0x00000855,0x00000857,0x00000858,0x0004003d,0x00000006,0x0000085b, + 0x0000011f,0x000500b2,0x0000006e,0x0000085d,0x0000085b,0x0000085c,0x000300f7,0x0000085f, + 0x00000000,0x000400fa,0x0000085d,0x0000085e,0x0000085f,0x000200f8,0x0000085e,0x000100fd, + 0x000200f8,0x0000085f,0x0004003d,0x0000009f,0x00000863,0x000007e8,0x0003003e,0x00000862, + 0x00000863,0x0004003d,0x0000009f,0x00000865,0x0000080a,0x0003003e,0x00000864,0x00000865, + 0x0004003d,0x0000009f,0x00000867,0x0000082b,0x0003003e,0x00000866,0x00000867,0x0004003d, + 0x0000009f,0x00000869,0x0000084c,0x0003003e,0x00000868,0x00000869,0x00080039,0x0000009f, + 0x0000086a,0x000000b0,0x00000862,0x00000864,0x00000866,0x00000868,0x0003003e,0x00000861, + 0x0000086a,0x0004003d,0x00000006,0x0000086b,0x0000011d,0x0004007c,0x0000001a,0x0000086c, + 0x0000086b,0x0004003d,0x00000006,0x0000086d,0x0000011e,0x0004007c,0x0000001a,0x0000086e, + 0x0000086d,0x00050050,0x00000032,0x0000086f,0x0000086c,0x0000086e,0x0003003e,0x00000870, + 0x0000086f,0x0004003d,0x0000009f,0x00000872,0x00000861,0x0003003e,0x00000871,0x00000872, + 0x0003003e,0x00000873,0x0000085c,0x0004003d,0x00000006,0x00000875,0x00000120,0x0003003e, + 0x00000874,0x00000875,0x00080039,0x00000002,0x00000876,0x000000b7,0x00000870,0x00000871, + 0x00000873,0x00000874,0x0004003d,0x00000006,0x00000878,0x0000011d,0x0003003e,0x00000877, + 0x00000878,0x0004003d,0x00000006,0x0000087a,0x0000011e,0x0003003e,0x00000879,0x0000087a, + 0x0004003d,0x0000009f,0x0000087c,0x00000861,0x0003003e,0x0000087b,0x0000087c,0x00070039, + 0x00000002,0x0000087d,0x000000c2,0x00000877,0x00000879,0x0000087b,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000012b,0x00000000,0x00000123,0x00030037,0x00000007,0x00000124, + 0x00030037,0x00000007,0x00000125,0x00030037,0x000000cc,0x00000126,0x00030037,0x00000007, + 0x00000127,0x00030037,0x00000007,0x00000128,0x00030037,0x00000007,0x00000129,0x00030037, + 0x00000007,0x0000012a,0x000200f8,0x0000012c,0x0004003b,0x00000007,0x00000885,0x00000007, + 0x0004003b,0x00000007,0x00000887,0x00000007,0x0004003b,0x000000cc,0x00000889,0x00000007, + 0x0004003b,0x00000007,0x0000088b,0x00000007,0x0004003b,0x00000007,0x0000088d,0x00000007, + 0x0004003b,0x00000007,0x0000088f,0x00000007,0x0004003b,0x00000007,0x0000089c,0x00000007, + 0x0004003b,0x00000007,0x0000089e,0x00000007,0x0004003b,0x000000cc,0x000008a0,0x00000007, + 0x0004003b,0x00000007,0x000008a2,0x00000007,0x0004003b,0x00000007,0x000008a4,0x00000007, + 0x0004003b,0x00000007,0x000008a5,0x00000007,0x0004003b,0x00000007,0x000008b2,0x00000007, + 0x0004003b,0x00000007,0x000008b4,0x00000007,0x0004003b,0x000000cc,0x000008b6,0x00000007, + 0x0004003b,0x00000007,0x000008b8,0x00000007,0x0004003b,0x00000007,0x000008ba,0x00000007, + 0x0004003b,0x00000007,0x000008bb,0x00000007,0x0004003b,0x000000cc,0x000008c8,0x00000007, + 0x0004003b,0x00000007,0x000008ca,0x00000007,0x0004003b,0x00000007,0x000008cc,0x00000007, + 0x0004003b,0x00000007,0x000008cd,0x00000007,0x0004003d,0x00000006,0x0000087e,0x00000129, + 0x0004003d,0x00000006,0x0000087f,0x00000128,0x000500b2,0x0000006e,0x00000880,0x0000087e, + 0x0000087f,0x000300f7,0x00000882,0x00000000,0x000400fa,0x00000880,0x00000881,0x00000882, + 0x000200f8,0x00000881,0x000100fd,0x000200f8,0x00000882,0x00040039,0x00000002,0x00000884, + 0x000000c4,0x0004003d,0x00000006,0x00000886,0x00000124,0x0003003e,0x00000885,0x00000886, + 0x0004003d,0x00000006,0x00000888,0x00000125,0x0003003e,0x00000887,0x00000888,0x0004003d, + 0x0000002d,0x0000088a,0x00000126,0x0003003e,0x00000889,0x0000088a,0x0004003d,0x00000006, + 0x0000088c,0x00000127,0x0003003e,0x0000088b,0x0000088c,0x0004003d,0x00000006,0x0000088e, + 0x00000128,0x0003003e,0x0000088d,0x0000088e,0x0004003d,0x00000006,0x00000890,0x0000012a, + 0x0003003e,0x0000088f,0x00000890,0x000a0039,0x00000002,0x00000891,0x00000103,0x00000885, + 0x00000887,0x00000889,0x0000088b,0x0000088d,0x0000088f,0x0004003d,0x00000006,0x00000892, + 0x00000129,0x0004003d,0x00000006,0x00000893,0x00000128,0x00050080,0x00000006,0x00000894, + 0x00000893,0x00000175,0x000500b2,0x0000006e,0x00000895,0x00000892,0x00000894,0x000300f7, + 0x00000897,0x00000000,0x000400fa,0x00000895,0x00000896,0x00000897,0x000200f8,0x00000896, + 0x000100fd,0x000200f8,0x00000897,0x00040039,0x00000002,0x00000899,0x000000c4,0x0004003d, + 0x00000006,0x0000089a,0x00000128,0x00050080,0x00000006,0x0000089b,0x0000089a,0x00000175, + 0x0004003d,0x00000006,0x0000089d,0x00000124,0x0003003e,0x0000089c,0x0000089d,0x0004003d, + 0x00000006,0x0000089f,0x00000125,0x0003003e,0x0000089e,0x0000089f,0x0004003d,0x0000002d, + 0x000008a1,0x00000126,0x0003003e,0x000008a0,0x000008a1,0x0004003d,0x00000006,0x000008a3, + 0x00000127,0x0003003e,0x000008a2,0x000008a3,0x0003003e,0x000008a4,0x0000089b,0x0004003d, + 0x00000006,0x000008a6,0x0000012a,0x0003003e,0x000008a5,0x000008a6,0x000a0039,0x00000002, + 0x000008a7,0x0000010b,0x0000089c,0x0000089e,0x000008a0,0x000008a2,0x000008a4,0x000008a5, + 0x0004003d,0x00000006,0x000008a8,0x00000129,0x0004003d,0x00000006,0x000008a9,0x00000128, + 0x00050080,0x00000006,0x000008aa,0x000008a9,0x0000016e,0x000500b2,0x0000006e,0x000008ab, + 0x000008a8,0x000008aa,0x000300f7,0x000008ad,0x00000000,0x000400fa,0x000008ab,0x000008ac, + 0x000008ad,0x000200f8,0x000008ac,0x000100fd,0x000200f8,0x000008ad,0x00040039,0x00000002, + 0x000008af,0x000000c4,0x0004003d,0x00000006,0x000008b0,0x00000128,0x00050080,0x00000006, + 0x000008b1,0x000008b0,0x0000016e,0x0004003d,0x00000006,0x000008b3,0x00000124,0x0003003e, + 0x000008b2,0x000008b3,0x0004003d,0x00000006,0x000008b5,0x00000125,0x0003003e,0x000008b4, + 0x000008b5,0x0004003d,0x0000002d,0x000008b7,0x00000126,0x0003003e,0x000008b6,0x000008b7, + 0x0004003d,0x00000006,0x000008b9,0x00000127,0x0003003e,0x000008b8,0x000008b9,0x0003003e, + 0x000008ba,0x000008b1,0x0004003d,0x00000006,0x000008bc,0x0000012a,0x0003003e,0x000008bb, + 0x000008bc,0x000a0039,0x00000002,0x000008bd,0x00000113,0x000008b2,0x000008b4,0x000008b6, + 0x000008b8,0x000008ba,0x000008bb,0x0004003d,0x00000006,0x000008be,0x00000129,0x0004003d, + 0x00000006,0x000008bf,0x00000128,0x00050080,0x00000006,0x000008c0,0x000008bf,0x0000016f, + 0x000500b2,0x0000006e,0x000008c1,0x000008be,0x000008c0,0x000300f7,0x000008c3,0x00000000, + 0x000400fa,0x000008c1,0x000008c2,0x000008c3,0x000200f8,0x000008c2,0x000100fd,0x000200f8, + 0x000008c3,0x00040039,0x00000002,0x000008c5,0x000000c4,0x0004003d,0x00000006,0x000008c6, + 0x00000128,0x00050080,0x00000006,0x000008c7,0x000008c6,0x0000016f,0x0004003d,0x0000002d, + 0x000008c9,0x00000126,0x0003003e,0x000008c8,0x000008c9,0x0004003d,0x00000006,0x000008cb, + 0x00000127,0x0003003e,0x000008ca,0x000008cb,0x0003003e,0x000008cc,0x000008c7,0x0004003d, + 0x00000006,0x000008ce,0x0000012a,0x0003003e,0x000008cd,0x000008ce,0x00080039,0x00000002, + 0x000008cf,0x0000011a,0x000008c8,0x000008ca,0x000008cc,0x000008cd,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000133,0x00000000,0x0000012d,0x00030037,0x000000cc,0x0000012e, + 0x00030037,0x00000007,0x0000012f,0x00030037,0x00000007,0x00000130,0x00030037,0x00000007, + 0x00000131,0x00030037,0x00000007,0x00000132,0x000200f8,0x00000134,0x0004003b,0x000000cc, + 0x000008d0,0x00000007,0x0004003b,0x00000007,0x000008d3,0x00000007,0x0004003b,0x00000007, + 0x000008d5,0x00000007,0x0004003b,0x00000007,0x000008de,0x00000007,0x0004003b,0x00000007, + 0x000008e5,0x00000007,0x0004003b,0x00000007,0x000008e7,0x00000007,0x0004003b,0x000000cc, + 0x000008e9,0x00000007,0x0004003b,0x00000007,0x000008eb,0x00000007,0x0004003b,0x00000007, + 0x000008ed,0x00000007,0x0004003b,0x00000007,0x000008ef,0x00000007,0x0004003b,0x00000007, + 0x000008f2,0x00000007,0x0004003b,0x00000007,0x000008f4,0x00000007,0x0004003b,0x000000cc, + 0x000008f6,0x00000007,0x0004003b,0x00000007,0x000008f8,0x00000007,0x0004003b,0x00000007, + 0x000008fa,0x00000007,0x0004003b,0x00000007,0x000008fb,0x00000007,0x0004003b,0x00000007, + 0x000008fd,0x00000007,0x0004003b,0x00000007,0x00000905,0x00000007,0x0004003b,0x00000007, + 0x00000907,0x00000007,0x0004003b,0x00000007,0x00000909,0x00000007,0x0004003b,0x00000007, + 0x0000090f,0x00000007,0x0004003b,0x00000007,0x00000912,0x00000007,0x0004003b,0x00000007, + 0x00000914,0x00000007,0x0004003b,0x00000007,0x00000916,0x00000007,0x0004003b,0x00000007, + 0x00000918,0x00000007,0x0004003b,0x00000007,0x0000091b,0x00000007,0x0004003b,0x00000007, + 0x0000091d,0x00000007,0x0004003b,0x000000cc,0x0000091f,0x00000007,0x0004003b,0x00000007, + 0x00000920,0x00000007,0x0004003b,0x00000007,0x00000922,0x00000007,0x0004003b,0x00000007, + 0x00000923,0x00000007,0x0004003b,0x00000007,0x00000925,0x00000007,0x0004003d,0x00000006, + 0x000008d1,0x0000012f,0x00050089,0x00000006,0x000008d2,0x000008d1,0x000005a7,0x0003003e, + 0x000008d3,0x000008d2,0x00050039,0x0000002d,0x000008d4,0x00000030,0x000008d3,0x0003003e, + 0x000008d0,0x000008d4,0x00050041,0x00000007,0x000008d6,0x000008d0,0x000001c2,0x0004003d, + 0x00000006,0x000008d7,0x000008d6,0x0004003d,0x00000006,0x000008d8,0x0000012f,0x000500c2, + 0x00000006,0x000008da,0x000008d8,0x000008d9,0x00050089,0x00000006,0x000008db,0x000008da, + 0x0000016e,0x00050084,0x00000006,0x000008dc,0x00000691,0x000008db,0x00050080,0x00000006, + 0x000008dd,0x000008d7,0x000008dc,0x0003003e,0x000008d5,0x000008dd,0x00050041,0x00000007, + 0x000008df,0x000008d0,0x00000175,0x0004003d,0x00000006,0x000008e0,0x000008df,0x0004003d, + 0x00000006,0x000008e1,0x0000012f,0x000500c2,0x00000006,0x000008e2,0x000008e1,0x00000199, + 0x00050084,0x00000006,0x000008e3,0x00000691,0x000008e2,0x00050080,0x00000006,0x000008e4, + 0x000008e0,0x000008e3,0x0003003e,0x000008de,0x000008e4,0x0004003d,0x00000006,0x000008e6, + 0x000008d5,0x0003003e,0x000008e5,0x000008e6,0x0004003d,0x00000006,0x000008e8,0x000008de, + 0x0003003e,0x000008e7,0x000008e8,0x0004003d,0x0000002d,0x000008ea,0x0000012e,0x0003003e, + 0x000008e9,0x000008ea,0x0004003d,0x00000006,0x000008ec,0x0000012f,0x0003003e,0x000008eb, + 0x000008ec,0x0004003d,0x00000006,0x000008ee,0x00000130,0x0003003e,0x000008ed,0x000008ee, + 0x0004003d,0x00000006,0x000008f0,0x00000132,0x0003003e,0x000008ef,0x000008f0,0x000a0039, + 0x00000002,0x000008f1,0x000000fb,0x000008e5,0x000008e7,0x000008e9,0x000008eb,0x000008ed, + 0x000008ef,0x0004003d,0x00000006,0x000008f3,0x000008d5,0x0003003e,0x000008f2,0x000008f3, + 0x0004003d,0x00000006,0x000008f5,0x000008de,0x0003003e,0x000008f4,0x000008f5,0x0004003d, + 0x0000002d,0x000008f7,0x0000012e,0x0003003e,0x000008f6,0x000008f7,0x0004003d,0x00000006, + 0x000008f9,0x0000012f,0x0003003e,0x000008f8,0x000008f9,0x0003003e,0x000008fa,0x0000016e, + 0x0004003d,0x00000006,0x000008fc,0x00000130,0x0003003e,0x000008fb,0x000008fc,0x0004003d, + 0x00000006,0x000008fe,0x00000132,0x0003003e,0x000008fd,0x000008fe,0x000b0039,0x00000002, + 0x000008ff,0x0000012b,0x000008f2,0x000008f4,0x000008f6,0x000008f8,0x000008fa,0x000008fb, + 0x000008fd,0x0004003d,0x00000006,0x00000900,0x00000130,0x000500b2,0x0000006e,0x00000901, + 0x00000900,0x000007ef,0x000300f7,0x00000903,0x00000000,0x000400fa,0x00000901,0x00000902, + 0x00000903,0x000200f8,0x00000902,0x000100fd,0x000200f8,0x00000903,0x0004003d,0x00000006, + 0x00000906,0x00000131,0x0003003e,0x00000905,0x00000906,0x0004003d,0x00000006,0x00000908, + 0x0000012f,0x0003003e,0x00000907,0x00000908,0x0004003d,0x00000006,0x0000090a,0x00000132, + 0x0003003e,0x00000909,0x0000090a,0x00070039,0x0000006e,0x0000090b,0x000000ca,0x00000905, + 0x00000907,0x00000909,0x000300f7,0x0000090d,0x00000000,0x000400fa,0x0000090b,0x0000090c, + 0x0000090d,0x000200f8,0x0000090c,0x000100fd,0x000200f8,0x0000090d,0x0004003d,0x00000006, + 0x00000910,0x00000132,0x0003003e,0x0000090f,0x00000910,0x00050039,0x00000002,0x00000911, + 0x0000007f,0x0000090f,0x0004003d,0x00000006,0x00000913,0x000008d5,0x0003003e,0x00000912, + 0x00000913,0x0004003d,0x00000006,0x00000915,0x000008de,0x0003003e,0x00000914,0x00000915, + 0x0004003d,0x00000006,0x00000917,0x00000130,0x0003003e,0x00000916,0x00000917,0x0004003d, + 0x00000006,0x00000919,0x00000132,0x0003003e,0x00000918,0x00000919,0x00080039,0x00000002, + 0x0000091a,0x00000121,0x00000912,0x00000914,0x00000916,0x00000918,0x0004003d,0x00000006, + 0x0000091c,0x000008d5,0x0003003e,0x0000091b,0x0000091c,0x0004003d,0x00000006,0x0000091e, + 0x000008de,0x0003003e,0x0000091d,0x0000091e,0x0003003e,0x0000091f,0x00000555,0x0004003d, + 0x00000006,0x00000921,0x0000012f,0x0003003e,0x00000920,0x00000921,0x0003003e,0x00000922, + 0x00000691,0x0004003d,0x00000006,0x00000924,0x00000130,0x0003003e,0x00000923,0x00000924, + 0x0004003d,0x00000006,0x00000926,0x00000132,0x0003003e,0x00000925,0x00000926,0x000b0039, + 0x00000002,0x00000927,0x0000012b,0x0000091b,0x0000091d,0x0000091f,0x00000920,0x00000922, + 0x00000923,0x00000925,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000013c,0x00000000, + 0x00000135,0x00030037,0x000000cc,0x00000136,0x00030037,0x00000007,0x00000137,0x00030037, + 0x00000007,0x00000138,0x00030037,0x00000007,0x00000139,0x00030037,0x00000007,0x0000013a, + 0x00030037,0x000000cc,0x0000013b,0x000200f8,0x0000013d,0x0004003b,0x000000cc,0x0000092b, + 0x00000007,0x0004003b,0x00000007,0x0000092c,0x00000007,0x0004003b,0x00000007,0x0000092e, + 0x00000007,0x0004003b,0x00000007,0x00000930,0x00000007,0x0004003b,0x00000007,0x00000932, + 0x00000007,0x0004003d,0x0000002d,0x00000928,0x00000136,0x0004003d,0x0000002d,0x00000929, + 0x0000013b,0x00050080,0x0000002d,0x0000092a,0x00000928,0x00000929,0x0003003e,0x0000092b, + 0x0000092a,0x0004003d,0x00000006,0x0000092d,0x00000137,0x0003003e,0x0000092c,0x0000092d, + 0x0004003d,0x00000006,0x0000092f,0x00000138,0x0003003e,0x0000092e,0x0000092f,0x0004003d, + 0x00000006,0x00000931,0x00000139,0x0003003e,0x00000930,0x00000931,0x0004003d,0x00000006, + 0x00000933,0x0000013a,0x0003003e,0x00000932,0x00000933,0x00090039,0x00000002,0x00000934, + 0x00000133,0x0000092b,0x0000092c,0x0000092e,0x00000930,0x00000932,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000143,0x00000000,0x00000140,0x00030037,0x0000013f,0x00000141, + 0x00030037,0x00000007,0x00000142,0x000200f8,0x00000144,0x0004003b,0x000000cc,0x0000093d, + 0x00000007,0x0004003b,0x00000007,0x0000093e,0x00000007,0x0004003b,0x00000007,0x0000093f, + 0x00000007,0x0004003b,0x00000007,0x00000940,0x00000007,0x0004003b,0x00000007,0x00000941, + 0x00000007,0x0004003b,0x000000cc,0x00000942,0x00000007,0x0004003d,0x0000013e,0x00000935, + 0x00000141,0x0007004f,0x0000002d,0x00000936,0x00000935,0x00000935,0x00000000,0x00000001, + 0x0004003d,0x00000006,0x00000937,0x00000142,0x00040039,0x00000006,0x00000938,0x00000042, + 0x00040039,0x00000006,0x00000939,0x00000044,0x00050041,0x00000007,0x0000093a,0x00000141, + 0x0000016e,0x0004003d,0x00000006,0x0000093b,0x0000093a,0x00040039,0x0000002d,0x0000093c, + 0x00000047,0x0003003e,0x0000093d,0x00000936,0x0003003e,0x0000093e,0x00000937,0x0003003e, + 0x0000093f,0x00000938,0x0003003e,0x00000940,0x00000939,0x0003003e,0x00000941,0x0000093b, + 0x0003003e,0x00000942,0x0000093c,0x000a0039,0x00000002,0x00000943,0x0000013c,0x0000093d, + 0x0000093e,0x0000093f,0x00000940,0x00000941,0x00000942,0x000100fd,0x00010038 +}; diff --git a/scripts/fsr3_shaders.py b/scripts/fsr3_shaders.py new file mode 100644 index 000000000..05ddba4cc --- /dev/null +++ b/scripts/fsr3_shaders.py @@ -0,0 +1,202 @@ +"""Compile AMD's FSR 3.1 upscaler passes into the SPIR-V headers gpu/vk uses. + +The FidelityFX SDK ships each pass as GLSL that includes the SDK's own GPU headers, so the eleven +variants below are the same eight passes compiled with different options. They are checked in like +every other shader in gpu/vk/shaders, so a clone builds without glslang; this script regenerates +them, and --check proves the checked-in files still match their sources (tests/test_fsr3_shaders.py). + + python -I -B scripts/fsr3_shaders.py # write gpu/vk/shaders/fsr3_*_comp_spv.h + python -I -B scripts/fsr3_shaders.py --check # compare instead of writing +""" +import argparse +import difflib +import shutil +import subprocess +import sys +import tempfile +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SDK = ROOT / "third_party/fidelityfx-sdk" +GPU = SDK / "include/FidelityFX/gpu" +PASSES = SDK / "shaders/fsr3upscaler" +FI_PASSES = SDK / "shaders/frameinterpolation" +OF_PASSES = SDK / "shaders/opticalflow" +OUT = ROOT / "gpu/vk/shaders" + +# The option set the renderer records these passes under. Each one is a promise about the inputs: +# the colour is HDR, the motion is low-resolution and not jittered, and the depth is reversed. They +# have to match what gpu/vk/vk_fsr3.cpp hands the passes, which is why they live in one place. +OPTIONS = [ + "-DFFX_GPU=1", + "-DFFX_GLSL=1", + "-DFFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE=2", + "-DFFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE=0", + "-DFFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT=1", + "-DFFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS=1", + "-DFFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS=0", + "-DFFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH=1", +] + +# name, the pass GLSL it compiles, extra defines. The _nowave variants are for devices without the +# subgroup operations the single-pass downsampler prefers. +VARIANTS = [ + ("prepare_inputs", "prepare_inputs", []), + ("luma_pyramid", "luma_pyramid", []), + ("luma_pyramid_nowave", "luma_pyramid", ["-DFFX_SPD_NO_WAVE_OPERATIONS=1"]), + ("shading_change_pyramid", "shading_change_pyramid", []), + ("shading_change_pyramid_nowave", "shading_change_pyramid", ["-DFFX_SPD_NO_WAVE_OPERATIONS=1"]), + ("shading_change", "shading_change", []), + ("prepare_reactivity", "prepare_reactivity", []), + ("luma_instability", "luma_instability", []), + ("accumulate", "accumulate", []), + ("accumulate_sharpen", "accumulate", ["-DFFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING=1"]), + ("rcas", "rcas", []), +] + + +# (hookshot) Frame interpolation and the optical flow it runs on, the same arrangement: AMD ships +# each pass as GLSL over the SDK's own GPU headers, and the renderer records them as SPIR-V headers +# beside the upscaler's. The options are the same promises about the same inputs -- the depth is +# reversed and the motion is at the render extent -- because the inputs are the ones the upscaler is +# already given (gpu/vk/vk_fsr3fi.cpp). +FI_OPTIONS = [ + "-DFFX_GPU=1", + "-DFFX_GLSL=1", + "-DFFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH=1", + "-DFFX_FRAMEINTERPOLATION_OPTION_LOW_RESOLUTION_MOTION_VECTORS=1", + "-DFFX_FRAMEINTERPOLATION_OPTION_JITTERED_MOTION_VECTORS=0", +] +OF_OPTIONS = ["-DFFX_GPU=1", "-DFFX_GLSL=1"] + +# (name, the pass file, extra defines). The file is named outright rather than composed: AMD's +# optical-flow v5 passes end "_pass_v5.glsl" and the interpolation pass itself is just +# "ffx_frameinterpolation_pass.glsl", so a composed name is wrong for four of the eighteen. +FI_VARIANTS = [ + ("fi_setup", "ffx_frameinterpolation_setup_pass.glsl", []), + ("fi_reconstruct_previous_depth", "ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl", []), + ("fi_reconstruct_and_dilate", "ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl", []), + ("fi_game_motion_vector_field", "ffx_frameinterpolation_game_motion_vector_field_pass.glsl", []), + ("fi_optical_flow_vector_field", "ffx_frameinterpolation_optical_flow_vector_field_pass.glsl", []), + ("fi_disocclusion_mask", "ffx_frameinterpolation_disocclusion_mask_pass.glsl", []), + ("fi_game_vector_field_inpainting_pyramid", + "ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl", []), + ("fi_inpainting_pyramid", "ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl", []), + ("fi_interpolate", "ffx_frameinterpolation_pass.glsl", []), + ("fi_inpainting", "ffx_frameinterpolation_inpainting_pass.glsl", []), +] +OF_VARIANTS = [ + ("of_prepare_luma", "ffx_opticalflow_prepare_luma_pass.glsl", []), + ("of_luminance_pyramid", "ffx_opticalflow_compute_luminance_pyramid_pass.glsl", []), + ("of_generate_scd_histogram", "ffx_opticalflow_generate_scd_histogram_pass.glsl", []), + ("of_compute_scd_divergence", "ffx_opticalflow_compute_scd_divergence_pass.glsl", []), + ("of_compute_optical_flow_v5", "ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl", []), + ("of_filter_optical_flow_v5", "ffx_opticalflow_filter_optical_flow_pass_v5.glsl", []), + ("of_scale_optical_flow_v5", "ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl", []), +] + + +def compile_family(glslang, name, source, extra, out_path, target_env, options, includes, + variable=True): + """One frame-interpolation or optical-flow pass. The upscaler's compile_one is kept as it is: + its passes are composed by name and its option set is the upscaler's own.""" + cmd = [glslang, "-V", "--quiet", "-S", "comp"] + for d in includes: + cmd.append("-I" + str(d)) + cmd += [*options, *extra] + if variable: + cmd += ["--variable-name", f"FSR3_{name.upper()}_COMP_SPV"] + cmd += ["-o", str(out_path), str(source), "--target-env", target_env] + subprocess.run(cmd, check=True) + + +def compile_one(glslang, name, pass_name, extra, out_path, target_env, variable=True): + """Compile one variant. With `variable`, glslang writes a C header; without it, binary SPIR-V, + which is what spirv-val reads.""" + defines = list(OPTIONS) + if not any("APPLY_SHARPENING" in d for d in extra): + defines.append("-DFFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING=0") + cmd = [glslang, "-V", "--quiet", "-S", "comp", + "-I" + str(GPU), "-I" + str(GPU / "fsr3upscaler"), + *defines, *extra] + if variable: + cmd += ["--variable-name", f"FSR3_{name.upper()}_COMP_SPV"] + cmd += ["-o", str(out_path), + str(PASSES / f"ffx_fsr3upscaler_{pass_name}_pass.glsl"), + "--target-env", target_env] + subprocess.run(cmd, check=True) + + +def strip_generator(text): + """The header without glslang's own version comment. + + glslang writes its version into the first line as `// 1116.2.0`, so two glslang builds produce + byte-different headers from identical SPIR-V. Comparing the whole text made this check fail on + a CI runner whose glslang was one release behind the one that generated the checked-in files -- + a version bump reported as a source mismatch, which is the kind of red that teaches people to + ignore red. The words after it are the module, and those are what this is about. + """ + return [line for line in text.splitlines() + if not line.strip().startswith("// ") or not line.strip()[3:].replace(".", "").isdigit()] + + +def main(): + p = argparse.ArgumentParser(description=__doc__, + formatter_class=argparse.RawDescriptionHelpFormatter) + p.add_argument("--glslang", default=None, help="glslangValidator; found on PATH by default") + p.add_argument("--spirv-val", default=None, help="spirv-val, to validate each module") + p.add_argument("--target-env", default="spirv1.3") + p.add_argument("--check", action="store_true", help="compare with the checked-in headers") + a = p.parse_args() + glslang = a.glslang or shutil.which("glslangValidator") or shutil.which("glslang") + if not glslang: + print("glslangValidator not found; pass --glslang", file=sys.stderr) + return 2 + + bad = [] + with tempfile.TemporaryDirectory(prefix="fsr3-shaders-") as tmp: + # the upscaler's eleven, then frame interpolation's ten and optical flow's seven + families = [(name, None, pass_name, extra, None, None) for name, pass_name, extra in VARIANTS] + families += [(name, FI_PASSES / f, None, extra, FI_OPTIONS, + [GPU, GPU / "frameinterpolation", GPU / "opticalflow"]) + for name, f, extra in FI_VARIANTS] + families += [(name, OF_PASSES / f, None, extra, OF_OPTIONS, [GPU, GPU / "opticalflow"]) + for name, f, extra in OF_VARIANTS] + for name, source, pass_name, extra, options, includes in families: + header = OUT / f"fsr3_{name}_comp_spv.h" + made = Path(tmp) / header.name + if source is None: + compile_one(glslang, name, pass_name, extra, made, a.target_env) + else: + compile_family(glslang, name, source, extra, made, a.target_env, options, includes) + if a.spirv_val: + spv = Path(tmp) / f"{name}.spv" + if source is None: + compile_one(glslang, name, pass_name, extra, spv, a.target_env, variable=False) + else: + compile_family(glslang, name, source, extra, spv, a.target_env, options, + includes, variable=False) + subprocess.run([a.spirv_val, str(spv)], check=True) + if a.check: + have = header.read_text() if header.exists() else "" + want = made.read_text() + if strip_generator(have) != strip_generator(want): + bad.append(name) + if not have: + print(f"{header.name}: missing", file=sys.stderr) + else: + diff = difflib.unified_diff(have.splitlines(), want.splitlines(), + "checked in", "regenerated", n=0, lineterm="") + print("\n".join(list(diff)[:12]), file=sys.stderr) + else: + shutil.copyfile(made, header) + print(f"wrote {header.relative_to(ROOT)} ({header.stat().st_size} bytes)") + if bad: + print(f"{len(bad)} header(s) do not match their source: {', '.join(bad)}", file=sys.stderr) + return 1 + print(f"fsr3 shaders: {len(VARIANTS) + len(FI_VARIANTS) + len(OF_VARIANTS)} {'match' if a.check else 'written'}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tests/run_all.py b/tests/run_all.py index 0d533e133..592e4eb82 100644 --- a/tests/run_all.py +++ b/tests/run_all.py @@ -47,6 +47,7 @@ "tests/test_audio_in.py": ["--cc", "gcc", "--cxx", "g++"], "tests/test_upscale_fallback.py": ["--cxx", "g++"], "tests/test_reserved_core.py": ["--cxx", "g++"], + "tests/test_fsr3_shaders.py": ["--glslang", "{glslang}", "--spirv-val", "{spirv_val}"], "tests/test_fg_scale_sharpen.py": ["--cxx", "g++"], "tests/test_taau_env_lookup.py": ["--cxx", "g++"], "tests/test_target_overlap.py": ["--cxx", "g++"], @@ -116,6 +117,8 @@ for _name in ("nx2/test_texture_phi_dominance.py", "nx2/test_unsigned_image_types.py", "nx2/test_depth_sample_types.py", "nx2/test_default_point_size.py", "nx2/test_draw_parameters.py", "nx2/test_coop_spirv.py", "nx2/test_spirv_struct_identity.py"): SKIP[_name] = ({"windows"}, "needs spirv-val: checked on Linux") +# (glslang: likewise a Linux runner package. The headers it checks are SPIR-V, the same on every platform) +SKIP["tests/test_fsr3_shaders.py"] = ({"windows"}, "needs glslang: checked on Linux") def which(*names): @@ -144,6 +147,7 @@ def find_tools(): "spirv_headers": header_dir("HOOKSHOT_SPIRV_HEADERS", "spirv-headers", os.path.join("spirv", "unified1", "spirv.h")), "vulkan_headers": header_dir("HOOKSHOT_VULKAN_HEADERS", "vulkanheaders", os.path.join("vulkan", "vulkan.h")), "spirv_val": which("spirv-val"), + "glslang": which("glslangValidator", "glslang"), "cxx": which(os.environ.get("CXX", ""), "clang++", "g++", "c++"), } diff --git a/tests/test_fsr3_shaders.py b/tests/test_fsr3_shaders.py new file mode 100644 index 000000000..da890cf19 --- /dev/null +++ b/tests/test_fsr3_shaders.py @@ -0,0 +1,33 @@ +"""The checked-in FSR 3.1 pass shaders still match the FidelityFX SDK sources they came from. + +gpu/vk/shaders/fsr3_*_comp_spv.h are generated from third_party/fidelityfx-sdk by +scripts/fsr3_shaders.py and checked in like every other shader here, so a clone builds without +glslang. That only stays true if the headers and their sources cannot drift apart, which is what +this check is for: it recompiles every variant and compares. It also validates each module, so a +pass that compiles but is not valid SPIR-V is caught here rather than on a device. + +python -I -B tests/test_fsr3_shaders.py [--glslang glslangValidator] [--spirv-val spirv-val] +""" +import argparse +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] + + +def main(): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--glslang") + p.add_argument("--spirv-val") + a = p.parse_args() + cmd = [sys.executable, "-I", "-B", str(ROOT / "scripts/fsr3_shaders.py"), "--check"] + if a.glslang: + cmd += ["--glslang", a.glslang] + if a.spirv_val: + cmd += ["--spirv-val", a.spirv_val] + subprocess.run(cmd, check=True) + + +if __name__ == "__main__": + main() diff --git a/third_party/fidelityfx-sdk/LICENSE.txt b/third_party/fidelityfx-sdk/LICENSE.txt new file mode 100644 index 000000000..3712e34ad --- /dev/null +++ b/third_party/fidelityfx-sdk/LICENSE.txt @@ -0,0 +1,21 @@ +This file is part of the FidelityFX SDK. + +Copyright (C) 2024 Advanced Micro Devices, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/third_party/fidelityfx-sdk/PROVENANCE.md b/third_party/fidelityfx-sdk/PROVENANCE.md new file mode 100644 index 000000000..5e32ffdca --- /dev/null +++ b/third_party/fidelityfx-sdk/PROVENANCE.md @@ -0,0 +1,26 @@ +# FidelityFX SDK + +AMD FidelityFX SDK, used for the FSR 3.1 upscaler's GPU sources. Unmodified upstream copy. + +- Upstream: https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK +- Version: v1.1.4, commit `c6efa6bf7f2027b3ec94f28578bb5965eabb9e55` +- License: MIT, in `LICENSE.txt`. Keep it with any distribution. + +What is here and why: + +| | | +|---|---| +| `include/FidelityFX/gpu/` | The GPU-side headers the passes include: the common core, `fsr1/`, `spd/` (the single-pass downsampler the pyramids use), `fsr3upscaler/`, `frameinterpolation/` and `opticalflow/` | +| `shaders/fsr3upscaler/*.glsl` | The eight upscaler passes, as AMD ships them | +| `shaders/frameinterpolation/*.glsl` | The eleven frame-interpolation passes, from `sdk/src/backends/vk/shaders/frameinterpolation/` | +| `shaders/opticalflow/*.glsl` | The seven optical-flow passes frame interpolation runs on, from `sdk/src/backends/vk/shaders/opticalflow/` | +| `LICENSE.txt` | AMD's MIT notice | + +No runtime library is needed, and none is included: the passes are compiled from these sources into +`gpu/vk/shaders/fsr3_*_comp_spv.h` by `scripts/fsr3_shaders.py`, which is also what +`tests/test_fsr3_shaders.py` runs to prove the checked-in headers still match. This is the SDK-source +route rather than AMD's FidelityFX API, which would load AMD's own Vulkan runtime and is Windows +only: these passes run on any GPU, on Windows and Linux alike. + +Nothing in this folder is edited. A change belongs in a new folder with its own note, per +`CONTRIBUTING.md`. diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h new file mode 100644 index 000000000..2c4f0ba02 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h @@ -0,0 +1,558 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_COMMON_TYPES_H +#define FFX_COMMON_TYPES_H + +#if defined(FFX_CPU) +#define FFX_PARAMETER_IN +#define FFX_PARAMETER_OUT +#define FFX_PARAMETER_INOUT +#define FFX_PARAMETER_UNIFORM +#elif defined(FFX_HLSL) +#define FFX_PARAMETER_IN in +#define FFX_PARAMETER_OUT out +#define FFX_PARAMETER_INOUT inout +#define FFX_PARAMETER_UNIFORM uniform +#elif defined(FFX_GLSL) +#define FFX_PARAMETER_IN in +#define FFX_PARAMETER_OUT out +#define FFX_PARAMETER_INOUT inout +#define FFX_PARAMETER_UNIFORM const //[cacao_placeholder] until a better fit is found! +#endif // #if defined(FFX_CPU) + +#if defined(FFX_CPU) +/// A typedef for a boolean value. +/// +/// @ingroup CPUTypes +typedef bool FfxBoolean; + +/// A typedef for a unsigned 8bit integer. +/// +/// @ingroup CPUTypes +typedef uint8_t FfxUInt8; + +/// A typedef for a unsigned 16bit integer. +/// +/// @ingroup CPUTypes +typedef uint16_t FfxUInt16; + +/// A typedef for a unsigned 32bit integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32; + +/// A typedef for a unsigned 64bit integer. +/// +/// @ingroup CPUTypes +typedef uint64_t FfxUInt64; + +/// A typedef for a signed 8bit integer. +/// +/// @ingroup CPUTypes +typedef int8_t FfxInt8; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup CPUTypes +typedef int16_t FfxInt16; + +/// A typedef for a signed 32bit integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32; + +/// A typedef for a signed 64bit integer. +/// +/// @ingroup CPUTypes +typedef int64_t FfxInt64; + +/// A typedef for a floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32; + +/// A typedef for a 2-dimensional floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x2[2]; + +/// A typedef for a 3-dimensional floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x3[3]; + +/// A typedef for a 4-dimensional floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x4[4]; + +/// A typedef for a 2x2 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x2x2[4]; + +/// A typedef for a 3x3 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x3x3[9]; + +/// A typedef for a 3x4 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x3x4[12]; + +/// A typedef for a 4x4 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x4x4[16]; + +/// A typedef for a 2-dimensional 32bit signed integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32x2[2]; + +/// A typedef for a 3-dimensional 32bit signed integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32x3[3]; + +/// A typedef for a 4-dimensional 32bit signed integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32x4[4]; + +/// A typedef for a 2-dimensional 32bit usigned integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32x2[2]; + +/// A typedef for a 3-dimensional 32bit unsigned integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32x3[3]; + +/// A typedef for a 4-dimensional 32bit unsigned integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32x4[4]; +#endif // #if defined(FFX_CPU) + +#if defined(FFX_HLSL) + +#define FfxFloat32Mat4 matrix +#define FfxFloat32Mat3 matrix + +/// A typedef for a boolean value. +/// +/// @ingroup HLSLTypes +typedef bool FfxBoolean; + +#if FFX_HLSL_SM>=62 + +/// @defgroup HLSL62Types HLSL 6.2 And Above Types +/// HLSL 6.2 and above type defines for all commonly used variables +/// +/// @ingroup HLSLTypes + +/// A typedef for a floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t FfxFloat32; + +/// A typedef for a 2-dimensional floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t2 FfxFloat32x2; + +/// A typedef for a 3-dimensional floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t3 FfxFloat32x3; + +/// A typedef for a 4-dimensional floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t4 FfxFloat32x4; + +/// A [cacao_placeholder] typedef for matrix type until confirmed. +typedef float4x4 FfxFloat32x4x4; +typedef float3x4 FfxFloat32x3x4; +typedef float3x3 FfxFloat32x3x3; +typedef float2x2 FfxFloat32x2x2; + +/// A typedef for a unsigned 32bit integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t FfxUInt32; + +/// A typedef for a 2-dimensional 32bit unsigned integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t2 FfxUInt32x2; + +/// A typedef for a 3-dimensional 32bit unsigned integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t3 FfxUInt32x3; + +/// A typedef for a 4-dimensional 32bit unsigned integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t4 FfxUInt32x4; + +/// A typedef for a signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t FfxInt32; + +/// A typedef for a 2-dimensional signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t2 FfxInt32x2; + +/// A typedef for a 3-dimensional signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t3 FfxInt32x3; + +/// A typedef for a 4-dimensional signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t4 FfxInt32x4; + +#else // #if FFX_HLSL_SM>=62 + +/// @defgroup HLSLBaseTypes HLSL 6.1 And Below Types +/// HLSL 6.1 and below type defines for all commonly used variables +/// +/// @ingroup HLSLTypes + +#define FfxFloat32 float +#define FfxFloat32x2 float2 +#define FfxFloat32x3 float3 +#define FfxFloat32x4 float4 + +/// A [cacao_placeholder] typedef for matrix type until confirmed. +#define FfxFloat32x4x4 float4x4 +#define FfxFloat32x3x4 float3x4 +#define FfxFloat32x3x3 float3x3 +#define FfxFloat32x2x2 float2x2 + +/// A typedef for a unsigned 32bit integer. +/// +/// @ingroup GPU +typedef uint FfxUInt32; +typedef uint2 FfxUInt32x2; +typedef uint3 FfxUInt32x3; +typedef uint4 FfxUInt32x4; + +typedef int FfxInt32; +typedef int2 FfxInt32x2; +typedef int3 FfxInt32x3; +typedef int4 FfxInt32x4; + +#endif // #if FFX_HLSL_SM>=62 + +#if FFX_HALF + +#if FFX_HLSL_SM >= 62 + +typedef float16_t FfxFloat16; +typedef float16_t2 FfxFloat16x2; +typedef float16_t3 FfxFloat16x3; +typedef float16_t4 FfxFloat16x4; + +/// A typedef for an unsigned 16bit integer. +/// +/// @ingroup HLSLTypes +typedef uint16_t FfxUInt16; +typedef uint16_t2 FfxUInt16x2; +typedef uint16_t3 FfxUInt16x3; +typedef uint16_t4 FfxUInt16x4; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup HLSLTypes +typedef int16_t FfxInt16; +typedef int16_t2 FfxInt16x2; +typedef int16_t3 FfxInt16x3; +typedef int16_t4 FfxInt16x4; +#else // #if FFX_HLSL_SM>=62 +typedef min16float FfxFloat16; +typedef min16float2 FfxFloat16x2; +typedef min16float3 FfxFloat16x3; +typedef min16float4 FfxFloat16x4; + +/// A typedef for an unsigned 16bit integer. +/// +/// @ingroup HLSLTypes +typedef min16uint FfxUInt16; +typedef min16uint2 FfxUInt16x2; +typedef min16uint3 FfxUInt16x3; +typedef min16uint4 FfxUInt16x4; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup HLSLTypes +typedef min16int FfxInt16; +typedef min16int2 FfxInt16x2; +typedef min16int3 FfxInt16x3; +typedef min16int4 FfxInt16x4; +#endif // #if FFX_HLSL_SM>=62 + +#endif // FFX_HALF + +#endif // #if defined(FFX_HLSL) + +#if defined(FFX_GLSL) + +#define FfxFloat32Mat4 mat4 +#define FfxFloat32Mat3 mat3 + +/// A typedef for a boolean value. +/// +/// @ingroup GLSLTypes +#define FfxBoolean bool +#define FfxFloat32 float +#define FfxFloat32x2 vec2 +#define FfxFloat32x3 vec3 +#define FfxFloat32x4 vec4 +#define FfxUInt32 uint +#define FfxUInt32x2 uvec2 +#define FfxUInt32x3 uvec3 +#define FfxUInt32x4 uvec4 +#define FfxInt32 int +#define FfxInt32x2 ivec2 +#define FfxInt32x3 ivec3 +#define FfxInt32x4 ivec4 + +/// A [cacao_placeholder] typedef for matrix type until confirmed. +#define FfxFloat32x4x4 mat4 +#define FfxFloat32x3x4 mat4x3 +#define FfxFloat32x3x3 mat3 +#define FfxFloat32x2x2 mat2 + +#if FFX_HALF +#define FfxFloat16 float16_t +#define FfxFloat16x2 f16vec2 +#define FfxFloat16x3 f16vec3 +#define FfxFloat16x4 f16vec4 +#define FfxUInt16 uint16_t +#define FfxUInt16x2 u16vec2 +#define FfxUInt16x3 u16vec3 +#define FfxUInt16x4 u16vec4 +#define FfxInt16 int16_t +#define FfxInt16x2 i16vec2 +#define FfxInt16x3 i16vec3 +#define FfxInt16x4 i16vec4 +#endif // FFX_HALF +#endif // #if defined(FFX_GLSL) + +// Global toggles: +// #define FFX_HALF (1) +// #define FFX_HLSL_SM (62) + +#if FFX_HALF + +#if FFX_HLSL_SM >= 62 + +#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType##16_t TypeName; +#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType##16_t TypeName; +#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#else //FFX_HLSL_SM>=62 + +#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef min16##BaseComponentType TypeName; +#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) FFX_MIN16_SCALAR( TypeName, BaseComponentType ); +#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ); +#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ); + +#endif //FFX_HLSL_SM>=62 + +#else //FFX_HALF + +#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType TypeName; +#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType TypeName; +#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#endif //FFX_HALF + +#if defined(FFX_GPU) +// Common typedefs: +#if defined(FFX_HLSL) +FFX_MIN16_SCALAR( FFX_MIN16_F , float ); +FFX_MIN16_VECTOR( FFX_MIN16_F2, float, 2 ); +FFX_MIN16_VECTOR( FFX_MIN16_F3, float, 3 ); +FFX_MIN16_VECTOR( FFX_MIN16_F4, float, 4 ); + +FFX_MIN16_SCALAR( FFX_MIN16_I, int ); +FFX_MIN16_VECTOR( FFX_MIN16_I2, int, 2 ); +FFX_MIN16_VECTOR( FFX_MIN16_I3, int, 3 ); +FFX_MIN16_VECTOR( FFX_MIN16_I4, int, 4 ); + +FFX_MIN16_SCALAR( FFX_MIN16_U, uint ); +FFX_MIN16_VECTOR( FFX_MIN16_U2, uint, 2 ); +FFX_MIN16_VECTOR( FFX_MIN16_U3, uint, 3 ); +FFX_MIN16_VECTOR( FFX_MIN16_U4, uint, 4 ); + +FFX_16BIT_SCALAR( FFX_F16_t , float ); +FFX_16BIT_VECTOR( FFX_F16_t2, float, 2 ); +FFX_16BIT_VECTOR( FFX_F16_t3, float, 3 ); +FFX_16BIT_VECTOR( FFX_F16_t4, float, 4 ); + +FFX_16BIT_SCALAR( FFX_I16_t, int ); +FFX_16BIT_VECTOR( FFX_I16_t2, int, 2 ); +FFX_16BIT_VECTOR( FFX_I16_t3, int, 3 ); +FFX_16BIT_VECTOR( FFX_I16_t4, int, 4 ); + +FFX_16BIT_SCALAR( FFX_U16_t, uint ); +FFX_16BIT_VECTOR( FFX_U16_t2, uint, 2 ); +FFX_16BIT_VECTOR( FFX_U16_t3, uint, 3 ); +FFX_16BIT_VECTOR( FFX_U16_t4, uint, 4 ); + +#define TYPEDEF_MIN16_TYPES(Prefix) \ +typedef FFX_MIN16_F Prefix##_F; \ +typedef FFX_MIN16_F2 Prefix##_F2; \ +typedef FFX_MIN16_F3 Prefix##_F3; \ +typedef FFX_MIN16_F4 Prefix##_F4; \ +typedef FFX_MIN16_I Prefix##_I; \ +typedef FFX_MIN16_I2 Prefix##_I2; \ +typedef FFX_MIN16_I3 Prefix##_I3; \ +typedef FFX_MIN16_I4 Prefix##_I4; \ +typedef FFX_MIN16_U Prefix##_U; \ +typedef FFX_MIN16_U2 Prefix##_U2; \ +typedef FFX_MIN16_U3 Prefix##_U3; \ +typedef FFX_MIN16_U4 Prefix##_U4; + +#define TYPEDEF_16BIT_TYPES(Prefix) \ +typedef FFX_16BIT_F Prefix##_F; \ +typedef FFX_16BIT_F2 Prefix##_F2; \ +typedef FFX_16BIT_F3 Prefix##_F3; \ +typedef FFX_16BIT_F4 Prefix##_F4; \ +typedef FFX_16BIT_I Prefix##_I; \ +typedef FFX_16BIT_I2 Prefix##_I2; \ +typedef FFX_16BIT_I3 Prefix##_I3; \ +typedef FFX_16BIT_I4 Prefix##_I4; \ +typedef FFX_16BIT_U Prefix##_U; \ +typedef FFX_16BIT_U2 Prefix##_U2; \ +typedef FFX_16BIT_U3 Prefix##_U3; \ +typedef FFX_16BIT_U4 Prefix##_U4; + +#define TYPEDEF_FULL_PRECISION_TYPES(Prefix) \ +typedef FfxFloat32 Prefix##_F; \ +typedef FfxFloat32x2 Prefix##_F2; \ +typedef FfxFloat32x3 Prefix##_F3; \ +typedef FfxFloat32x4 Prefix##_F4; \ +typedef FfxInt32 Prefix##_I; \ +typedef FfxInt32x2 Prefix##_I2; \ +typedef FfxInt32x3 Prefix##_I3; \ +typedef FfxInt32x4 Prefix##_I4; \ +typedef FfxUInt32 Prefix##_U; \ +typedef FfxUInt32x2 Prefix##_U2; \ +typedef FfxUInt32x3 Prefix##_U3; \ +typedef FfxUInt32x4 Prefix##_U4; +#endif // #if defined(FFX_HLSL) + +#if defined(FFX_GLSL) + +#if FFX_HALF + +#define FFX_MIN16_F float16_t +#define FFX_MIN16_F2 f16vec2 +#define FFX_MIN16_F3 f16vec3 +#define FFX_MIN16_F4 f16vec4 + +#define FFX_MIN16_I int16_t +#define FFX_MIN16_I2 i16vec2 +#define FFX_MIN16_I3 i16vec3 +#define FFX_MIN16_I4 i16vec4 + +#define FFX_MIN16_U uint16_t +#define FFX_MIN16_U2 u16vec2 +#define FFX_MIN16_U3 u16vec3 +#define FFX_MIN16_U4 u16vec4 + +#define FFX_16BIT_F float16_t +#define FFX_16BIT_F2 f16vec2 +#define FFX_16BIT_F3 f16vec3 +#define FFX_16BIT_F4 f16vec4 + +#define FFX_16BIT_I int16_t +#define FFX_16BIT_I2 i16vec2 +#define FFX_16BIT_I3 i16vec3 +#define FFX_16BIT_I4 i16vec4 + +#define FFX_16BIT_U uint16_t +#define FFX_16BIT_U2 u16vec2 +#define FFX_16BIT_U3 u16vec3 +#define FFX_16BIT_U4 u16vec4 + +#else // FFX_HALF + +#define FFX_MIN16_F float +#define FFX_MIN16_F2 vec2 +#define FFX_MIN16_F3 vec3 +#define FFX_MIN16_F4 vec4 + +#define FFX_MIN16_I int +#define FFX_MIN16_I2 ivec2 +#define FFX_MIN16_I3 ivec3 +#define FFX_MIN16_I4 ivec4 + +#define FFX_MIN16_U uint +#define FFX_MIN16_U2 uvec2 +#define FFX_MIN16_U3 uvec3 +#define FFX_MIN16_U4 uvec4 + +#define FFX_16BIT_F float +#define FFX_16BIT_F2 vec2 +#define FFX_16BIT_F3 vec3 +#define FFX_16BIT_F4 vec4 + +#define FFX_16BIT_I int +#define FFX_16BIT_I2 ivec2 +#define FFX_16BIT_I3 ivec3 +#define FFX_16BIT_I4 ivec4 + +#define FFX_16BIT_U uint +#define FFX_16BIT_U2 uvec2 +#define FFX_16BIT_U3 uvec3 +#define FFX_16BIT_U4 uvec4 + +#endif // FFX_HALF + +#endif // #if defined(FFX_GLSL) + +#endif // #if defined(FFX_GPU) +#endif // #ifndef FFX_COMMON_TYPES_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h new file mode 100644 index 000000000..d1ed14419 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h @@ -0,0 +1,80 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup FfxGPU GPU +/// The FidelityFX SDK GPU References +/// +/// @ingroup ffxSDK + +/// @defgroup FfxHLSL HLSL References +/// FidelityFX SDK HLSL GPU References +/// +/// @ingroup FfxGPU + +/// @defgroup FfxGLSL GLSL References +/// FidelityFX SDK GLSL GPU References +/// +/// @ingroup FfxGPU + +/// @defgroup FfxGPUEffects FidelityFX GPU References +/// FidelityFX Effect GPU Reference Documentation +/// +/// @ingroup FfxGPU + +/// @defgroup GPUCore GPU Core +/// GPU defines and functions +/// +/// @ingroup FfxGPU + +#if !defined(FFX_CORE_H) +#define FFX_CORE_H + +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic push +#pragma dxc diagnostic ignored "-Wambig-lit-shift" +#endif //__hlsl_dx_compiler + +#include "ffx_common_types.h" + +#if defined(FFX_CPU) + #include "ffx_core_cpu.h" +#endif // #if defined(FFX_CPU) + +#if defined(FFX_GLSL) && defined(FFX_GPU) + #include "ffx_core_glsl.h" +#endif // #if defined(FFX_GLSL) && defined(FFX_GPU) + +#if defined(FFX_HLSL) && defined(FFX_GPU) + #include "ffx_core_hlsl.h" +#endif // #if defined(FFX_HLSL) && defined(FFX_GPU) + +#if defined(FFX_GPU) + #include "ffx_core_gpu_common.h" + #include "ffx_core_gpu_common_half.h" + #include "ffx_core_portability.h" +#endif // #if defined(FFX_GPU) + +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic pop +#endif //__hlsl_dx_compiler + +#endif // #if !defined(FFX_CORE_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h new file mode 100644 index 000000000..c8dccacdb --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h @@ -0,0 +1,1916 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup GLSLCore GLSL Core +/// GLSL core defines and functions +/// +/// @ingroup FfxGLSL + +/// A define for abstracting select functionality for pre/post HLSL 21 +/// +/// @ingroup GLSLCore +#define FFX_SELECT(cond, arg1, arg2) cond ? arg1 : arg2 + +/// A define for abstracting shared memory between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_GROUPSHARED shared + +/// A define for abstracting compute memory barriers between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_GROUP_MEMORY_BARRIER groupMemoryBarrier(); barrier() + +/// A define for abstracting compute atomic additions between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_ADD(x, y) atomicAdd(x, y) + +/// A define for abstracting compute atomic additions between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_ADD_RETURN(x, y, r) r = atomicAdd(x, y) + +/// A define for abstracting compute atomic OR between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_OR(x, y) atomicOr(x, y) + +/// A define for abstracting compute atomic min between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_MIN(x, y) atomicMin(x, y) + +/// A define for abstracting compute atomic max between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_MAX(x, y) atomicMax(x, y) + +/// A define added to accept static markup on functions to aid CPU/GPU portability of code. +/// +/// @ingroup GLSLCore +#define FFX_STATIC + +/// A define for abstracting loop unrolling between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_UNROLL + +/// A define for abstracting a 'greater than' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_GREATER_THAN(x, y) greaterThan(x, y) + +/// A define for abstracting a 'greater than or equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_GREATER_THAN_EQUAL(x, y) greaterThanEqual(x, y) + +/// A define for abstracting a 'less than' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_LESS_THAN(x, y) lessThan(x, y) + +/// A define for abstracting a 'less than or equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_LESS_THAN_EQUAL(x, y) lessThanEqual(x, y) + +/// A define for abstracting an 'equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_EQUAL(x, y) equal(x, y) + +/// A define for abstracting a 'not equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_NOT_EQUAL(x, y) notEqual(x, y) + +/// A define for abstracting matrix multiply operations between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_MATRIX_MULTIPLY(a, b) (a * b) + +/// A define for abstracting vector transformations between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_TRANSFORM_VECTOR(a, b) (a * b) + +/// A define for abstracting modulo operations between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_MODULO(a, b) (mod(a, b)) + +/// Broadcast a scalar value to a 1-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32(x) FfxFloat32(x) + +/// Broadcast a scalar value to a 2-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32X2(x) FfxFloat32x2(FfxFloat32(x)) + +/// Broadcast a scalar value to a 3-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32X3(x) FfxFloat32x3(FfxFloat32(x)) + +/// Broadcast a scalar value to a 4-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32X4(x) FfxFloat32x4(FfxFloat32(x)) + +/// Broadcast a scalar value to a 1-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32(x) FfxUInt32(x) + +/// Broadcast a scalar value to a 2-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32X2(x) FfxUInt32x2(FfxUInt32(x)) + +/// Broadcast a scalar value to a 3-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32X3(x) FfxUInt32x3(FfxUInt32(x)) + +/// Broadcast a scalar value to a 4-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32X4(x) FfxUInt32x4(FfxUInt32(x)) + +/// Broadcast a scalar value to a 1-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32(x) FfxInt32(x) + +/// Broadcast a scalar value to a 2-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32X2(x) FfxInt32x2(FfxInt32(x)) + +/// Broadcast a scalar value to a 3-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32X3(x) FfxInt32x3(FfxInt32(x)) + +/// Broadcast a scalar value to a 4-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32X4(x) FfxInt32x4(FfxInt32(x)) + +/// Broadcast a scalar value to a 1-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16(x) FFX_MIN16_F(x) + +/// Broadcast a scalar value to a 2-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16X2(x) FFX_MIN16_F2(FFX_MIN16_F(x)) + +/// Broadcast a scalar value to a 3-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16X3(x) FFX_MIN16_F3(FFX_MIN16_F(x)) + +/// Broadcast a scalar value to a 4-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16X4(x) FFX_MIN16_F4(FFX_MIN16_F(x)) + +/// Broadcast a scalar value to a 1-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16(x) FFX_MIN16_U(x) + +/// Broadcast a scalar value to a 2-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16X2(x) FFX_MIN16_U2(FFX_MIN16_U(x)) + +/// Broadcast a scalar value to a 3-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16X3(x) FFX_MIN16_U3(FFX_MIN16_U(x)) + +/// Broadcast a scalar value to a 4-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16X4(x) FFX_MIN16_U4(FFX_MIN16_U(x)) + +/// Broadcast a scalar value to a 1-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16(x) FFX_MIN16_I(x) + +/// Broadcast a scalar value to a 2-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16X2(x) FFX_MIN16_I2(FFX_MIN16_I(x)) + +/// Broadcast a scalar value to a 3-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16X3(x) FFX_MIN16_I3(FFX_MIN16_I(x)) + +/// Broadcast a scalar value to a 4-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16X4(x) FFX_MIN16_I4(FFX_MIN16_I(x)) + + #extension GL_EXT_shader_explicit_arithmetic_types : require +#if !defined(FFX_SKIP_EXT) +#if FFX_HALF + #extension GL_EXT_shader_16bit_storage : require +#endif // FFX_HALF + +#if defined(FFX_LONG) + #extension GL_ARB_gpu_shader_int64 : require + #extension GL_NV_shader_atomic_int64 : require +#endif // #if defined(FFX_LONG) + +#if defined(FFX_WAVE) + #extension GL_KHR_shader_subgroup_arithmetic : require + #extension GL_KHR_shader_subgroup_ballot : require + #extension GL_KHR_shader_subgroup_quad : require + #extension GL_KHR_shader_subgroup_shuffle : require +#endif // #if defined(FFX_WAVE) +#endif // #if !defined(FFX_SKIP_EXT) + +// Forward declarations +FfxFloat32 ffxSqrt(FfxFloat32 x); +FfxFloat32x2 ffxSqrt(FfxFloat32x2 x); +FfxFloat32x3 ffxSqrt(FfxFloat32x3 x); +FfxFloat32x4 ffxSqrt(FfxFloat32x4 x); + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxAsFloat(FfxUInt32 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxAsFloat(FfxUInt32x2 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxAsFloat(FfxUInt32x3 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxAsFloat(FfxUInt32x4 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxAsUInt32(FfxFloat32 x) +{ + return floatBitsToUint(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxAsUInt32(FfxFloat32x2 x) +{ + return floatBitsToUint(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxAsUInt32(FfxFloat32x3 x) +{ + return floatBitsToUint(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxAsUInt32(FfxFloat32x4 x) +{ + return floatBitsToUint(x); +} + +/// Pack 2x32-bit floating point values in a single 32bit value. +/// +/// This function first converts each component of value into their nearest 16-bit floating +/// point representation, and then stores the X and Y components in the lower and upper 16 bits of the +/// 32bit unsigned integer respectively. +/// +/// @param [in] value A 2-dimensional floating point value to convert and pack. +/// +/// @returns +/// A packed 32bit value containing 2 16bit floating point values. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxPackHalf2x16(FfxFloat32x2 value) +{ + return packHalf2x16(value); +} + +/// Convert a 32bit IEEE 754 floating point value to its nearest 16bit equivalent. +/// +/// @param [in] value The value to convert. +/// +/// @returns +/// The nearest 16bit equivalent of value. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxF32ToF16(FfxFloat32 value) +{ + return packHalf2x16(FfxFloat32x2(value, 0.0)); +} + +/// Broadcast a scalar value to a 2-dimensional floating point vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 2-dimensional floating point vector with value in each component. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxBroadcast2(FfxFloat32 value) +{ + return FfxFloat32x2(value, value); +} + +/// Broadcast a scalar value to a 3-dimensional floating point vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 3-dimensional floating point vector with value in each component. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxBroadcast3(FfxFloat32 value) +{ + return FfxFloat32x3(value, value, value); +} + +/// Broadcast a scalar value to a 4-dimensional floating point vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 4-dimensional floating point vector with value in each component. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxBroadcast4(FfxFloat32 value) +{ + return FfxFloat32x4(value, value, value, value); +} + +/// Broadcast a scalar value to a 2-dimensional signed integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 2-dimensional signed integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxInt32x2 ffxBroadcast2(FfxInt32 value) +{ + return FfxInt32x2(value, value); +} + +/// Broadcast a scalar value to a 3-dimensional signed integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 3-dimensional signed integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxInt32x3 ffxBroadcast3(FfxInt32 value) +{ + return FfxInt32x3(value, value, value); +} + +/// Broadcast a scalar value to a 4-dimensional signed integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 4-dimensional signed integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxInt32x4 ffxBroadcast4(FfxInt32 value) +{ + return FfxInt32x4(value, value, value, value); +} + +/// Broadcast a scalar value to a 2-dimensional unsigned integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 2-dimensional unsigned integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxBroadcast2(FfxUInt32 value) +{ + return FfxUInt32x2(value, value); +} + +/// Broadcast a scalar value to a 3-dimensional unsigned integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 3-dimensional unsigned integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxBroadcast3(FfxUInt32 value) +{ + return FfxUInt32x3(value, value, value); +} + +/// Broadcast a scalar value to a 4-dimensional unsigned integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 4-dimensional unsigned integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxBroadcast4(FfxUInt32 value) +{ + return FfxUInt32x4(value, value, value, value); +} + +/// +/// +/// @ingroup GLSLCore +FfxUInt32 ffxBitfieldExtract(FfxUInt32 src, FfxUInt32 off, FfxUInt32 bits) +{ + return bitfieldExtract(src, FfxInt32(off), FfxInt32(bits)); +} + +/// +/// +/// @ingroup GLSLCore +FfxUInt32 ffxBitfieldInsert(FfxUInt32 src, FfxUInt32 ins, FfxUInt32 mask) +{ + return (ins & mask) | (src & (~mask)); +} + +// Proxy for V_BFI_B32 where the 'mask' is set as 'bits', 'mask=(1<mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxLerp(FfxFloat32 x, FfxFloat32 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxLerp(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxLerp(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxLerp(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxLerp(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxLerp(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxLerp(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 t) +{ + return mix(x, y, t); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxMax3(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxMax3(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxMax3(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxMax3(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxMax3(FfxUInt32 x, FfxUInt32 y, FfxUInt32 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxMax3(FfxUInt32x2 x, FfxUInt32x2 y, FfxUInt32x2 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxMax3(FfxUInt32x3 x, FfxUInt32x3 y, FfxUInt32x3 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxMax3(FfxUInt32x4 x, FfxUInt32x4 y, FfxUInt32x4 z) +{ + return max(x, max(y, z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxMed3(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxMed3(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxMed3(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxMed3(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32 ffxMed3(FfxInt32 x, FfxInt32 y, FfxInt32 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32x2 ffxMed3(FfxInt32x2 x, FfxInt32x2 y, FfxInt32x2 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32x3 ffxMed3(FfxInt32x3 x, FfxInt32x3 y, FfxInt32x3 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32x4 ffxMed3(FfxInt32x4 x, FfxInt32x4 y, FfxInt32x4 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN and RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxMin3(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxMin3(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxMin3(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxMin3(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxMin3(FfxUInt32 x, FfxUInt32 y, FfxUInt32 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxMin3(FfxUInt32x2 x, FfxUInt32x2 y, FfxUInt32x2 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxMin3(FfxUInt32x3 x, FfxUInt32x3 y, FfxUInt32x3 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxMin3(FfxUInt32x4 x, FfxUInt32x4 y, FfxUInt32x4 z) +{ + return min(x, min(y, z)); +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxReciprocal(FfxFloat32 x) +{ + return FfxFloat32(1.0) / x; +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxReciprocal(FfxFloat32x2 x) +{ + return ffxBroadcast2(1.0) / x; +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxReciprocal(FfxFloat32x3 x) +{ + return ffxBroadcast3(1.0) / x; +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxReciprocal(FfxFloat32x4 x) +{ + return ffxBroadcast4(1.0) / x; +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxRsqrt(FfxFloat32 x) +{ + return FfxFloat32(1.0) / ffxSqrt(x); +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxRsqrt(FfxFloat32x2 x) +{ + return ffxBroadcast2(1.0) / ffxSqrt(x); +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxRsqrt(FfxFloat32x3 x) +{ + return ffxBroadcast3(1.0) / ffxSqrt(x); +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 rsqrt(FfxFloat32x4 x) +{ + return ffxBroadcast4(1.0) / ffxSqrt(x); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxSaturate(FfxFloat32 x) +{ + return clamp(x, FfxFloat32(0.0), FfxFloat32(1.0)); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxSaturate(FfxFloat32x2 x) +{ + return clamp(x, ffxBroadcast2(0.0), ffxBroadcast2(1.0)); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxSaturate(FfxFloat32x3 x) +{ + return clamp(x, ffxBroadcast3(0.0), ffxBroadcast3(1.0)); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxSaturate(FfxFloat32x4 x) +{ + return clamp(x, ffxBroadcast4(0.0), ffxBroadcast4(1.0)); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxFract(FfxFloat32 x) +{ + return fract(x); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxFract(FfxFloat32x2 x) +{ + return fract(x); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxFract(FfxFloat32x3 x) +{ + return fract(x); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxFract(FfxFloat32x4 x) +{ + return fract(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxRound(FfxFloat32 x) +{ + return roundEven(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxRound(FfxFloat32x2 x) +{ + return roundEven(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxRound(FfxFloat32x3 x) +{ + return roundEven(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxRound(FfxFloat32x4 x) +{ + return roundEven(x); +} + +FfxUInt32 ffxAShrSU1(FfxUInt32 a, FfxUInt32 b) +{ + return FfxUInt32(FfxInt32(a) >> FfxInt32(b)); +} + +FfxUInt32 ffxPackF32(FfxFloat32x2 v){ + return packHalf2x16(v); +} + +FfxFloat32x2 ffxUnpackF32(FfxUInt32 u){ + return unpackHalf2x16(u); +} + +FfxUInt32x2 ffxPackF32x2(FfxFloat32x4 v){ + return FfxUInt32x2(ffxPackF32(v.xy), ffxPackF32(v.zw)); +} + +FfxFloat32x4 ffxUnpackF32x2(FfxUInt32x2 a){ + return FfxFloat32x4(ffxUnpackF32(a.x), ffxUnpackF32(a.y)); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32 ffxInvertSafe(FfxFloat32 v){ + FfxFloat32 s = sign(v); + FfxFloat32 s2 = s*s; + return s2/(v + s2 - 1.0); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32x2 ffxInvertSafe(FfxFloat32x2 v){ + FfxFloat32x2 s = sign(v); + FfxFloat32x2 s2 = s*s; + return s2/(v + s2 - FfxFloat32x2(1.0, 1.0)); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32x3 ffxInvertSafe(FfxFloat32x3 v){ + FfxFloat32x3 s = sign(v); + FfxFloat32x3 s2 = s*s; + return s2/(v + s2 - FfxFloat32x3(1.0, 1.0, 1.0)); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32x4 ffxInvertSafe(FfxFloat32x4 v){ + FfxFloat32x4 s = sign(v); + FfxFloat32x4 s2 = s*s; + return s2/(v + s2 - FfxFloat32x4(1.0, 1.0, 1.0, 1.0)); +} +#if FFX_HALF +#define FFX_UINT32_TO_FLOAT16X2(x) unpackFloat2x16(FfxUInt32(x)) + +FfxUInt32 ffxPackF16(FfxFloat16x2 v){ + return packHalf2x16(v); +} + +FfxFloat16x2 ffxUnpackF16(FfxUInt32 u){ + return FfxFloat16x2(unpackHalf2x16(u)); +} + +FfxFloat16x4 ffxUint32x2ToFloat16x4(FfxUInt32x2 x) +{ + return FfxFloat16x4(unpackFloat2x16(x.x), unpackFloat2x16(x.y)); +} +#define FFX_UINT32X2_TO_FLOAT16X4(x) ffxUint32x2ToFloat16x4(FfxUInt32x2(x)) +#define FFX_UINT32_TO_UINT16X2(x) unpackUint2x16(FfxUInt32(x)) +#define FFX_UINT32X2_TO_UINT16X4(x) unpackUint4x16(pack64(FfxUInt32x2(x))) +//------------------------------------------------------------------------------------------------------------------------------ +#define FFX_FLOAT16X2_TO_UINT32(x) packFloat2x16(FfxFloat16x2(x)) +FfxUInt32x2 ffxFloat16x4ToUint32x2(FfxFloat16x4 x) +{ + return FfxUInt32x2(packFloat2x16(x.xy), packFloat2x16(x.zw)); +} +#define FFX_FLOAT16X4_TO_UINT32X2(x) ffxFloat16x4ToUint32x2(FfxFloat16x4(x)) +#define FFX_UINT16X2_TO_UINT32(x) packUint2x16(FfxUInt16x2(x)) +#define FFX_UINT16X4_TO_UINT32X2(x) unpack32(packUint4x16(FfxUInt16x4(x))) +//============================================================================================================================== +#define FFX_TO_UINT16(x) halfBitsToUint16(FfxFloat16(x)) +#define FFX_TO_UINT16X2(x) halfBitsToUint16(FfxFloat16x2(x)) +#define FFX_TO_UINT16X3(x) halfBitsToUint16(FfxFloat16x3(x)) +#define FFX_TO_UINT16X4(x) halfBitsToUint16(FfxFloat16x4(x)) +//------------------------------------------------------------------------------------------------------------------------------ +#define FFX_TO_FLOAT16(x) uint16BitsToHalf(FfxUInt16(x)) +#define FFX_TO_FLOAT16X2(x) uint16BitsToHalf(FfxUInt16x2(x)) +#define FFX_TO_FLOAT16X3(x) uint16BitsToHalf(FfxUInt16x3(x)) +#define FFX_TO_FLOAT16X4(x) uint16BitsToHalf(FfxUInt16x4(x)) +//============================================================================================================================== +FfxFloat16 ffxBroadcastFloat16(FfxFloat16 a) +{ + return FfxFloat16(a); +} +FfxFloat16x2 ffxBroadcastFloat16x2(FfxFloat16 a) +{ + return FfxFloat16x2(a, a); +} +FfxFloat16x3 ffxBroadcastFloat16x3(FfxFloat16 a) +{ + return FfxFloat16x3(a, a, a); +} +FfxFloat16x4 ffxBroadcastFloat16x4(FfxFloat16 a) +{ + return FfxFloat16x4(a, a, a, a); +} +#define FFX_BROADCAST_FLOAT16(a) FfxFloat16(a) +#define FFX_BROADCAST_FLOAT16X2(a) FfxFloat16x2(FfxFloat16(a)) +#define FFX_BROADCAST_FLOAT16X3(a) FfxFloat16x3(FfxFloat16(a)) +#define FFX_BROADCAST_FLOAT16X4(a) FfxFloat16x4(FfxFloat16(a)) +//------------------------------------------------------------------------------------------------------------------------------ +FfxInt16 ffxBroadcastInt16(FfxInt16 a) +{ + return FfxInt16(a); +} +FfxInt16x2 ffxBroadcastInt16x2(FfxInt16 a) +{ + return FfxInt16x2(a, a); +} +FfxInt16x3 ffxBroadcastInt16x3(FfxInt16 a) +{ + return FfxInt16x3(a, a, a); +} +FfxInt16x4 ffxBroadcastInt16x4(FfxInt16 a) +{ + return FfxInt16x4(a, a, a, a); +} +#define FFX_BROADCAST_INT16(a) FfxInt16(a) +#define FFX_BROADCAST_INT16X2(a) FfxInt16x2(FfxInt16(a)) +#define FFX_BROADCAST_INT16X3(a) FfxInt16x3(FfxInt16(a)) +#define FFX_BROADCAST_INT16X4(a) FfxInt16x4(FfxInt16(a)) +//------------------------------------------------------------------------------------------------------------------------------ +FfxUInt16 ffxBroadcastUInt16(FfxUInt16 a) +{ + return FfxUInt16(a); +} +FfxUInt16x2 ffxBroadcastUInt16x2(FfxUInt16 a) +{ + return FfxUInt16x2(a, a); +} +FfxUInt16x3 ffxBroadcastUInt16x3(FfxUInt16 a) +{ + return FfxUInt16x3(a, a, a); +} +FfxUInt16x4 ffxBroadcastUInt16x4(FfxUInt16 a) +{ + return FfxUInt16x4(a, a, a, a); +} +#define FFX_BROADCAST_UINT16(a) FfxUInt16(a) +#define FFX_BROADCAST_UINT16X2(a) FfxUInt16x2(FfxUInt16(a)) +#define FFX_BROADCAST_UINT16X3(a) FfxUInt16x3(FfxUInt16(a)) +#define FFX_BROADCAST_UINT16X4(a) FfxUInt16x4(FfxUInt16(a)) +//============================================================================================================================== +FfxUInt16 ffxAbsHalf(FfxUInt16 a) +{ + return FfxUInt16(abs(FfxInt16(a))); +} +FfxUInt16x2 ffxAbsHalf(FfxUInt16x2 a) +{ + return FfxUInt16x2(abs(FfxInt16x2(a))); +} +FfxUInt16x3 ffxAbsHalf(FfxUInt16x3 a) +{ + return FfxUInt16x3(abs(FfxInt16x3(a))); +} +FfxUInt16x4 ffxAbsHalf(FfxUInt16x4 a) +{ + return FfxUInt16x4(abs(FfxInt16x4(a))); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxClampHalf(FfxFloat16 x, FfxFloat16 n, FfxFloat16 m) +{ + return clamp(x, n, m); +} +FfxFloat16x2 ffxClampHalf(FfxFloat16x2 x, FfxFloat16x2 n, FfxFloat16x2 m) +{ + return clamp(x, n, m); +} +FfxFloat16x3 ffxClampHalf(FfxFloat16x3 x, FfxFloat16x3 n, FfxFloat16x3 m) +{ + return clamp(x, n, m); +} +FfxFloat16x4 ffxClampHalf(FfxFloat16x4 x, FfxFloat16x4 n, FfxFloat16x4 m) +{ + return clamp(x, n, m); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxFract(FfxFloat16 x) +{ + return fract(x); +} +FfxFloat16x2 ffxFract(FfxFloat16x2 x) +{ + return fract(x); +} +FfxFloat16x3 ffxFract(FfxFloat16x3 x) +{ + return fract(x); +} +FfxFloat16x4 ffxFract(FfxFloat16x4 x) +{ + return fract(x); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxLerp(FfxFloat16 x, FfxFloat16 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x2 ffxLerp(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x2 ffxLerp(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 a) +{ + return mix(x, y, a); +} +FfxFloat16x3 ffxLerp(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 a) +{ + return mix(x, y, a); +} +FfxFloat16x3 ffxLerp(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x4 ffxLerp(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x4 ffxLerp(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 a) +{ + return mix(x, y, a); +} +//------------------------------------------------------------------------------------------------------------------------------ +// No packed version of ffxMax3. +FfxFloat16 ffxMax3Half(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return max(x, max(y, z)); +} +FfxFloat16x2 ffxMax3Half(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return max(x, max(y, z)); +} +FfxFloat16x3 ffxMax3Half(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return max(x, max(y, z)); +} +FfxFloat16x4 ffxMax3Half(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return max(x, max(y, z)); +} +//------------------------------------------------------------------------------------------------------------------------------ +// No packed version of ffxMin3. +FfxFloat16 ffxMin3Half(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return min(x, min(y, z)); +} +FfxFloat16x2 ffxMin3Half(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return min(x, min(y, z)); +} +FfxFloat16x3 ffxMin3Half(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return min(x, min(y, z)); +} +FfxFloat16x4 ffxMin3Half(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return min(x, min(y, z)); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxMed3Half(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +FfxFloat16x2 ffxMed3Half(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +FfxFloat16x3 ffxMed3Half(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +FfxFloat16x4 ffxMed3Half(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxReciprocalHalf(FfxFloat16 x) +{ + return FFX_BROADCAST_FLOAT16(1.0) / x; +} +FfxFloat16x2 ffxReciprocalHalf(FfxFloat16x2 x) +{ + return FFX_BROADCAST_FLOAT16X2(1.0) / x; +} +FfxFloat16x3 ffxReciprocalHalf(FfxFloat16x3 x) +{ + return FFX_BROADCAST_FLOAT16X3(1.0) / x; +} +FfxFloat16x4 ffxReciprocalHalf(FfxFloat16x4 x) +{ + return FFX_BROADCAST_FLOAT16X4(1.0) / x; +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxReciprocalSquareRootHalf(FfxFloat16 x) +{ + return FFX_BROADCAST_FLOAT16(1.0) / sqrt(x); +} +FfxFloat16x2 ffxReciprocalSquareRootHalf(FfxFloat16x2 x) +{ + return FFX_BROADCAST_FLOAT16X2(1.0) / sqrt(x); +} +FfxFloat16x3 ffxReciprocalSquareRootHalf(FfxFloat16x3 x) +{ + return FFX_BROADCAST_FLOAT16X3(1.0) / sqrt(x); +} +FfxFloat16x4 ffxReciprocalSquareRootHalf(FfxFloat16x4 x) +{ + return FFX_BROADCAST_FLOAT16X4(1.0) / sqrt(x); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxSaturate(FfxFloat16 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16(0.0), FFX_BROADCAST_FLOAT16(1.0)); +} +FfxFloat16x2 ffxSaturate(FfxFloat16x2 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16X2(0.0), FFX_BROADCAST_FLOAT16X2(1.0)); +} +FfxFloat16x3 ffxSaturate(FfxFloat16x3 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16X3(0.0), FFX_BROADCAST_FLOAT16X3(1.0)); +} +FfxFloat16x4 ffxSaturate(FfxFloat16x4 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16X4(0.0), FFX_BROADCAST_FLOAT16X4(1.0)); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxUInt16 ffxBitShiftRightHalf(FfxUInt16 a, FfxUInt16 b) +{ + return FfxUInt16(FfxInt16(a) >> FfxInt16(b)); +} +FfxUInt16x2 ffxBitShiftRightHalf(FfxUInt16x2 a, FfxUInt16x2 b) +{ + return FfxUInt16x2(FfxInt16x2(a) >> FfxInt16x2(b)); +} +FfxUInt16x3 ffxBitShiftRightHalf(FfxUInt16x3 a, FfxUInt16x3 b) +{ + return FfxUInt16x3(FfxInt16x3(a) >> FfxInt16x3(b)); +} +FfxUInt16x4 ffxBitShiftRightHalf(FfxUInt16x4 a, FfxUInt16x4 b) +{ + return FfxUInt16x4(FfxInt16x4(a) >> FfxInt16x4(b)); +} +#endif // FFX_HALF + +#if defined(FFX_WAVE) +// Where 'x' must be a compile time literal. +FfxFloat32 ffxWaveXorF1(FfxFloat32 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxFloat32x2 ffxWaveXorF2(FfxFloat32x2 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxFloat32x3 ffxWaveXorF3(FfxFloat32x3 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxFloat32x4 ffxWaveXorF4(FfxFloat32x4 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32 ffxWaveXorU1(FfxUInt32 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32x2 ffxWaveXorU2(FfxUInt32x2 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32x3 ffxWaveXorU3(FfxUInt32x3 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32x4 ffxWaveXorU4(FfxUInt32x4 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxBoolean ffxWaveIsFirstLane() +{ + return subgroupElect(); +} +FfxUInt32 ffxWaveLaneIndex() +{ + return gl_SubgroupInvocationID; +} +FfxBoolean ffxWaveReadAtLaneIndexB1(FfxBoolean v, FfxUInt32 x ) +{ + return subgroupShuffle(v, x); +} +FfxUInt32 ffxWavePrefixCountBits(FfxBoolean v) +{ + return subgroupBallotExclusiveBitCount(subgroupBallot(v)); +} +FfxUInt32 ffxWaveActiveCountBits(FfxBoolean v) +{ + return subgroupBallotBitCount(subgroupBallot(v)); +} +FfxUInt32 ffxWaveReadLaneFirstU1(FfxUInt32 v) +{ + return subgroupBroadcastFirst(v); +} +FfxUInt32x2 ffxWaveReadLaneFirstU2(FfxUInt32x2 v) +{ + return subgroupBroadcastFirst(v); +} +FfxBoolean ffxWaveReadLaneFirstB1(FfxBoolean v) +{ + return subgroupBroadcastFirst(v); +} +FfxUInt32 ffxWaveOr(FfxUInt32 a) +{ + return subgroupOr(a); +} +FfxUInt32 ffxWaveMin(FfxUInt32 a) +{ + return subgroupMin(a); +} +FfxFloat32 ffxWaveMin(FfxFloat32 a) +{ + return subgroupMin(a); +} +FfxUInt32 ffxWaveMax(FfxUInt32 a) +{ + return subgroupMax(a); +} +FfxFloat32 ffxWaveMax(FfxFloat32 a) +{ + return subgroupMax(a); +} +FfxUInt32 ffxWaveSum(FfxUInt32 a) +{ + return subgroupAdd(a); +} +FfxFloat32 ffxWaveSum(FfxFloat32 a) +{ + return subgroupAdd(a); +} +FfxUInt32 ffxWaveLaneCount() +{ + return gl_SubgroupSize; +} +#if defined(FFX_WAVE_ALL_TRUE) +FfxBoolean ffxWaveAllTrue(FfxBoolean v) +{ + return subgroupAll(v); +} +#endif +FfxFloat32 ffxQuadReadX(FfxFloat32 v) +{ + return subgroupQuadSwapHorizontal(v); +} +FfxFloat32x2 ffxQuadReadX(FfxFloat32x2 v) +{ + return subgroupQuadSwapHorizontal(v); +} +FfxFloat32 ffxQuadReadY(FfxFloat32 v) +{ + return subgroupQuadSwapVertical(v); +} +FfxFloat32x2 ffxQuadReadY(FfxFloat32x2 v) +{ + return subgroupQuadSwapVertical(v); +} + +//------------------------------------------------------------------------------------------------------------------------------ +#if FFX_HALF +FfxFloat16x2 ffxWaveXorFloat16x2(FfxFloat16x2 v, FfxUInt32 x) +{ + return FFX_UINT32_TO_FLOAT16X2(subgroupShuffleXor(FFX_FLOAT16X2_TO_UINT32(v), x)); +} +FfxFloat16x4 ffxWaveXorFloat16x4(FfxFloat16x4 v, FfxUInt32 x) +{ + return FFX_UINT32X2_TO_FLOAT16X4(subgroupShuffleXor(FFX_FLOAT16X4_TO_UINT32X2(v), x)); +} +FfxUInt16x2 ffxWaveXorUint16x2(FfxUInt16x2 v, FfxUInt32 x) +{ + return FFX_UINT32_TO_UINT16X2(subgroupShuffleXor(FFX_UINT16X2_TO_UINT32(v), x)); +} +FfxUInt16x4 ffxWaveXorUint16x4(FfxUInt16x4 v, FfxUInt32 x) +{ + return FFX_UINT32X2_TO_UINT16X4(subgroupShuffleXor(FFX_UINT16X4_TO_UINT32X2(v), x)); +} +#endif // FFX_HALF +#endif // #if defined(FFX_WAVE) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h new file mode 100644 index 000000000..da03b07aa --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h @@ -0,0 +1,2736 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// A define for a true value in a boolean expression. +/// +/// @ingroup GPUCore +#define FFX_TRUE (true) + +/// A define for a false value in a boolean expression. +/// +/// @ingroup GPUCore +#define FFX_FALSE (false) + +/// A define value for positive infinity. +/// +/// @ingroup GPUCore +#define FFX_POSITIVE_INFINITY_FLOAT ffxAsFloat(0x7f800000u) + +/// A define value for negative infinity. +/// +/// @ingroup GPUCore +#define FFX_NEGATIVE_INFINITY_FLOAT ffxAsFloat(0xff800000u) + +/// A define value for PI. +/// +/// @ingroup GPUCore +#define FFX_PI (3.14159) + +FFX_STATIC const FfxFloat32 FFX_FP16_MIN = 6.10e-05f; +FFX_STATIC const FfxFloat32 FFX_FP16_MAX = 65504.0f; +FFX_STATIC const FfxFloat32 FFX_TONEMAP_EPSILON = 1.0f / FFX_FP16_MAX; + +#define FFX_HAS_FLAG(v, f) ((v & f) == f) + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32 ffxMin(FfxFloat32 x, FfxFloat32 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxMin(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxMin(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxMin(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32 ffxMin(FfxInt32 x, FfxInt32 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x2 ffxMin(FfxInt32x2 x, FfxInt32x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x3 ffxMin(FfxInt32x3 x, FfxInt32x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x4 ffxMin(FfxInt32x4 x, FfxInt32x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32 ffxMin(FfxUInt32 x, FfxUInt32 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxMin(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxMin(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxMin(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return min(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32 ffxMax(FfxFloat32 x, FfxFloat32 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxMax(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxMax(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxMax(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32 ffxMax(FfxInt32 x, FfxInt32 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x2 ffxMax(FfxInt32x2 x, FfxInt32x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x3 ffxMax(FfxInt32x3 x, FfxInt32x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x4 ffxMax(FfxInt32x4 x, FfxInt32x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32 ffxMax(FfxUInt32 x, FfxUInt32 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxMax(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxMax(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxMax(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return max(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32 ffxPow(FfxFloat32 x, FfxFloat32 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxPow(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxPow(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxPow(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return pow(x, y); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32 ffxSqrt(FfxFloat32 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxSqrt(FfxFloat32x2 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxSqrt(FfxFloat32x3 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxSqrt(FfxFloat32x4 x) +{ + return sqrt(x); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32 ffxCopySignBit(FfxFloat32 d, FfxFloat32 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & FfxUInt32(0x80000000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxCopySignBit(FfxFloat32x2 d, FfxFloat32x2 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & ffxBroadcast2(0x80000000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxCopySignBit(FfxFloat32x3 d, FfxFloat32x3 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & ffxBroadcast3(0x80000000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxCopySignBit(FfxFloat32x4 d, FfxFloat32x4 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & ffxBroadcast4(0x80000000u))); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat32 ffxIsSigned(FfxFloat32 m) +{ + return ffxSaturate(m * FfxFloat32(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxIsSigned(FfxFloat32x2 m) +{ + return ffxSaturate(m * ffxBroadcast2(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxIsSigned(FfxFloat32x3 m) +{ + return ffxSaturate(m * ffxBroadcast3(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against for have the sign set. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or positive. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxIsSigned(FfxFloat32x4 m) +{ + return ffxSaturate(m * ffxBroadcast4(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32 ffxIsGreaterThanZero(FfxFloat32 m) +{ + return ffxSaturate(m * FfxFloat32(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxIsGreaterThanZero(FfxFloat32x2 m) +{ + return ffxSaturate(m * ffxBroadcast2(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxIsGreaterThanZero(FfxFloat32x3 m) +{ + return ffxSaturate(m * ffxBroadcast3(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxIsGreaterThanZero(FfxFloat32x4 m) +{ + return ffxSaturate(m * ffxBroadcast4(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Convert a 32bit floating point value to sortable integer. +/// +/// - If sign bit=0, flip the sign bit (positives). +/// - If sign bit=1, flip all bits (negatives). +/// +/// The function has the side effects that: +/// - Larger integers are more positive values. +/// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage). +/// +/// @param [in] value The floating point value to make sortable. +/// +/// @returns +/// The sortable integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxFloatToSortableInteger(FfxUInt32 value) +{ + return value ^ ((ffxAShrSU1(value, FfxUInt32(31))) | FfxUInt32(0x80000000)); +} + +/// Convert a sortable integer to a 32bit floating point value. +/// +/// The function has the side effects that: +/// - If sign bit=1, flip the sign bit (positives). +/// - If sign bit=0, flip all bits (negatives). +/// +/// @param [in] value The floating point value to make sortable. +/// +/// @returns +/// The sortable integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxSortableIntegerToFloat(FfxUInt32 value) +{ + return value ^ ((~ffxAShrSU1(value, FfxUInt32(31))) | FfxUInt32(0x80000000)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateSqrt(FfxFloat32 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> FfxUInt32(1)) + FfxUInt32(0x1fbc4639)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateReciprocal(FfxFloat32 value) +{ + return ffxAsFloat(FfxUInt32(0x7ef07ebb) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateReciprocalMedium(FfxFloat32 value) +{ + FfxFloat32 b = ffxAsFloat(FfxUInt32(0x7ef19fff) - ffxAsUInt32(value)); + return b * (-b * value + FfxFloat32(2.0)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal square root for. +/// +/// @returns +/// An approximation of the reciprocal square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateReciprocalSquareRoot(FfxFloat32 value) +{ + return ffxAsFloat(FfxUInt32(0x5f347d74) - (ffxAsUInt32(value) >> FfxUInt32(1))); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateSqrt(FfxFloat32x2 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> ffxBroadcast2(1u)) + ffxBroadcast2(0x1fbc4639u)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateReciprocal(FfxFloat32x2 value) +{ + return ffxAsFloat(ffxBroadcast2(0x7ef07ebbu) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateReciprocalMedium(FfxFloat32x2 value) +{ + FfxFloat32x2 b = ffxAsFloat(ffxBroadcast2(0x7ef19fffu) - ffxAsUInt32(value)); + return b * (-b * value + ffxBroadcast2(2.0f)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateReciprocalSquareRoot(FfxFloat32x2 value) +{ + return ffxAsFloat(ffxBroadcast2(0x5f347d74u) - (ffxAsUInt32(value) >> ffxBroadcast2(1u))); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateSqrt(FfxFloat32x3 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> ffxBroadcast3(1u)) + ffxBroadcast3(0x1fbc4639u)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateReciprocal(FfxFloat32x3 value) +{ + return ffxAsFloat(ffxBroadcast3(0x7ef07ebbu) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateReciprocalMedium(FfxFloat32x3 value) +{ + FfxFloat32x3 b = ffxAsFloat(ffxBroadcast3(0x7ef19fffu) - ffxAsUInt32(value)); + return b * (-b * value + ffxBroadcast3(2.0f)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateReciprocalSquareRoot(FfxFloat32x3 value) +{ + return ffxAsFloat(ffxBroadcast3(0x5f347d74u) - (ffxAsUInt32(value) >> ffxBroadcast3(1u))); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateSqrt(FfxFloat32x4 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> ffxBroadcast4(1u)) + ffxBroadcast4(0x1fbc4639u)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateReciprocal(FfxFloat32x4 value) +{ + return ffxAsFloat(ffxBroadcast4(0x7ef07ebbu) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateReciprocalMedium(FfxFloat32x4 value) +{ + FfxFloat32x4 b = ffxAsFloat(ffxBroadcast4(0x7ef19fffu) - ffxAsUInt32(value)); + return b * (-b * value + ffxBroadcast4(2.0f)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateReciprocalSquareRoot(FfxFloat32x4 value) +{ + return ffxAsFloat(ffxBroadcast4(0x5f347d74u) - (ffxAsUInt32(value) >> ffxBroadcast4(1u))); +} + +/// Calculate dot product of 'a' and 'b'. +/// +/// @param [in] a First vector input. +/// @param [in] b Second vector input. +/// +/// @returns +/// The value of a dot b. +/// +/// @ingroup GPUCore +FfxFloat32 ffxDot2(FfxFloat32x2 a, FfxFloat32x2 b) +{ + return dot(a, b); +} + +/// Calculate dot product of 'a' and 'b'. +/// +/// @param [in] a First vector input. +/// @param [in] b Second vector input. +/// +/// @returns +/// The value of a dot b. +/// +/// @ingroup GPUCore +FfxFloat32 ffxDot3(FfxFloat32x3 a, FfxFloat32x3 b) +{ + return dot(a, b); +} + +/// Calculate dot product of 'a' and 'b'. +/// +/// @param [in] a First vector input. +/// @param [in] b Second vector input. +/// +/// @returns +/// The value of a dot b. +/// +/// @ingroup GPUCore +FfxFloat32 ffxDot4(FfxFloat32x4 a, FfxFloat32x4 b) +{ + return dot(a, b); +} + + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximatePQToGamma2Medium(FfxFloat32 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximatePQToLinear(FfxFloat32 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateGamma2ToPQ(FfxFloat32 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(2)) + FfxUInt32(0x2F9A4E46)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateGamma2ToPQMedium(FfxFloat32 a) +{ + FfxFloat32 b = ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(2)) + FfxUInt32(0x2F9A4E46)); + FfxFloat32 b4 = b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateGamma2ToPQHigh(FfxFloat32 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateLinearToPQ(FfxFloat32 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(3)) + FfxUInt32(0x378D8723)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateLinearToPQMedium(FfxFloat32 a) +{ + FfxFloat32 b = ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(3)) + FfxUInt32(0x378D8723)); + FfxFloat32 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateLinearToPQHigh(FfxFloat32 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximatePQToGamma2Medium(FfxFloat32x2 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximatePQToLinear(FfxFloat32x2 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateGamma2ToPQ(FfxFloat32x2 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(2u)) + ffxBroadcast2(0x2F9A4E46u)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateGamma2ToPQMedium(FfxFloat32x2 a) +{ + FfxFloat32x2 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(2u)) + ffxBroadcast2(0x2F9A4E46u)); + FfxFloat32x2 b4 = b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateGamma2ToPQHigh(FfxFloat32x2 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateLinearToPQ(FfxFloat32x2 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(3u)) + ffxBroadcast2(0x378D8723u)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateLinearToPQMedium(FfxFloat32x2 a) +{ + FfxFloat32x2 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(3u)) + ffxBroadcast2(0x378D8723u)); + FfxFloat32x2 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateLinearToPQHigh(FfxFloat32x2 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximatePQToGamma2Medium(FfxFloat32x3 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximatePQToLinear(FfxFloat32x3 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateGamma2ToPQ(FfxFloat32x3 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(2u)) + ffxBroadcast3(0x2F9A4E46u)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateGamma2ToPQMedium(FfxFloat32x3 a) +{ + FfxFloat32x3 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(2u)) + ffxBroadcast3(0x2F9A4E46u)); + FfxFloat32x3 b4 = b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateGamma2ToPQHigh(FfxFloat32x3 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateLinearToPQ(FfxFloat32x3 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(3u)) + ffxBroadcast3(0x378D8723u)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateLinearToPQMedium(FfxFloat32x3 a) +{ + FfxFloat32x3 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(3u)) + ffxBroadcast3(0x378D8723u)); + FfxFloat32x3 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateLinearToPQHigh(FfxFloat32x3 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximatePQToGamma2Medium(FfxFloat32x4 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximatePQToLinear(FfxFloat32x4 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateGamma2ToPQ(FfxFloat32x4 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(2u)) + ffxBroadcast4(0x2F9A4E46u)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateGamma2ToPQMedium(FfxFloat32x4 a) +{ + FfxFloat32x4 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(2u)) + ffxBroadcast4(0x2F9A4E46u)); + FfxFloat32x4 b4 = b * b * b * b * b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateGamma2ToPQHigh(FfxFloat32x4 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateLinearToPQ(FfxFloat32x4 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(3u)) + ffxBroadcast4(0x378D8723u)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateLinearToPQMedium(FfxFloat32x4 a) +{ + FfxFloat32x4 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(3u)) + ffxBroadcast4(0x378D8723u)); + FfxFloat32x4 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateLinearToPQHigh(FfxFloat32x4 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +// An approximation of sine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate sine for. +// +// @returns +// The approximate sine of value. +FfxFloat32 ffxParabolicSin(FfxFloat32 value) +{ + return value * abs(value) - value; +} + +// An approximation of sine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate sine for. +// +// @returns +// The approximate sine of value. +FfxFloat32x2 ffxParabolicSin(FfxFloat32x2 x) +{ + return x * abs(x) - x; +} + +// An approximation of cosine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate cosine for. +// +// @returns +// The approximate cosine of value. +FfxFloat32 ffxParabolicCos(FfxFloat32 x) +{ + x = ffxFract(x * FfxFloat32(0.5) + FfxFloat32(0.75)); + x = x * FfxFloat32(2.0) - FfxFloat32(1.0); + return ffxParabolicSin(x); +} + +// An approximation of cosine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate cosine for. +// +// @returns +// The approximate cosine of value. +FfxFloat32x2 ffxParabolicCos(FfxFloat32x2 x) +{ + x = ffxFract(x * ffxBroadcast2(0.5f) + ffxBroadcast2(0.75f)); + x = x * ffxBroadcast2(2.0f) - ffxBroadcast2(1.0f); + return ffxParabolicSin(x); +} + +// An approximation of both sine and cosine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate cosine for. +// +// @returns +// A FfxFloat32x2 containing approximations of both sine and cosine of value. +FfxFloat32x2 ffxParabolicSinCos(FfxFloat32 x) +{ + FfxFloat32 y = ffxFract(x * FfxFloat32(0.5) + FfxFloat32(0.75)); + y = y * FfxFloat32(2.0) - FfxFloat32(1.0); + return ffxParabolicSin(FfxFloat32x2(x, y)); +} + +/// Conditional free logic AND operation using values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneAnd(FfxUInt32 x, FfxUInt32 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneAnd(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneAnd(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneAnd(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return min(x, y); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneAnd(FfxUInt32 x) +{ + return x ^ FfxUInt32(1); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneAnd(FfxUInt32x2 x) +{ + return x ^ ffxBroadcast2(1u); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneAnd(FfxUInt32x3 x) +{ + return x ^ ffxBroadcast3(1u); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneAnd(FfxUInt32x4 x) +{ + return x ^ ffxBroadcast4(1u); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneOr(FfxUInt32 x, FfxUInt32 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneOr(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneOr(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneOr(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return max(x, y); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneAndToU1(FfxFloat32 x) +{ + return FfxUInt32(FfxFloat32(1.0) - x); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneAndToU2(FfxFloat32x2 x) +{ + return FfxUInt32x2(ffxBroadcast2(1.0) - x); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneAndToU3(FfxFloat32x3 x) +{ + return FfxUInt32x3(ffxBroadcast3(1.0) - x); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneAndToU4(FfxFloat32x4 x) +{ + return FfxUInt32x4(ffxBroadcast4(1.0) - x); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneAndOr(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneAndOr(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneAndOr(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneAndOr(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return ffxSaturate(x * y + z); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneIsGreaterThanZero(FfxFloat32 x) +{ + return ffxSaturate(x * FfxFloat32(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneIsGreaterThanZero(FfxFloat32x2 x) +{ + return ffxSaturate(x * ffxBroadcast2(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneIsGreaterThanZero(FfxFloat32x3 x) +{ + return ffxSaturate(x * ffxBroadcast3(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneIsGreaterThanZero(FfxFloat32x4 x) +{ + return ffxSaturate(x * ffxBroadcast4(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneAnd(FfxFloat32 x) +{ + return FfxFloat32(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneAnd(FfxFloat32x2 x) +{ + return ffxBroadcast2(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneAnd(FfxFloat32x3 x) +{ + return ffxBroadcast3(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneAnd(FfxFloat32x4 x) +{ + return ffxBroadcast4(1.0) - x; +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneOr(FfxFloat32 x, FfxFloat32 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneOr(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneOr(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneOr(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return max(x, y); +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneSelect(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + FfxFloat32 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneSelect(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + FfxFloat32x2 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneSelect(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + FfxFloat32x3 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneSelect(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + FfxFloat32x4 r = (-x) * z + z; + return x * y + r; +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneIsSigned(FfxFloat32 x) +{ + return ffxSaturate(x * FfxFloat32(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneIsSigned(FfxFloat32x2 x) +{ + return ffxSaturate(x * ffxBroadcast2(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneIsSigned(FfxFloat32x3 x) +{ + return ffxSaturate(x * ffxBroadcast3(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneIsSigned(FfxFloat32x4 x) +{ + return ffxSaturate(x * ffxBroadcast4(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] color The color to convert to Rec. 709. +/// +/// @returns +/// The color in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxRec709FromLinear(FfxFloat32 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.099, -0.099); + return clamp(j.x, color * j.y, pow(color, j.z) * k.x + k.y); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] color The color to convert to Rec. 709. +/// +/// @returns +/// The color in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxRec709FromLinear(FfxFloat32x2 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.099, -0.099); + return clamp(j.xx, color * j.yy, pow(color, j.zz) * k.xx + k.yy); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] color The color to convert to Rec. 709. +/// +/// @returns +/// The color in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxRec709FromLinear(FfxFloat32x3 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.099, -0.099); + return clamp(j.xxx, color * j.yyy, pow(color, j.zzz) * k.xxx + k.yyy); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] color The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromRec709(FfxFloat32 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelect(ffxZeroOneIsSigned(color - j.x), color * j.y, pow(color * k.x + k.y, j.z)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] color The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromRec709(FfxFloat32x2 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelect(ffxZeroOneIsSigned(color - j.xx), color * j.yy, pow(color * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] color The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromRec709(FfxFloat32x3 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelect(ffxZeroOneIsSigned(color - j.xxx), color * j.yyy, pow(color * k.xxx + k.yyy, j.zzz)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGamma. +/// +/// @param [in] value The value to convert to gamma space from linear. +/// @param [in] power The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxGammaFromLinear(FfxFloat32 value, FfxFloat32 power) +{ + return pow(value, FfxFloat32(power)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGamma. +/// +/// @param [in] value The value to convert to gamma space from linear. +/// @param [in] power The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxGammaFromLinear(FfxFloat32x2 value, FfxFloat32 power) +{ + return pow(value, ffxBroadcast2(power)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGamma. +/// +/// @param [in] value The value to convert to gamma space from linear. +/// @param [in] power The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxGammaFromLinear(FfxFloat32x3 value, FfxFloat32 power) +{ + return pow(value, ffxBroadcast3(power)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] color The value to convert to linear in gamma space. +/// @param [in] power The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromGamma(FfxFloat32 color, FfxFloat32 power) +{ + return pow(color, FfxFloat32(power)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] color The value to convert to linear in gamma space. +/// @param [in] power The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromGamma(FfxFloat32x2 color, FfxFloat32 power) +{ + return pow(color, ffxBroadcast2(power)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] color The value to convert to linear in gamma space. +/// @param [in] power The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromGamma(FfxFloat32x3 color, FfxFloat32 power) +{ + return pow(color, ffxBroadcast3(power)); +} + +/// Compute a PQ value from a linear value. +/// +/// @param [in] value The value to convert to PQ from linear. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxPQFromLinear(FfxFloat32 value) +{ + FfxFloat32 p = pow(value, FfxFloat32(0.159302)); + return pow((FfxFloat32(0.835938) + FfxFloat32(18.8516) * p) / (FfxFloat32(1.0) + FfxFloat32(18.6875) * p), FfxFloat32(78.8438)); +} + +/// Compute a PQ value from a linear value. +/// +/// @param [in] value The value to convert to PQ from linear. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxPQFromLinear(FfxFloat32x2 value) +{ + FfxFloat32x2 p = pow(value, ffxBroadcast2(0.159302)); + return pow((ffxBroadcast2(0.835938) + ffxBroadcast2(18.8516) * p) / (ffxBroadcast2(1.0) + ffxBroadcast2(18.6875) * p), ffxBroadcast2(78.8438)); +} + +/// Compute a PQ value from a linear value. +/// +/// @param [in] value The value to convert to PQ from linear. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxPQFromLinear(FfxFloat32x3 value) +{ + FfxFloat32x3 p = pow(value, ffxBroadcast3(0.159302)); + return pow((ffxBroadcast3(0.835938) + ffxBroadcast3(18.8516) * p) / (ffxBroadcast3(1.0) + ffxBroadcast3(18.6875) * p), ffxBroadcast3(78.8438)); +} + +/// Compute a linear value from a value in a PQ space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in PQ space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromPQ(FfxFloat32 value) +{ + FfxFloat32 p = pow(value, FfxFloat32(0.0126833)); + return pow(ffxSaturate(p - FfxFloat32(0.835938)) / (FfxFloat32(18.8516) - FfxFloat32(18.6875) * p), FfxFloat32(6.27739)); +} + +/// Compute a linear value from a value in a PQ space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in PQ space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromPQ(FfxFloat32x2 value) +{ + FfxFloat32x2 p = pow(value, ffxBroadcast2(0.0126833)); + return pow(ffxSaturate(p - ffxBroadcast2(0.835938)) / (ffxBroadcast2(18.8516) - ffxBroadcast2(18.6875) * p), ffxBroadcast2(6.27739)); +} + +/// Compute a linear value from a value in a PQ space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in PQ space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromPQ(FfxFloat32x3 value) +{ + FfxFloat32x3 p = pow(value, ffxBroadcast3(0.0126833)); + return pow(ffxSaturate(p - ffxBroadcast3(0.835938)) / (ffxBroadcast3(18.8516) - ffxBroadcast3(18.6875) * p), ffxBroadcast3(6.27739)); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] value The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxSrgbFromLinear(FfxFloat32 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.055, -0.055); + return clamp(j.x, value * j.y, pow(value, j.z) * k.x + k.y); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] value The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxSrgbFromLinear(FfxFloat32x2 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.055, -0.055); + return clamp(j.xx, value * j.yy, pow(value, j.zz) * k.xx + k.yy); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] value The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxSrgbFromLinear(FfxFloat32x3 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.055, -0.055); + return clamp(j.xxx, value * j.yyy, pow(value, j.zzz) * k.xxx + k.yyy); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromSrgb(FfxFloat32 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelect(ffxZeroOneIsSigned(value - j.x), value * j.y, pow(value * k.x + k.y, j.z)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromSrgb(FfxFloat32x2 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelect(ffxZeroOneIsSigned(value - j.xx), value * j.yy, pow(value * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromSrgb(FfxFloat32x3 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelect(ffxZeroOneIsSigned(value - j.xxx), value * j.yyy, pow(value * k.xxx + k.yyy, j.zzz)); +} + +/// A remapping of 64x1 to 8x8 imposing rotated 2x2 pixel quads in quad linear. +/// +/// Remap illustration: +/// +/// 543210 +/// ~~~~~~ +/// ..xxx. +/// yy...y +/// +/// @param [in] a The input 1D coordinates to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxRemapForQuad(FfxUInt32 a) +{ + return FfxUInt32x2(ffxBitfieldExtract(a, 1u, 3u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), a, 1u)); +} + +/// A helper function performing a remap 64x1 to 8x8 remapping which is necessary for 2D wave reductions. +/// +/// The 64-wide lane indices to 8x8 remapping is performed as follows: +/// +/// 00 01 08 09 10 11 18 19 +/// 02 03 0a 0b 12 13 1a 1b +/// 04 05 0c 0d 14 15 1c 1d +/// 06 07 0e 0f 16 17 1e 1f +/// 20 21 28 29 30 31 38 39 +/// 22 23 2a 2b 32 33 3a 3b +/// 24 25 2c 2d 34 35 3c 3d +/// 26 27 2e 2f 36 37 3e 3f +/// +/// @param [in] a The input 1D coordinate to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxRemapForWaveReduction(FfxUInt32 a) +{ + return FfxUInt32x2(ffxBitfieldInsertMask(ffxBitfieldExtract(a, 2u, 3u), a, 1u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), ffxBitfieldExtract(a, 1u, 2u), 2u)); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h new file mode 100644 index 000000000..6b071d590 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h @@ -0,0 +1,2981 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if FFX_HALF +#if FFX_HLSL_SM >= 62 +/// A define value for 16bit positive infinity. +/// +/// @ingroup GPUCore +#define FFX_POSITIVE_INFINITY_HALF FFX_TO_FLOAT16((uint16_t)0x7c00u) + +/// A define value for 16bit negative infinity. +/// +/// @ingroup GPUCore +#define FFX_NEGATIVE_INFINITY_HALF FFX_TO_FLOAT16((uint16_t)0xfc00u) +#else +/// A define value for 16bit positive infinity. +/// +/// @ingroup GPUCore +#define FFX_POSITIVE_INFINITY_HALF FFX_TO_FLOAT16(0x7c00u) + +/// A define value for 16bit negative infinity. +/// +/// @ingroup GPUCore +#define FFX_NEGATIVE_INFINITY_HALF FFX_TO_FLOAT16(0xfc00u) +#endif // #if FFX_HLSL_SM>=62 + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16 ffxMin(FfxFloat16 x, FfxFloat16 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxMin(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxMin(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxMin(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16 ffxMin(FfxInt16 x, FfxInt16 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x2 ffxMin(FfxInt16x2 x, FfxInt16x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x3 ffxMin(FfxInt16x3 x, FfxInt16x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x4 ffxMin(FfxInt16x4 x, FfxInt16x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16 ffxMin(FfxUInt16 x, FfxUInt16 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxMin(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxMin(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxMin(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return min(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16 ffxMax(FfxFloat16 x, FfxFloat16 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxMax(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxMax(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxMax(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16 ffxMax(FfxInt16 x, FfxInt16 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x2 ffxMax(FfxInt16x2 x, FfxInt16x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x3 ffxMax(FfxInt16x3 x, FfxInt16x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x4 ffxMax(FfxInt16x4 x, FfxInt16x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16 ffxMax(FfxUInt16 x, FfxUInt16 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxMax(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxMax(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxMax(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return max(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16 ffxPow(FfxFloat16 x, FfxFloat16 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPow(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxPow(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxPow(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return pow(x, y); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSqrt(FfxFloat16 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSqrt(FfxFloat16x2 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSqrt(FfxFloat16x3 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxSqrt(FfxFloat16x4 x) +{ + return sqrt(x); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16 ffxCopySignBitHalf(FfxFloat16 d, FfxFloat16 s) +{ + return FFX_TO_FLOAT16(FFX_TO_UINT16(d) | (FFX_TO_UINT16(s) & FFX_BROADCAST_UINT16(0x8000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxCopySignBitHalf(FfxFloat16x2 d, FfxFloat16x2 s) +{ + return FFX_TO_FLOAT16X2(FFX_TO_UINT16X2(d) | (FFX_TO_UINT16X2(s) & FFX_BROADCAST_UINT16X2(0x8000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxCopySignBitHalf(FfxFloat16x3 d, FfxFloat16x3 s) +{ + return FFX_TO_FLOAT16X3(FFX_TO_UINT16X3(d) | (FFX_TO_UINT16X3(s) & FFX_BROADCAST_UINT16X3(0x8000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxCopySignBitHalf(FfxFloat16x4 d, FfxFloat16x4 s) +{ + return FFX_TO_FLOAT16X4(FFX_TO_UINT16X4(d) | (FFX_TO_UINT16X4(s) & FFX_BROADCAST_UINT16X4(0x8000u))); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16 ffxIsSignedHalf(FfxFloat16 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxIsSignedHalf(FfxFloat16x2 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X2(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxIsSignedHalf(FfxFloat16x3 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X3(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxIsSignedHalf(FfxFloat16x4 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X4(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16 ffxIsGreaterThanZeroHalf(FfxFloat16 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16(FFX_POSITIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxIsGreaterThanZeroHalf(FfxFloat16x2 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X2(FFX_POSITIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxIsGreaterThanZeroHalf(FfxFloat16x3 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X3(FFX_POSITIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxIsGreaterThanZeroHalf(FfxFloat16x4 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X4(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Convert a 16bit floating point value to sortable integer. +/// +/// - If sign bit=0, flip the sign bit (positives). +/// - If sign bit=1, flip all bits (negatives). +/// +/// The function has the side effects that: +/// - Larger integers are more positive values. +/// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage). +/// +/// @param [in] x The floating point value to make sortable. +/// +/// @returns +/// The sortable integer value. +/// +/// @ingroup GPUCore +FfxUInt16 ffxFloatToSortableIntegerHalf(FfxUInt16 x) +{ + return x ^ ((ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16(15))) | FFX_BROADCAST_UINT16(0x8000)); +} + +/// Convert a sortable integer to a 16bit floating point value. +/// +/// The function has the side effects that: +/// - If sign bit=1, flip the sign bit (positives). +/// - If sign bit=0, flip all bits (negatives). +/// +/// @param [in] x The sortable integer value to make floating point. +/// +/// @returns +/// The floating point value. +/// +/// @ingroup GPUCore +FfxUInt16 ffxSortableIntegerToFloatHalf(FfxUInt16 x) +{ + return x ^ ((~ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16(15))) | FFX_BROADCAST_UINT16(0x8000)); +} + +/// Convert a pair of 16bit floating point values to a pair of sortable integers. +/// +/// - If sign bit=0, flip the sign bit (positives). +/// - If sign bit=1, flip all bits (negatives). +/// +/// The function has the side effects that: +/// - Larger integers are more positive values. +/// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage). +/// +/// @param [in] x The floating point values to make sortable. +/// +/// @returns +/// The sortable integer values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxFloatToSortableIntegerHalf(FfxUInt16x2 x) +{ + return x ^ ((ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16X2(15))) | FFX_BROADCAST_UINT16X2(0x8000)); +} + +/// Convert a pair of sortable integers to a pair of 16bit floating point values. +/// +/// The function has the side effects that: +/// - If sign bit=1, flip the sign bit (positives). +/// - If sign bit=0, flip all bits (negatives). +/// +/// @param [in] x The sortable integer values to make floating point. +/// +/// @returns +/// The floating point values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxSortableIntegerToFloatHalf(FfxUInt16x2 x) +{ + return x ^ ((~ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16X2(15))) | FFX_BROADCAST_UINT16X2(0x8000)); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y0 [Zero] X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY0ZeroX0(FfxUInt32x2 i) +{ + return ((i.x) & 0xffu) | ((i.y << 16) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y1 [Zero] X1 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY1ZeroX1(FfxUInt32x2 i) +{ + return ((i.x >> 8) & 0xffu) | ((i.y << 8) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y2 [Zero] X2 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY2ZeroX2(FfxUInt32x2 i) +{ + return ((i.x >> 16) & 0xffu) | ((i.y) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y3 [Zero] X3 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY3ZeroX3(FfxUInt32x2 i) +{ + return ((i.x >> 24) & 0xffu) | ((i.y >> 8) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 Y1 X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2Y1X0(FfxUInt32x2 i) +{ + return ((i.x) & 0x000000ffu) | (i.y & 0xffffff00u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 Y1 X2 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2Y1X2(FfxUInt32x2 i) +{ + return ((i.x >> 16) & 0x000000ffu) | (i.y & 0xffffff00u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 X0 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2X0Y0(FfxUInt32x2 i) +{ + return ((i.x << 8) & 0x0000ff00u) | (i.y & 0xffff00ffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 X2 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2X2Y0(FfxUInt32x2 i) +{ + return ((i.x >> 8) & 0x0000ff00u) | (i.y & 0xffff00ffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 X0 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3X0Y1Y0(FfxUInt32x2 i) +{ + return ((i.x << 16) & 0x00ff0000u) | (i.y & 0xff00ffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 X2 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3X2Y1Y0(FfxUInt32x2 i) +{ + return ((i.x) & 0x00ff0000u) | (i.y & 0xff00ffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// X0 Y2 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesX0Y2Y1Y0(FfxUInt32x2 i) +{ + return ((i.x << 24) & 0xff000000u) | (i.y & 0x00ffffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// X2 Y2 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesX2Y2Y1Y0(FfxUInt32x2 i) +{ + return ((i.x << 8) & 0xff000000u) | (i.y & 0x00ffffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y2 X2 Y0 X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY2X2Y0X0(FfxUInt32x2 i) +{ + return ((i.x) & 0x00ff00ffu) | ((i.y << 8) & 0xff00ff00u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y2 Y0 X2 X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY2Y0X2X0(FfxUInt32x2 i) +{ + return (((i.x) & 0xffu) | ((i.x >> 8) & 0xff00u) | ((i.y << 16) & 0xff0000u) | ((i.y << 8) & 0xff000000u)); +} + +/// Takes two Float16x2 values x and y, normalizes them and builds a single Uint16x2 value in the format {{x0,y0},{x1,y1}}. +/// +/// @param [in] x The first float16x2 value to pack. +/// @param [in] y The second float16x2 value to pack. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxPackX0Y0X1Y1UnsignedToUint16x2(FfxFloat16x2 x, FfxFloat16x2 y) +{ + x *= FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0); + y *= FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0); + return FFX_UINT32_TO_UINT16X2(ffxPackBytesY2X2Y0X0(FfxUInt32x2(FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(x)), FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(y))))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[0:7], +/// d.y[0:7] into r.y[0:7], i.x[8:15] into r.x[8:15], r.y[8:15] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// r=ffxPermuteUByte0Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte0Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2Y1X0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2Y1X2(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[8:15], +/// d.y[0:7] into r.y[8:15], i.x[0:7] into r.x[0:7], r.y[0:7] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// r=ffxPermuteUByte1Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte1Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2X0Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2X2Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[16:23], +/// d.y[0:7] into r.y[16:23], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[8:15] into r.x[24:31], r.y[24:31] using 3 ops. +/// +/// r=ffxPermuteUByte2Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte2Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3X0Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3X2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[24:31], +/// d.y[0:7] into r.y[24:31], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[0:7] into r.x[16:23], r.y[16:23] using 3 ops. +/// +/// r=ffxPermuteUByte3Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte3Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesX0Y2Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesX2Y2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[0:7] into r.x[0:7] and i.y[0:7] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte0Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY0ZeroX0(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[8:15] into r.x[0:7] and i.y[8:15] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte1Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY1ZeroX1(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[16:23] into r.x[0:7] and i.y[16:23] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte2Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY2ZeroX2(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[24:31] into r.x[0:7] and i.y[24:31] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte3Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY3ZeroX3(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Takes two Float16x2 values x and y, normalizes them and builds a single Uint16x2 value in the format {{x0,y0},{x1,y1}}. +/// +/// @param [in] x The first float16x2 value to pack. +/// @param [in] y The second float16x2 value to pack. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxPackX0Y0X1Y1SignedToUint16x2(FfxFloat16x2 x, FfxFloat16x2 y) +{ + x = x * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0); + y = y * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0); + return FFX_UINT32_TO_UINT16X2(ffxPackBytesY2X2Y0X0(FfxUInt32x2(FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(x)), FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(y))))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[0:7], +/// d.y[0:7] into r.y[0:7], i.x[8:15] into r.x[8:15], r.y[8:15] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte0Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2Y1X0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2Y1X2(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[8:15], +/// d.y[0:7] into r.y[8:15], i.x[0:7] into r.x[0:7], r.y[0:7] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte1Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2X0Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2X2Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[16:23], +/// d.y[0:7] into r.y[16:23], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[8:15] into r.x[24:31], r.y[24:31] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte2Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3X0Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3X2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[24:31], +/// d.y[0:7] into r.y[24:31], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[0:7] into r.x[16:23], r.y[16:23] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte3Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesX0Y2Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesX2Y2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[0:7], +/// d.y[0:7] into r.y[0:7], i.x[8:15] into r.x[8:15], r.y[8:15] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte0Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesY3Y2Y1X0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2Y1X2(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[8:15], +/// d.y[0:7] into r.y[8:15], i.x[0:7] into r.x[0:7], r.y[0:7] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte1Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesY3Y2X0Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2X2Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[16:23], +/// d.y[0:7] into r.y[16:23], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[8:15] into r.x[24:31], r.y[24:31] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte2Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesY3X0Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3X2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[24:31], +/// d.y[0:7] into r.y[24:31], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[0:7] into r.x[16:23], r.y[16:23] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte3Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesX0Y2Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesX2Y2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[0:7] into r.x[0:7] and i.y[0:7] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte0Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY0ZeroX0(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[8:15] into r.x[0:7] and i.y[8:15] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte1Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY1ZeroX1(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[16:23] into r.x[0:7] and i.y[16:23] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte2Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY2ZeroX2(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[24:31] into r.x[0:7] and i.y[24:31] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte3Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY3ZeroX3(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[0:7] into r.x[0:7] and i.y[0:7] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte0Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY0ZeroX0(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[8:15] into r.x[0:7] and i.y[8:15] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte1Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY1ZeroX1(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[16:23] into r.x[0:7] and i.y[16:23] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte2Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY2ZeroX2(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[24:31] into r.x[0:7] and i.y[24:31] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte3Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY3ZeroX3(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Calculate a half-precision low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateSqrtHalf(FfxFloat16 a) +{ + return FFX_TO_FLOAT16((FFX_TO_UINT16(a) >> FFX_BROADCAST_UINT16(1)) + FFX_BROADCAST_UINT16(0x1de2)); +} + +/// Calculate a half-precision low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateSqrtHalf(FfxFloat16x2 a) +{ + return FFX_TO_FLOAT16X2((FFX_TO_UINT16X2(a) >> FFX_BROADCAST_UINT16X2(1)) + FFX_BROADCAST_UINT16X2(0x1de2)); +} + +/// Calculate a half-precision low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateSqrtHalf(FfxFloat16x3 a) +{ + return FFX_TO_FLOAT16X3((FFX_TO_UINT16X3(a) >> FFX_BROADCAST_UINT16X3(1)) + FFX_BROADCAST_UINT16X3(0x1de2)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateReciprocalHalf(FfxFloat16 a) +{ + return FFX_TO_FLOAT16(FFX_BROADCAST_UINT16(0x7784) - FFX_TO_UINT16(a)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateReciprocalHalf(FfxFloat16x2 a) +{ + return FFX_TO_FLOAT16X2(FFX_BROADCAST_UINT16X2(0x7784) - FFX_TO_UINT16X2(a)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateReciprocalHalf(FfxFloat16x3 a) +{ + return FFX_TO_FLOAT16X3(FFX_BROADCAST_UINT16X3(0x7784) - FFX_TO_UINT16X3(a)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxApproximateReciprocalHalf(FfxFloat16x4 a) +{ + return FFX_TO_FLOAT16X4(FFX_BROADCAST_UINT16X4(0x7784) - FFX_TO_UINT16X4(a)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateReciprocalMediumHalf(FfxFloat16 a) +{ + FfxFloat16 b = FFX_TO_FLOAT16(FFX_BROADCAST_UINT16(0x778d) - FFX_TO_UINT16(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16(2.0)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateReciprocalMediumHalf(FfxFloat16x2 a) +{ + FfxFloat16x2 b = FFX_TO_FLOAT16X2(FFX_BROADCAST_UINT16X2(0x778d) - FFX_TO_UINT16X2(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16X2(2.0)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateReciprocalMediumHalf(FfxFloat16x3 a) +{ + FfxFloat16x3 b = FFX_TO_FLOAT16X3(FFX_BROADCAST_UINT16X3(0x778d) - FFX_TO_UINT16X3(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16X3(2.0)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxApproximateReciprocalMediumHalf(FfxFloat16x4 a) +{ + FfxFloat16x4 b = FFX_TO_FLOAT16X4(FFX_BROADCAST_UINT16X4(0x778d) - FFX_TO_UINT16X4(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16X4(2.0)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateReciprocalSquareRootHalf(FfxFloat16 a) +{ + return FFX_TO_FLOAT16(FFX_BROADCAST_UINT16(0x59a3) - (FFX_TO_UINT16(a) >> FFX_BROADCAST_UINT16(1))); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateReciprocalSquareRootHalf(FfxFloat16x2 a) +{ + return FFX_TO_FLOAT16X2(FFX_BROADCAST_UINT16X2(0x59a3) - (FFX_TO_UINT16X2(a) >> FFX_BROADCAST_UINT16X2(1))); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateReciprocalSquareRootHalf(FfxFloat16x3 a) +{ + return FFX_TO_FLOAT16X3(FFX_BROADCAST_UINT16X3(0x59a3) - (FFX_TO_UINT16X3(a) >> FFX_BROADCAST_UINT16X3(1))); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxApproximateReciprocalSquareRootHalf(FfxFloat16x4 a) +{ + return FFX_TO_FLOAT16X4(FFX_BROADCAST_UINT16X4(0x59a3) - (FFX_TO_UINT16X4(a) >> FFX_BROADCAST_UINT16X4(1))); +} + +/// An approximation of sine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate sine for. +/// +/// @returns +/// The approximate sine of value. +FfxFloat16 ffxParabolicSinHalf(FfxFloat16 x) +{ + return x * abs(x) - x; +} + +/// An approximation of sine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate sine for. +/// +/// @returns +/// The approximate sine of value. +FfxFloat16x2 ffxParabolicSinHalf(FfxFloat16x2 x) +{ + return x * abs(x) - x; +} + +/// An approximation of cosine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate cosine for. +/// +/// @returns +/// The approximate cosine of value. +FfxFloat16 ffxParabolicCosHalf(FfxFloat16 x) +{ + x = ffxFract(x * FFX_BROADCAST_FLOAT16(0.5) + FFX_BROADCAST_FLOAT16(0.75)); + x = x * FFX_BROADCAST_FLOAT16(2.0) - FFX_BROADCAST_FLOAT16(1.0); + return ffxParabolicSinHalf(x); +} + +/// An approximation of cosine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate cosine for. +/// +/// @returns +/// The approximate cosine of value. +FfxFloat16x2 ffxParabolicCosHalf(FfxFloat16x2 x) +{ + x = ffxFract(x * FFX_BROADCAST_FLOAT16X2(0.5) + FFX_BROADCAST_FLOAT16X2(0.75)); + x = x * FFX_BROADCAST_FLOAT16X2(2.0) - FFX_BROADCAST_FLOAT16X2(1.0); + return ffxParabolicSinHalf(x); +} + +/// An approximation of both sine and cosine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate cosine for. +/// +/// @returns +/// A FfxFloat32x2 containing approximations of both sine and cosine of value. +FfxFloat16x2 ffxParabolicSinCosHalf(FfxFloat16 x) +{ + FfxFloat16 y = ffxFract(x * FFX_BROADCAST_FLOAT16(0.5) + FFX_BROADCAST_FLOAT16(0.75)); + y = y * FFX_BROADCAST_FLOAT16(2.0) - FFX_BROADCAST_FLOAT16(1.0); + return ffxParabolicSinHalf(FfxFloat16x2(x, y)); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneAndHalf(FfxUInt16 x, FfxUInt16 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneAndHalf(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneAndHalf(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneAndHalf(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return min(x, y); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneNotHalf(FfxUInt16 x) +{ + return x ^ FFX_BROADCAST_UINT16(1); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneNotHalf(FfxUInt16x2 x) +{ + return x ^ FFX_BROADCAST_UINT16X2(1); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneNotHalf(FfxUInt16x3 x) +{ + return x ^ FFX_BROADCAST_UINT16X3(1); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneNotHalf(FfxUInt16x4 x) +{ + return x ^ FFX_BROADCAST_UINT16X4(1); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneOrHalf(FfxUInt16 x, FfxUInt16 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneOrHalf(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneOrHalf(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneOrHalf(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return max(x, y); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneFloat16ToUint16(FfxFloat16 x) +{ + return FFX_TO_UINT16(x * FFX_TO_FLOAT16(FFX_TO_UINT16(1))); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneFloat16x2ToUint16x2(FfxFloat16x2 x) +{ + return FFX_TO_UINT16X2(x * FFX_TO_FLOAT16X2(FfxUInt16x2(1, 1))); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneFloat16x3ToUint16x3(FfxFloat16x3 x) +{ + return FFX_TO_UINT16X3(x * FFX_TO_FLOAT16X3(FfxUInt16x3(1, 1, 1))); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneFloat16x4ToUint16x4(FfxFloat16x4 x) +{ + return FFX_TO_UINT16X4(x * FFX_TO_FLOAT16X4(FfxUInt16x4(1, 1, 1, 1))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneUint16ToFloat16(FfxUInt16 x) +{ + return FFX_TO_FLOAT16(x * FFX_TO_UINT16(FFX_TO_FLOAT16(1.0))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneUint16x2ToFloat16x2(FfxUInt16x2 x) +{ + return FFX_TO_FLOAT16X2(x * FFX_TO_UINT16X2(FfxUInt16x2(FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0)))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneUint16x3ToFloat16x3(FfxUInt16x3 x) +{ + return FFX_TO_FLOAT16X3(x * FFX_TO_UINT16X3(FfxUInt16x3(FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0)))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneUint16x4ToFloat16x4(FfxUInt16x4 x) +{ + return FFX_TO_FLOAT16X4(x * FFX_TO_UINT16X4(FfxUInt16x4(FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0)))); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneAndHalf(FfxFloat16 x, FfxFloat16 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneAndHalf(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneAndHalf(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneAndHalf(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return min(x, y); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSignedZeroOneAndOrHalf(FfxFloat16 x, FfxFloat16 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16(1.0); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSignedZeroOneAndOrHalf(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16X2(1.0); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSignedZeroOneAndOrHalf(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16X3(1.0); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxSignedZeroOneAndOrHalf(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16X4(1.0); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneAndOrHalf(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneAndOrHalf(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneAndOrHalf(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneAndOrHalf(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return ffxSaturate(x * y + z); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16x2 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X2(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16x3 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X3(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16x4 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X4(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneNotHalf(FfxFloat16 x) +{ + return FFX_BROADCAST_FLOAT16(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneNotHalf(FfxFloat16x2 x) +{ + return FFX_BROADCAST_FLOAT16X2(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneNotHalf(FfxFloat16x3 x) +{ + return FFX_BROADCAST_FLOAT16X3(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneNotHalf(FfxFloat16x4 x) +{ + return FFX_BROADCAST_FLOAT16X4(1.0) - x; +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneOrHalf(FfxFloat16 x, FfxFloat16 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneOrHalf(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneOrHalf(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneOrHalf(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return max(x, y); +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneSelectHalf(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + FfxFloat16 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneSelectHalf(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + FfxFloat16x2 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneSelectHalf(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + FfxFloat16x3 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneSelectHalf(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + FfxFloat16x4 r = (-x) * z + z; + return x * y + r; +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneIsSignedHalf(FfxFloat16 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneIsSignedHalf(FfxFloat16x2 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X2(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneIsSignedHalf(FfxFloat16x3 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X3(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneIsSignedHalf(FfxFloat16x4 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X4(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] c The color to convert to Rec. 709. +/// +/// @returns +/// The color in Rec.709 space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxRec709FromLinearHalf(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.099, -0.099); + return clamp(j.x, c * j.y, pow(c, j.z) * k.x + k.y); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] c The color to convert to Rec. 709. +/// +/// @returns +/// The color in Rec.709 space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxRec709FromLinearHalf(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.099, -0.099); + return clamp(j.xx, c * j.yy, pow(c, j.zz) * k.xx + k.yy); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] c The color to convert to Rec. 709. +/// +/// @returns +/// The color in Rec.709 space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxRec709FromLinearHalf(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.099, -0.099); + return clamp(j.xxx, c * j.yyy, pow(c, j.zzz) * k.xxx + k.yyy); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGammaHalf. +/// +/// @param [in] c The value to convert to gamma space from linear. +/// @param [in] rcpX The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxGammaFromLinearHalf(FfxFloat16 c, FfxFloat16 rcpX) +{ + return pow(c, FFX_BROADCAST_FLOAT16(rcpX)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGammaHalf. +/// +/// @param [in] c The value to convert to gamma space from linear. +/// @param [in] rcpX The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxGammaFromLinearHalf(FfxFloat16x2 c, FfxFloat16 rcpX) +{ + return pow(c, FFX_BROADCAST_FLOAT16X2(rcpX)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGammaHalf. +/// +/// @param [in] c The value to convert to gamma space from linear. +/// @param [in] rcpX The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxGammaFromLinearHalf(FfxFloat16x3 c, FfxFloat16 rcpX) +{ + return pow(c, FFX_BROADCAST_FLOAT16X3(rcpX)); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] c The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSrgbFromLinearHalf(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.055, -0.055); + return clamp(j.x, c * j.y, pow(c, j.z) * k.x + k.y); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] c The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSrgbFromLinearHalf(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.055, -0.055); + return clamp(j.xx, c * j.yy, pow(c, j.zz) * k.xx + k.yy); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] c The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSrgbFromLinearHalf(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.055, -0.055); + return clamp(j.xxx, c * j.yyy, pow(c, j.zzz) * k.xxx + k.yyy); +} + +/// Compute the square root of a value. +/// +/// @param [in] c The value to compute the square root for. +/// +/// @returns +/// A square root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSquareRootHalf(FfxFloat16 c) +{ + return sqrt(c); +} + +/// Compute the square root of a value. +/// +/// @param [in] c The value to compute the square root for. +/// +/// @returns +/// A square root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSquareRootHalf(FfxFloat16x2 c) +{ + return sqrt(c); +} + +/// Compute the square root of a value. +/// +/// @param [in] c The value to compute the square root for. +/// +/// @returns +/// A square root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSquareRootHalf(FfxFloat16x3 c) +{ + return sqrt(c); +} + +/// Compute the cube root of a value. +/// +/// @param [in] c The value to compute the cube root for. +/// +/// @returns +/// A cube root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxCubeRootHalf(FfxFloat16 c) +{ + return pow(c, FFX_BROADCAST_FLOAT16(1.0 / 3.0)); +} + +/// Compute the cube root of a value. +/// +/// @param [in] c The value to compute the cube root for. +/// +/// @returns +/// A cube root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxCubeRootHalf(FfxFloat16x2 c) +{ + return pow(c, FFX_BROADCAST_FLOAT16X2(1.0 / 3.0)); +} + +/// Compute the cube root of a value. +/// +/// @param [in] c The value to compute the cube root for. +/// +/// @returns +/// A cube root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxCubeRootHalf(FfxFloat16x3 c) +{ + return pow(c, FFX_BROADCAST_FLOAT16X3(1.0 / 3.0)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] c The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxLinearFromRec709Half(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.x), c * j.y, pow(c * k.x + k.y, j.z)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] c The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxLinearFromRec709Half(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xx), c * j.yy, pow(c * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] c The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxLinearFromRec709Half(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xxx), c * j.yyy, pow(c * k.xxx + k.yyy, j.zzz)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in gamma space. +/// @param [in] x The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxLinearFromGammaHalf(FfxFloat16 c, FfxFloat16 x) +{ + return pow(c, FFX_BROADCAST_FLOAT16(x)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in gamma space. +/// @param [in] x The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxLinearFromGammaHalf(FfxFloat16x2 c, FfxFloat16 x) +{ + return pow(c, FFX_BROADCAST_FLOAT16X2(x)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in gamma space. +/// @param [in] x The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxLinearFromGammaHalf(FfxFloat16x3 c, FfxFloat16 x) +{ + return pow(c, FFX_BROADCAST_FLOAT16X3(x)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxLinearFromSrgbHalf(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.x), c * j.y, pow(c * k.x + k.y, j.z)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxLinearFromSrgbHalf(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xx), c * j.yy, pow(c * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxLinearFromSrgbHalf(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xxx), c * j.yyy, pow(c * k.xxx + k.yyy, j.zzz)); +} + +/// A remapping of 64x1 to 8x8 imposing rotated 2x2 pixel quads in quad linear. +/// +/// Remap illustration: +/// +/// 543210 +/// ~~~~~~ +/// ..xxx. +/// yy...y +/// +/// @param [in] a The input 1D coordinates to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxRemapForQuadHalf(FfxUInt32 a) +{ + return FfxUInt16x2(ffxBitfieldExtract(a, 1u, 3u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), a, 1u)); +} + +/// A helper function performing a remap 64x1 to 8x8 remapping which is necessary for 2D wave reductions. +/// +/// The 64-wide lane indices to 8x8 remapping is performed as follows: +/// +/// 00 01 08 09 10 11 18 19 +/// 02 03 0a 0b 12 13 1a 1b +/// 04 05 0c 0d 14 15 1c 1d +/// 06 07 0e 0f 16 17 1e 1f +/// 20 21 28 29 30 31 38 39 +/// 22 23 2a 2b 32 33 3a 3b +/// 24 25 2c 2d 34 35 3c 3d +/// 26 27 2e 2f 36 37 3e 3f +/// +/// @param [in] a The input 1D coordinate to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxRemapForWaveReductionHalf(FfxUInt32 a) +{ + return FfxUInt16x2(ffxBitfieldInsertMask(ffxBitfieldExtract(a, 2u, 3u), a, 1u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), ffxBitfieldExtract(a, 1u, 2u), 2u)); +} + +#endif // FFX_HALF diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h new file mode 100644 index 000000000..12147b9a7 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h @@ -0,0 +1,46 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void ffxOpAAddOneF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32 b) +{ + d = a + ffxBroadcast3(b); +} + +void ffxOpACpyF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a) +{ + d = a; +} + +void ffxOpAMulF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32x3 b) +{ + d = a * b; +} + +void ffxOpAMulOneF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32 b) +{ + d = a * b; +} + +void ffxOpARcpF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a) +{ + d = ffxReciprocal(a); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt new file mode 100644 index 000000000..9652cb0dd --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt @@ -0,0 +1,55 @@ +# This file is part of the FidelityFX SDK. +# +# Copyright (C) 2024 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files(the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions : +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +set(FRAMEINTERPOLATION_BASE_ARGS + -DFFX_FRAMEINTERPOLATION_OPTION_UPSAMPLE_SAMPLERS_USE_DATA_HALF=0 + -DFFX_FRAMEINTERPOLATION_OPTION_ACCUMULATE_SAMPLERS_USE_DATA_HALF=0 + -DFFX_FRAMEINTERPOLATION_OPTION_REPROJECT_SAMPLERS_USE_DATA_HALF=1 + -DFFX_FRAMEINTERPOLATION_OPTION_POSTPROCESSLOCKSTATUS_SAMPLERS_USE_DATA_HALF=0 + # Upsample uses lanczos approximation + -DFFX_FRAMEINTERPOLATION_OPTION_UPSAMPLE_USE_LANCZOS_TYPE=2 + -reflection -deps=gcc -DFFX_GPU=1) + +set(FRAMEINTERPOLATION_PERMUTATION_ARGS + -DFFX_FRAMEINTERPOLATION_OPTION_LOW_RES_MOTION_VECTORS={0,1} + -DFFX_FRAMEINTERPOLATION_OPTION_JITTER_MOTION_VECTORS={0,1} + -DFFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH={0,1}) + +set(FRAMEINTERPOLATION_INCLUDE_ARGS + "${FFX_GPU_PATH}" + "${FFX_GPU_PATH}/frameinterpolation") + +if (NOT FRAMEINTERPOLATION_SHADER_EXT) + set(FRAMEINTERPOLATION_SHADER_EXT *) +endif() + +file(GLOB FRAMEINTERPOLATION_SHADERS + "shaders/frameinterpolation/*.${FRAMEINTERPOLATION_SHADER_EXT}") + +# compile all the shaders +compile_shaders_with_depfile( + "${FFX_SC_EXECUTABLE}" + "${FRAMEINTERPOLATION_BASE_ARGS}" "${FRAMEINTERPOLATION_API_BASE_ARGS}" "${FRAMEINTERPOLATION_PERMUTATION_ARGS}" "${FRAMEINTERPOLATION_INCLUDE_ARGS}" + "${FRAMEINTERPOLATION_SHADERS}" "${FFX_PASS_SHADER_OUTPUT_PATH}" FRAMEINTERPOLATION_PERMUTATION_OUTPUTS) + +# add the header files they generate to the main list of dependencies +add_shader_output("${FRAMEINTERPOLATION_PERMUTATION_OUTPUTS}") diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h new file mode 100644 index 000000000..ccf2e23b8 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h @@ -0,0 +1,187 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_H +#define FFX_FRAMEINTERPOLATION_H + +struct InterpolationSourceColor +{ + FfxFloat32x3 fRaw; + FfxFloat32x3 fLinear; + FfxFloat32 fBilinearWeightSum; +}; + +InterpolationSourceColor NewInterpolationSourceColor() +{ + InterpolationSourceColor c; + c.fRaw = FfxFloat32x3(0.0, 0.0, 0.0); + c.fLinear = FfxFloat32x3(0.0, 0.0, 0.0); + c.fBilinearWeightSum = 0.0; + return c; +} + +InterpolationSourceColor SampleTextureBilinear(FfxBoolean isCurrent, FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxInt32x2 texSize) +{ + InterpolationSourceColor result = NewInterpolationSourceColor(); + + FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, texSize); + + FfxFloat32x3 fColor = FfxFloat32x3(0.0, 0.0, 0.0); + FfxFloat32 fWeightSum = 0.0f; + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsInRect(iSamplePos, InterpolationRectBase(), InterpolationRectSize())) + { + FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (isCurrent) + fColor += LoadCurrentBackbuffer(iSamplePos).rgb * fWeight; + else + fColor += LoadPreviousBackbuffer(iSamplePos).rgb * fWeight; + fWeightSum += fWeight; + } + } + + //normalize colors + fColor = (fWeightSum != 0.0f) ? fColor / fWeightSum : FfxFloat32x3(0.0f, 0.0f, 0.0f); + + result.fRaw = fColor; + result.fLinear = RawRGBToLinear(fColor); + result.fBilinearWeightSum = fWeightSum; + + return result; +} + +void updateInPaintingWeight(inout FfxFloat32 fInPaintingWeight, FfxFloat32 fFactor) +{ + fInPaintingWeight = ffxSaturate(ffxMax(fInPaintingWeight, fFactor)); +} + +void computeInterpolatedColor(FfxUInt32x2 iPxPos, out FfxFloat32x3 fInterpolatedColor, inout FfxFloat32 fInPaintingWeight) +{ + const FfxFloat32x2 fUvInInterpolationRect = (FfxFloat32x2(iPxPos - InterpolationRectBase()) + 0.5f) / InterpolationRectSize(); + const FfxFloat32x2 fUvInScreenSpace = (FfxFloat32x2(iPxPos) + 0.5f) / DisplaySize(); + const FfxFloat32x2 fLrUvInInterpolationRect = fUvInInterpolationRect * (FfxFloat32x2(RenderSize()) / GetMaxRenderSize()); + + const FfxFloat32x2 fUvLetterBoxScale = FfxFloat32x2(InterpolationRectSize()) / DisplaySize(); + + // game MV are top left aligned, the function scales them to render res UV + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fUvInInterpolationRect, gameMv); + + // OF is done on the back buffers which already have black bars + VectorFieldEntry ofMv; + SampleOpticalFlowMotionVectorField(fUvInScreenSpace, ofMv); + + // Binarize disucclusion factor + FfxFloat32x2 fDisocclusionFactor = FfxFloat32x2(FFX_EQUAL(ffxSaturate(SampleDisocclusionMask(fLrUvInInterpolationRect).xy), FfxFloat32x2(1.0, 1.0))); + + InterpolationSourceColor fPrevColorGame = SampleTextureBilinear(false, fUvInScreenSpace, +gameMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); // Get in previous frame buffer, the color of interpolated pixel + InterpolationSourceColor fCurrColorGame = SampleTextureBilinear(true, fUvInScreenSpace, -gameMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); // Get color in current framebuffer, of color of interpolated pixel + + InterpolationSourceColor fPrevColorOF = SampleTextureBilinear(false, fUvInScreenSpace, +ofMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); + InterpolationSourceColor fCurrColorOF = SampleTextureBilinear(true, fUvInScreenSpace, -ofMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); + + FfxFloat32 fDisoccludedFactor = 0.0f; + + // Disocclusion logic + { + fDisocclusionFactor.x *= FfxFloat32(!gameMv.bPosOutside); // fDisocclusionFactor.x of 1 means the pos of interpolated pixel is within bounds of previous frame. + fDisocclusionFactor.y *= FfxFloat32(!gameMv.bNegOutside); // fDisocclusionFactor.y of 1 means the pos of interpolated pixel is within bounds of current frame + + // Inpaint in bi-directional disocclusion areas + updateInPaintingWeight(fInPaintingWeight, FfxFloat32(length(fDisocclusionFactor) <= FFX_FRAMEINTERPOLATION_EPSILON)); + + FfxFloat32 t = 0.5f; + t += 0.5f * (1 - (fDisocclusionFactor.x)); + t -= 0.5f * (1 - (fDisocclusionFactor.y)); + // Say if fDisocclusionFactor.x is 1 and fDisocclusionFactor.y = 0, then t will be 0. fInterpolatedColor will be entirely from fPrevColorGame + fInterpolatedColor = ffxLerp(fPrevColorGame.fRaw, fCurrColorGame.fRaw, ffxSaturate(t)); + fDisoccludedFactor = ffxSaturate(1 - ffxMin(fDisocclusionFactor.x, fDisocclusionFactor.y)); + + if (fPrevColorGame.fBilinearWeightSum == 0.0f) + { + fInterpolatedColor = fCurrColorGame.fRaw; + } + else if (fCurrColorGame.fBilinearWeightSum == 0.0f) + { + fInterpolatedColor = fPrevColorGame.fRaw; + } + if (fPrevColorGame.fBilinearWeightSum == 0 && fCurrColorGame.fBilinearWeightSum == 0) + { + fInPaintingWeight = 1.0f; + } + } + + { + + FfxFloat32 ofT = 0.5f; + + if (fPrevColorOF.fBilinearWeightSum > 0 && fCurrColorOF.fBilinearWeightSum > 0) + { + ofT = 0.5f; + } + else if (fPrevColorOF.fBilinearWeightSum > 0) + { + ofT = 0; + } else { + ofT = 1; + } + + const FfxFloat32x3 ofColor = ffxLerp(fPrevColorOF.fRaw, fCurrColorOF.fRaw, ofT); + + FfxFloat32 fOF_Sim = NormalizedDot3(fPrevColorOF.fRaw, fCurrColorOF.fRaw); + FfxFloat32 fGame_Sim = NormalizedDot3(fPrevColorGame.fRaw, fCurrColorGame.fRaw); + + fGame_Sim = ffxLerp(ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, fGame_Sim), 1.0f, ffxSaturate(fDisoccludedFactor)); + FfxFloat32 fGameMvBias = ffxPow(ffxSaturate(fGame_Sim / ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, fOF_Sim)), 1.0f); + + const FfxFloat32 fFrameIndexFactor = FfxFloat32(FrameIndexSinceLastReset() < 10); + fGameMvBias = ffxLerp(fGameMvBias, 1.0f, fFrameIndexFactor); + + fInterpolatedColor = ffxLerp(ofColor, fInterpolatedColor, ffxSaturate(fGameMvBias)); + } +} + +void computeFrameinterpolation(FfxInt32x2 iPxPos) +{ + FfxFloat32x3 fColor = FfxFloat32x3(0, 0, 0); + FfxFloat32 fInPaintingWeight = 0.0f; + + if (IsInRect(iPxPos, InterpolationRectBase(), InterpolationRectSize()) == false || FrameIndexSinceLastReset() == 0) + { + // if we just reset or we are out of the interpolation rect, copy the current back buffer and don't interpolate + fColor = LoadCurrentBackbuffer(iPxPos); + } + else + { + computeInterpolatedColor(iPxPos, fColor, fInPaintingWeight); + } + + StoreFrameinterpolationOutput(FfxInt32x2(iPxPos), FfxFloat32x4(fColor, fInPaintingWeight)); +} + +#endif // FFX_FRAMEINTERPOLATION_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h new file mode 100644 index 000000000..20c5c2967 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h @@ -0,0 +1,758 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "ffx_frameinterpolation_resources.h" +#include "ffx_core.h" + +#define COUNTER_SPD 0 +#define COUNTER_FRAME_INDEX_SINCE_LAST_RESET 1 + + /////////////////////////////////////////////// + // declare CBs and CB accessors +/////////////////////////////////////////////// +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION, std140) uniform cbFI_t + { + FfxInt32x2 renderSize; + FfxInt32x2 displaySize; + + FfxFloat32x2 displaySizeRcp; + FfxFloat32 cameraNear; + FfxFloat32 cameraFar; + + FfxInt32x2 upscalerTargetSize; + FfxInt32 Mode; + FfxInt32 reset; + + FfxFloat32x4 fDeviceToViewDepth; + + FfxFloat32 deltaTime; + FfxInt32 HUDLessAttachedFactor; + FfxInt32x2 distortionFieldSize; + + FfxFloat32x2 opticalFlowScale; + FfxInt32 opticalFlowBlockSize; + FfxUInt32 dispatchFlags; + + FfxInt32x2 maxRenderSize; + FfxInt32 opticalFlowHalfResMode; + FfxInt32 NumInstances; + + FfxInt32x2 interpolationRectBase; + FfxInt32x2 interpolationRectSize; + + FfxFloat32x3 debugBarColor; + FfxUInt32 backBufferTransferFunction; + + FfxFloat32x2 minMaxLuminance; + FfxFloat32 fTanHalfFOV; + FfxInt32 _pad1; + + FfxFloat32x2 fJitter; + FfxFloat32x2 fMotionVectorScale; + } cbFI; + + FfxFloat32x2 Jitter() + { + return cbFI.fJitter; + } + + FfxInt32x2 InterpolationRectBase() + { + return cbFI.interpolationRectBase; + } + + FfxInt32x2 InterpolationRectSize() + { + return cbFI.interpolationRectSize; + } + + FfxFloat32x2 MotionVectorScale() + { + return cbFI.fMotionVectorScale; + } + + FfxInt32x2 RenderSize() + { + return cbFI.renderSize; + } + + FfxInt32x2 DisplaySize() + { + return cbFI.displaySize; + } + + FfxBoolean Reset() + { + return cbFI.reset == 1; + } + + FfxFloat32x4 DeviceToViewSpaceTransformFactors() + { + return cbFI.fDeviceToViewDepth; + } + + FfxInt32x2 GetOpticalFlowSize() + { + FfxInt32x2 iOpticalFlowSize = FfxInt32x2((1.0 / cbFI.opticalFlowScale) / FfxFloat32x2(cbFI.opticalFlowBlockSize.xx)); + + return iOpticalFlowSize; + } + + FfxInt32x2 GetOpticalFlowSize2() + { + return GetOpticalFlowSize() * 1; + } + + FfxFloat32x2 GetOpticalFlowScale() + { + return cbFI.opticalFlowScale; + } + + FfxInt32 GetOpticalFlowBlockSize() + { + return cbFI.opticalFlowBlockSize; + } + + FfxInt32 GetHUDLessAttachedFactor() + { + return cbFI.HUDLessAttachedFactor; + } + + FfxInt32x2 GetDistortionFieldSize() + { + return cbFI.distortionFieldSize; + } + + FfxUInt32 GetDispatchFlags() + { + return cbFI.dispatchFlags; + } + + FfxInt32x2 GetMaxRenderSize() + { + return cbFI.maxRenderSize; + } + + FfxInt32 GetOpticalFlowHalfResMode() + { + return cbFI.opticalFlowHalfResMode; + } + + FfxFloat32x3 GetDebugBarColor() + { + return cbFI.debugBarColor; + } + + FfxFloat32 TanHalfFoV() + { + return cbFI.fTanHalfFOV; + } + + FfxUInt32 BackBufferTransferFunction() + { + return cbFI.backBufferTransferFunction; + } + + FfxFloat32 MinLuminance() + { + return cbFI.minMaxLuminance[0]; + } + + FfxFloat32 MaxLuminance() + { + return cbFI.minMaxLuminance[1]; + } + +#endif // defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID, std140) uniform cbInpaintingPyramid_t + { + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + } cbInpaintingPyramid; + + FfxUInt32 NumMips() + { + return cbInpaintingPyramid.mips; + } + FfxUInt32 NumWorkGroups() + { + return cbInpaintingPyramid.numWorkGroups; + } + FfxUInt32x2 WorkGroupOffset() + { + return cbInpaintingPyramid.workGroupOffset; + } + +#endif // defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + + + /////////////////////////////////////////////// + // declare samplers +/////////////////////////////////////////////// + + +layout (set = 0, binding = 1000) uniform sampler s_LinearClamp; + + /////////////////////////////////////////////// + // declare SRVs and SRV accessors +/////////////////////////////////////////////// + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE) uniform texture2D r_previous_interpolation_source; + + FfxFloat32x3 LoadPreviousBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_previous_interpolation_source, iPxPos, 0).rgb; + } + FfxFloat32x3 SamplePreviousBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_previous_interpolation_source, s_LinearClamp), fUv, 0.0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE) uniform texture2D r_current_interpolation_source; + + FfxFloat32x3 LoadCurrentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_current_interpolation_source, iPxPos, 0).rgb; + } + FfxFloat32x3 SampleCurrentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_current_interpolation_source, s_LinearClamp), fUv, 0.0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS) uniform texture2D r_dilated_motion_vectors; + + FfxFloat32x2 LoadDilatedMotionVector(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_dilated_motion_vectors, iPxPos, 0).xy; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH) uniform texture2D r_dilated_depth; + + FfxFloat32 LoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_dilated_depth, iPxPos, 0).x; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME) uniform utexture2D r_reconstructed_depth_previous_frame; + + FfxFloat32 LoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return ffxAsFloat(texelFetch(r_reconstructed_depth_previous_frame, iPxInput, 0).x); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME) uniform utexture2D r_reconstructed_depth_interpolated_frame; + + FfxFloat32 LoadEstimatedInterpolationFrameDepth(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return ffxAsFloat(texelFetch(r_reconstructed_depth_interpolated_frame, iPxInput, 0).x); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK) uniform texture2D r_disocclusion_mask; + + FfxFloat32x4 LoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_disocclusion_mask, iPxPos, 0); + } + FfxFloat32x4 SampleDisocclusionMask(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_disocclusion_mask, s_LinearClamp), fUv, 0); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) uniform utexture2D r_game_motion_vector_field_x; + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) uniform utexture2D r_game_motion_vector_field_y; + + FfxUInt32x2 LoadGameFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = texelFetch(r_game_motion_vector_field_x, iPxSample, 0).x; + FfxUInt32 packedY = texelFetch(r_game_motion_vector_field_y, iPxSample, 0).x; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) uniform utexture2D r_optical_flow_motion_vector_field_x; + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) uniform utexture2D r_optical_flow_motion_vector_field_y; + + FfxUInt32x2 LoadOpticalFlowFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = texelFetch(r_optical_flow_motion_vector_field_x, iPxSample, 0).x; + FfxUInt32 packedY = texelFetch(r_optical_flow_motion_vector_field_y, iPxSample, 0).x; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW) uniform itexture2D r_optical_flow; + + #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + FfxFloat32x2 LoadOpticalFlow(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow, iPxPos, 0).xy * GetOpticalFlowScale(); + } + #endif +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED) uniform texture2D r_optical_flow_upsampled; + + FfxFloat32x2 LoadOpticalFlowUpsampled(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_upsampled, iPxPos, 0).xy; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE) uniform utexture2D r_optical_flow_confidence; + + FfxFloat32 LoadOpticalFlowConfidence(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_confidence, iPxPos, 0).y; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION) uniform utexture2D r_optical_flow_global_motion; + + FfxUInt32 LoadOpticalFlowGlobalMotion(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_global_motion, iPxPos, 0).x; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION) uniform utexture2D r_optical_flow_scd; + + FfxUInt32 LoadOpticalFlowSceneChangeDetection(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_scd, iPxPos, 0).x; + } + + FfxBoolean HasSceneChanged() + { + #define SCD_OUTPUT_HISTORY_BITS_SLOT 1 + //if (FrameIndex() <= 5) // threshold according to original OpenCL code + //{ + // return 1.0; + //} + //else + { + // Report that the scene is changed if the change was detected in any of the + // 4 previous frames (0xfu - covers 4 history bits). + return ((texelFetch(r_optical_flow_scd, FfxInt32x2(SCD_OUTPUT_HISTORY_BITS_SLOT, 0), 0).x) & 0xfu) != 0; + } + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG) uniform texture2D r_optical_flow_debug; + + FfxFloat32x4 LoadOpticalFlowDebug(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_debug, iPxPos, 0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT) uniform texture2D r_output; + + FfxFloat32x4 LoadFrameInterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return texelFetch(r_output, iPxInput, 0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID) uniform texture2D r_inpainting_pyramid; + + FfxFloat32x4 LoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32 mipLevel, FFX_PARAMETER_IN FfxUInt32x2 iPxInput) + { + return texelFetch(r_inpainting_pyramid, FfxInt32x2(iPxInput), mipLevel); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER) uniform texture2D r_present_backbuffer; + + FfxFloat32x4 LoadPresentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return texelFetch(r_present_backbuffer, iPxInput, 0); + } + FfxFloat32x4 SamplePresentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_present_backbuffer, s_LinearClamp), fUv, 0.0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS) readonly buffer FrameInterpolationCounters_t + { + FfxUInt32 data[]; + } r_counters; + + FfxUInt32 LoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return r_counters.data[iPxPos]; + } + + FfxUInt32 FrameIndexSinceLastReset() + { + return LoadCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET); + } +#endif + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH) uniform texture2D r_input_depth; + + FfxFloat32 LoadInputDepth(FfxInt32x2 iPxPos) + { + return texelFetch(r_input_depth, iPxPos, 0).x; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS) uniform texture2D r_input_motion_vectors; + + FfxFloat32x2 LoadInputMotionVector(FfxInt32x2 iPxDilatedMotionVectorPos) + { + FfxFloat32x2 fSrcMotionVector = texelFetch(r_input_motion_vectors, iPxDilatedMotionVectorPos, 0).xy; + + FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale(); + + #if FFX_FRAMEINTERPOLATION_OPTION_JITTERED_MOTION_VECTORS + fUvMotionVector -= MotionVectorJitterCancellation(); + #endif + + return fUvMotionVector; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD) + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD) uniform texture2D r_input_distortion_field; + FfxFloat32x2 SampleDistortionField(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_input_distortion_field, s_LinearClamp), fUv, 0.0).xy; + } +#endif + +/////////////////////////////////////////////// +// declare UAVs and UAV accessors +/////////////////////////////////////////////// +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT /* app controlled format */) uniform image2D rw_output; + + FfxFloat32x4 RWLoadFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_output, iPxPos); + } + + void StoreFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 val) + { + imageStore(rw_output, iPxPos, val); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS, rg16f) uniform image2D rw_dilated_motion_vectors; + + FfxFloat32x2 RWLoadDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_dilated_motion_vectors, iPxPos).xy; + } + + void StoreDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + imageStore(rw_dilated_motion_vectors, iPxPos, FfxFloat32x4(val, 0.0, 0.0)); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH, r32f) uniform image2D rw_dilated_depth; + + FfxFloat32 RWLoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_dilated_depth, iPxPos).x; + } + + void StoreDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 val) + { + imageStore(rw_dilated_depth, iPxPos, FfxFloat32x4(val, 0.0, 0.0, 0.0)); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME, r32ui) uniform uimage2D rw_reconstructed_depth_previous_frame; + + FfxFloat32 RWLoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(imageLoad(rw_reconstructed_depth_previous_frame, iPxPos).x); + } + + void UpdateReconstructedDepthPreviousFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + imageAtomicMax(rw_reconstructed_depth_previous_frame, iPxSample, uDepth); +#else + imageAtomicMin(rw_reconstructed_depth_previous_frame, iPxSample, uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME, r32ui) uniform uimage2D rw_reconstructed_depth_interpolated_frame; + + FfxFloat32 RWLoadReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(imageLoad(rw_reconstructed_depth_interpolated_frame, iPxPos).x); + } + + void StoreReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 value) + { + FfxUInt32 uDepth = ffxAsUInt32(value); + imageStore(rw_reconstructed_depth_interpolated_frame, iPxPos, FfxUInt32x4(uDepth, 0, 0, 0)); + } + + void UpdateReconstructedDepthInterpolatedFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + imageAtomicMax(rw_reconstructed_depth_interpolated_frame, iPxSample, uDepth); +#else + imageAtomicMin(rw_reconstructed_depth_interpolated_frame, iPxSample, uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK, rg8) uniform image2D rw_disocclusion_mask; + + FfxFloat32x2 RWLoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_disocclusion_mask, iPxPos).xy; + } + + void StoreDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + imageStore(rw_disocclusion_mask, iPxPos, FfxFloat32x4(val, 0.0, 0.0)); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y) + + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X, r32ui) uniform uimage2D rw_game_motion_vector_field_x; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y, r32ui) uniform uimage2D rw_game_motion_vector_field_y; + + FfxUInt32 RWLoadGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_game_motion_vector_field_x, iPxPos).x; + } + + void StoreGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_game_motion_vector_field_x, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + + FfxUInt32 RWLoadGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_game_motion_vector_field_y, iPxPos).x; + } + + void StoreGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_game_motion_vector_field_y, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + + void UpdateGameMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + imageAtomicMax(rw_game_motion_vector_field_x, iPxPos, packedVector.x); + imageAtomicMax(rw_game_motion_vector_field_y, iPxPos, packedVector.y); + } + + FfxUInt32 UpdateGameMotionVectorFieldEx(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + FfxUInt32 uPreviousValueX = imageAtomicMax(rw_game_motion_vector_field_x, iPxPos, packedVector.x); + FfxUInt32 uPreviousValueY = imageAtomicMax(rw_game_motion_vector_field_y, iPxPos, packedVector.y); + + const FfxUInt32 uExistingVectorFieldEntry = ffxMax(uPreviousValueX, uPreviousValueY); + + return uExistingVectorFieldEntry; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X, r32ui) uniform uimage2D rw_optical_flow_motion_vector_field_x; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y, r32ui) uniform uimage2D rw_optical_flow_motion_vector_field_y; + + FfxUInt32 RWLoadOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_optical_flow_motion_vector_field_x, iPxPos).x; + } + void StoreOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_optical_flow_motion_vector_field_x, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + FfxUInt32 RWLoadOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_optical_flow_motion_vector_field_y, iPxPos).x; + } + void StoreOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_optical_flow_motion_vector_field_y, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + void UpdateOpticalflowMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + imageAtomicMax(rw_optical_flow_motion_vector_field_x, iPxPos, packedVector.x); + imageAtomicMax(rw_optical_flow_motion_vector_field_y, iPxPos, packedVector.y); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS) coherent buffer FrameInterpolationRWCounters_t + { + FfxUInt32 data[]; + } rw_counters; + + FfxUInt32 RWLoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return rw_counters.data[iPxPos]; + } + + void StoreCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_IN FfxUInt32 counter) + { + rw_counters.data[iPxPos] = counter; + } + void AtomicIncreaseCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_OUT FfxUInt32 oldVal) + { + oldVal = atomicAdd(rw_counters.data[iPxPos], 1); + } +#endif + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12) + + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0, rgba16f) uniform image2D rw_inpainting_pyramid0; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1, rgba16f) uniform image2D rw_inpainting_pyramid1; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2, rgba16f) uniform image2D rw_inpainting_pyramid2; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3, rgba16f) uniform image2D rw_inpainting_pyramid3; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4, rgba16f) uniform image2D rw_inpainting_pyramid4; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5, rgba16f) coherent uniform image2D rw_inpainting_pyramid5; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6, rgba16f) uniform image2D rw_inpainting_pyramid6; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7, rgba16f) uniform image2D rw_inpainting_pyramid7; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8, rgba16f) uniform image2D rw_inpainting_pyramid8; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9, rgba16f) uniform image2D rw_inpainting_pyramid9; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10, rgba16f) uniform image2D rw_inpainting_pyramid10; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11, rgba16f) uniform image2D rw_inpainting_pyramid11; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12, rgba16f) uniform image2D rw_inpainting_pyramid12; + + + FfxFloat32x4 RWLoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 index) + { + #define LOAD(idx) \ + if (index == idx) \ + { \ + return imageLoad(rw_inpainting_pyramid##idx, iPxPos); \ + } + LOAD(0); + LOAD(1); + LOAD(2); + LOAD(3); + LOAD(4); + LOAD(5); + LOAD(6); + LOAD(7); + LOAD(8); + LOAD(9); + LOAD(10); + LOAD(11); + LOAD(12); + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + + #undef LOAD + } + + void StoreInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 outValue, FFX_PARAMETER_IN FfxUInt32 index) + { + #define STORE(idx) \ + if (index == idx) \ + { \ + imageStore(rw_inpainting_pyramid##idx, iPxPos, outValue); \ + } + + STORE(0); + STORE(1); + STORE(2); + STORE(3); + STORE(4); + STORE(5); + STORE(6); + STORE(7); + STORE(8); + STORE(9); + STORE(10); + STORE(11); + STORE(12); + + #undef STORE + } +#endif diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h new file mode 100644 index 000000000..a58743d2f --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h @@ -0,0 +1,814 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "ffx_frameinterpolation_resources.h" + +#if defined(FFX_GPU) +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic push +#pragma dxc diagnostic ignored "-Wambig-lit-shift" +#endif //__hlsl_dx_compiler +#include "ffx_core.h" +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic pop +#endif //__hlsl_dx_compiler +#endif // #if defined(FFX_GPU) + +#if defined(FFX_GPU) + +#define COUNTER_SPD 0 +#define COUNTER_FRAME_INDEX_SINCE_LAST_RESET 1 + + /////////////////////////////////////////////// + // declare CBs and CB accessors +/////////////////////////////////////////////// +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + cbuffer cbFI : FFX_DECLARE_CB(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + { + FfxInt32x2 renderSize; + FfxInt32x2 displaySize; + + FfxFloat32x2 displaySizeRcp; + FfxFloat32 cameraNear; + FfxFloat32 cameraFar; + + FfxInt32x2 upscalerTargetSize; + FfxInt32 Mode; + FfxInt32 reset; + + FfxFloat32x4 fDeviceToViewDepth; + + FfxFloat32 deltaTime; + FfxInt32 HUDLessAttachedFactor; + FfxInt32x2 distortionFieldSize; + + FfxFloat32x2 opticalFlowScale; + FfxInt32 opticalFlowBlockSize; + FfxUInt32 dispatchFlags; + + FfxInt32x2 maxRenderSize; + FfxInt32 opticalFlowHalfResMode; + FfxInt32 NumInstances; + + FfxInt32x2 interpolationRectBase; + FfxInt32x2 interpolationRectSize; + + FfxFloat32x3 debugBarColor; + FfxUInt32 backBufferTransferFunction; + + FfxFloat32x2 minMaxLuminance; + FfxFloat32 fTanHalfFOV; + FfxInt32 _pad1; + + FfxFloat32x2 fJitter; + FfxFloat32x2 fMotionVectorScale; + } + + const FfxFloat32x2 Jitter() + { + return fJitter; + } + + const FfxFloat32x2 MotionVectorScale() + { + return fMotionVectorScale; + } + + const FfxInt32x2 InterpolationRectBase() + { + return interpolationRectBase; + } + + const FfxInt32x2 InterpolationRectSize() + { + return interpolationRectSize; + } + + const FfxInt32x2 RenderSize() + { + return renderSize; + } + + const FfxInt32x2 DisplaySize() + { + return displaySize; + } + + const FfxBoolean Reset() + { + return reset == 1; + } + + FfxFloat32x4 DeviceToViewSpaceTransformFactors() + { + return fDeviceToViewDepth; + } + + FfxInt32x2 GetOpticalFlowSize() + { + FfxInt32x2 iOpticalFlowSize = (1.0f / opticalFlowScale) / FfxFloat32x2(opticalFlowBlockSize.xx); + + return iOpticalFlowSize; + } + + FfxInt32x2 GetOpticalFlowSize2() + { + return GetOpticalFlowSize() * 1; + } + + FfxFloat32x2 GetOpticalFlowScale() + { + return opticalFlowScale; + } + + FfxInt32 GetOpticalFlowBlockSize() + { + return opticalFlowBlockSize; + } + + FfxInt32 GetHUDLessAttachedFactor() + { + return HUDLessAttachedFactor; + } + + FfxInt32x2 GetDistortionFieldSize() + { + return distortionFieldSize; + } + + FfxUInt32 GetDispatchFlags() + { + return dispatchFlags; + } + + FfxInt32x2 GetMaxRenderSize() + { + return maxRenderSize; + } + + FfxInt32 GetOpticalFlowHalfResMode() + { + return opticalFlowHalfResMode; + } + + FfxFloat32x3 GetDebugBarColor() + { + return debugBarColor; + } + + FfxFloat32 TanHalfFoV() + { + return fTanHalfFOV; + } + + FfxUInt32 BackBufferTransferFunction() + { + return backBufferTransferFunction; + } + + FfxFloat32 MinLuminance() + { + return minMaxLuminance[0]; + } + + FfxFloat32 MaxLuminance() + { + return minMaxLuminance[1]; + } + +#endif // #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + cbuffer cbInpaintingPyramid : FFX_DECLARE_CB(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + { + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + } + + FfxUInt32 NumMips() + { + return mips; + } + FfxUInt32 NumWorkGroups() + { + return numWorkGroups; + } + FfxUInt32x2 WorkGroupOffset() + { + return workGroupOffset; + } +#endif // #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + +#define FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(p) FFX_FRAMEINTERPOLATION_ROOTSIG_STR(p) +#define FFX_FRAMEINTERPOLATION_ROOTSIG_STR(p) #p +#define FFX_FRAMEINTERPOLATION_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "CBV(b0), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] + +#define FFX_FRAMEINTERPOLATION_INPAINTING_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "CBV(b0), " \ + "CBV(b1), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] + +#if defined(FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG) +#define FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG_CONTENT FFX_FRAMEINTERPOLATION_ROOTSIG +#define FFX_FRAMEINTERPOLATION_EMBED_INPAINTING_ROOTSIG_CONTENT FFX_FRAMEINTERPOLATION_INPAINTING_ROOTSIG +#else +#define FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG_CONTENT +#define FFX_FRAMEINTERPOLATION_EMBED_INPAINTING_ROOTSIG_CONTENT +#endif // #if FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG + +/////////////////////////////////////////////// +// declare samplers +/////////////////////////////////////////////// + +SamplerState s_LinearClamp : register(s0); + +/////////////////////////////////////////////// +// declare SRVs and SRV accessors +/////////////////////////////////////////////// + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE + Texture2D r_previous_interpolation_source : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE); + + FfxFloat32x3 LoadPreviousBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_previous_interpolation_source[iPxPos].rgb; + } + FfxFloat32x3 SamplePreviousBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_previous_interpolation_source.SampleLevel(s_LinearClamp, fUv, 0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE + Texture2D r_current_interpolation_source : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE); + + FfxFloat32x3 LoadCurrentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_current_interpolation_source[iPxPos].rgb; + } + FfxFloat32x3 SampleCurrentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_current_interpolation_source.SampleLevel(s_LinearClamp, fUv, 0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS + Texture2D r_dilated_motion_vectors : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS); + + FfxFloat32x2 LoadDilatedMotionVector(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_dilated_motion_vectors[iPxPos].xy; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH + Texture2D r_dilated_depth : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH); + + FfxFloat32 LoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_dilated_depth[iPxPos].x; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + Texture2D r_reconstructed_depth_previous_frame : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME); + + FfxFloat32 LoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return asfloat(r_reconstructed_depth_previous_frame[iPxInput]); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + Texture2D r_reconstructed_depth_interpolated_frame : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME); + + FfxFloat32 LoadEstimatedInterpolationFrameDepth(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return asfloat(r_reconstructed_depth_interpolated_frame[iPxInput]); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK + Texture2D r_disocclusion_mask : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK); + + FfxFloat32x4 LoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_disocclusion_mask[iPxPos]; + } + FfxFloat32x4 SampleDisocclusionMask(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_disocclusion_mask.SampleLevel(s_LinearClamp, fUv, 0); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) + Texture2D r_game_motion_vector_field_x : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X); + Texture2D r_game_motion_vector_field_y : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y); + + FfxUInt32x2 LoadGameFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = r_game_motion_vector_field_x[iPxSample]; + FfxUInt32 packedY = r_game_motion_vector_field_y[iPxSample]; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + Texture2D r_optical_flow_motion_vector_field_x : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X); + Texture2D r_optical_flow_motion_vector_field_y : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y); + + FfxUInt32x2 LoadOpticalFlowFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = r_optical_flow_motion_vector_field_x[iPxSample]; + FfxUInt32 packedY = r_optical_flow_motion_vector_field_y[iPxSample]; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW + Texture2D r_optical_flow : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW); + + #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + FfxFloat32x2 LoadOpticalFlow(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow[iPxPos] * GetOpticalFlowScale(); + } + #endif +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED + Texture2D r_optical_flow_upsampled : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED); + + FfxFloat32x2 LoadOpticalFlowUpsampled(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_upsampled[iPxPos]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE + Texture2D r_optical_flow_confidence : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE); + + FfxFloat32 LoadOpticalFlowConfidence(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_confidence[iPxPos].y; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION + Texture2D r_optical_flow_global_motion : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION); + + FfxUInt32 LoadOpticalFlowGlobalMotion(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_global_motion[iPxPos]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION + Texture2D r_optical_flow_scd : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION); + + FfxUInt32 LoadOpticalFlowSceneChangeDetection(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_scd[iPxPos]; + } + + FfxBoolean HasSceneChanged() + { + #define SCD_OUTPUT_HISTORY_BITS_SLOT 1 + //if (FrameIndex() <= 5) // threshold according to original OpenCL code + //{ + // return 1.0; + //} + //else + { + // Report that the scene is changed if the change was detected in any of the + // 4 previous frames (0xfu - covers 4 history bits). + return (r_optical_flow_scd[FfxInt32x2(SCD_OUTPUT_HISTORY_BITS_SLOT, 0)] & 0xfu) != 0; + } + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG + Texture2D r_optical_flow_debug : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG); + + FfxFloat32x4 LoadOpticalFlowDebug(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_debug[iPxPos]; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_MASK) && defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT) + Texture2D r_output : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT); + Texture2D r_inpainting_mask : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_MASK); + + FfxFloat32x4 LoadFrameInterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return FfxFloat32x4(r_output[iPxInput], r_inpainting_mask[iPxInput]); + } +#elif defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT) + Texture2D r_output : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT); + FfxFloat32x4 LoadFrameInterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return r_output[iPxInput]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID + Texture2D r_inpainting_pyramid : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID); + + FfxFloat32x4 LoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32 mipLevel, FFX_PARAMETER_IN FfxUInt32x2 iPxInput) + { + return r_inpainting_pyramid.mips[mipLevel][iPxInput]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER + Texture2D r_present_backbuffer : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER); + + FfxFloat32x4 LoadPresentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return r_present_backbuffer[iPxInput]; + } + FfxFloat32x4 SamplePresentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_present_backbuffer.SampleLevel(s_LinearClamp, fUv, 0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS + StructuredBuffer r_counters : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS); + + FfxUInt32 LoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return r_counters[iPxPos]; + } + + const FfxUInt32 FrameIndexSinceLastReset() + { + return LoadCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH) +Texture2D r_input_depth : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH); +FfxFloat32 LoadInputDepth(FfxInt32x2 iPxPos) +{ + return r_input_depth[iPxPos]; +} +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS) +Texture2D r_input_motion_vectors : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS); +FfxFloat32x2 LoadInputMotionVector(FfxInt32x2 iPxDilatedMotionVectorPos) +{ + FfxFloat32x2 fSrcMotionVector = r_input_motion_vectors[iPxDilatedMotionVectorPos].xy; + + FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale(); + +#if FFX_FRAMEINTERPOLATION_OPTION_JITTERED_MOTION_VECTORS + fUvMotionVector -= MotionVectorJitterCancellation(); +#endif + + return fUvMotionVector; +} +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD) + Texture2D r_input_distortion_field : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD); + FfxFloat32x2 SampleDistortionField(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_input_distortion_field.SampleLevel(s_LinearClamp, fUv, 0); + } +#endif + +/////////////////////////////////////////////// +// declare UAVs and UAV accessors +/////////////////////////////////////////////// +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_MASK) && defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT) + RWTexture2D rw_output : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT); + RWTexture2D rw_inpainting_mask : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_MASK); + + FfxFloat32x4 RWLoadFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return FfxFloat32x4(rw_output[iPxPos], rw_inpainting_mask[iPxPos]); + } + + void StoreFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 val) + { + rw_output[iPxPos] = val.rgb; + rw_inpainting_mask[iPxPos] = val.a; + } + +#elif defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT) + RWTexture2D rw_output : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT); + + FfxFloat32x4 RWLoadFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_output[iPxPos]; + } + + void StoreFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 val) + { + rw_output[iPxPos] = val; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS + RWTexture2D rw_dilated_motion_vectors : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS); + + FfxFloat32x2 RWLoadDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_dilated_motion_vectors[iPxPos]; + } + + void StoreDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + rw_dilated_motion_vectors[iPxPos] = val; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH + RWTexture2D rw_dilated_depth : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH); + + FfxFloat32 RWLoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_dilated_depth[iPxPos]; + } + + void StoreDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 val) + { + rw_dilated_depth[iPxPos] = val; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + RWTexture2D rw_reconstructed_depth_previous_frame : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME); + + FfxFloat32 RWLoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(rw_reconstructed_depth_previous_frame[iPxPos]); + } + + void UpdateReconstructedDepthPreviousFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + InterlockedMax(rw_reconstructed_depth_previous_frame[iPxSample], uDepth); +#else + InterlockedMin(rw_reconstructed_depth_previous_frame[iPxSample], uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + RWTexture2D rw_reconstructed_depth_interpolated_frame : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME); + + FfxFloat32 RWLoadReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(rw_reconstructed_depth_interpolated_frame[iPxPos]); + } + + void StoreReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 value) + { + FfxUInt32 uDepth = ffxAsUInt32(value); + rw_reconstructed_depth_interpolated_frame[iPxPos] = uDepth; + } + + void UpdateReconstructedDepthInterpolatedFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + InterlockedMax(rw_reconstructed_depth_interpolated_frame[iPxSample], uDepth); +#else + InterlockedMin(rw_reconstructed_depth_interpolated_frame[iPxSample], uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK + RWTexture2D rw_disocclusion_mask : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK); + + FfxFloat32x2 RWLoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_disocclusion_mask[iPxPos]; + } + + void StoreDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + rw_disocclusion_mask[iPxPos] = val; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y) + + RWTexture2D rw_game_motion_vector_field_x : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X); + RWTexture2D rw_game_motion_vector_field_y : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y); + + FfxUInt32 RWLoadGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_game_motion_vector_field_x[iPxPos]; + } + + void StoreGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_game_motion_vector_field_x[iPxPos] = val; + } + + FfxUInt32 RWLoadGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_game_motion_vector_field_y[iPxPos]; + } + + void StoreGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_game_motion_vector_field_y[iPxPos] = val; + } + + void UpdateGameMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + InterlockedMax(rw_game_motion_vector_field_x[iPxPos], packedVector.x); + InterlockedMax(rw_game_motion_vector_field_y[iPxPos], packedVector.y); + } + + FfxUInt32 UpdateGameMotionVectorFieldEx(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + FfxUInt32 uPreviousValueX = 0; + FfxUInt32 uPreviousValueY = 0; + InterlockedMax(rw_game_motion_vector_field_x[iPxPos], packedVector.x, uPreviousValueX); + InterlockedMax(rw_game_motion_vector_field_y[iPxPos], packedVector.y, uPreviousValueY); + + const FfxUInt32 uExistingVectorFieldEntry = ffxMax(uPreviousValueX, uPreviousValueY); + + return uExistingVectorFieldEntry; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + + RWTexture2D rw_optical_flow_motion_vector_field_x : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X); + RWTexture2D rw_optical_flow_motion_vector_field_y : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y); + + FfxUInt32 RWLoadOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_optical_flow_motion_vector_field_x[iPxPos]; + } + void StoreOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_optical_flow_motion_vector_field_x[iPxPos] = val; + } + FfxUInt32 RWLoadOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_optical_flow_motion_vector_field_y[iPxPos]; + } + void StoreOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_optical_flow_motion_vector_field_y[iPxPos] = val; + } + void UpdateOpticalflowMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + InterlockedMax(rw_optical_flow_motion_vector_field_x[iPxPos], packedVector.x); + InterlockedMax(rw_optical_flow_motion_vector_field_y[iPxPos], packedVector.y); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS + globallycoherent RWStructuredBuffer rw_counters : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS); + + FfxUInt32 RWLoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return rw_counters[iPxPos]; + } + + void StoreCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_IN FfxUInt32 counter) + { + rw_counters[iPxPos] = counter; + } + void AtomicIncreaseCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_OUT FfxUInt32 oldVal) + { + InterlockedAdd(rw_counters[iPxPos], 1, oldVal); + } +#endif + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12) + + RWTexture2D rw_inpainting_pyramid0 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0); + RWTexture2D rw_inpainting_pyramid1 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1); + RWTexture2D rw_inpainting_pyramid2 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2); + RWTexture2D rw_inpainting_pyramid3 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3); + RWTexture2D rw_inpainting_pyramid4 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4); + globallycoherent RWTexture2D rw_inpainting_pyramid5 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5); + RWTexture2D rw_inpainting_pyramid6 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6); + RWTexture2D rw_inpainting_pyramid7 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7); + RWTexture2D rw_inpainting_pyramid8 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8); + RWTexture2D rw_inpainting_pyramid9 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9); + RWTexture2D rw_inpainting_pyramid10 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10); + RWTexture2D rw_inpainting_pyramid11 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11); + RWTexture2D rw_inpainting_pyramid12 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12); + + + FfxFloat32x4 RWLoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 index) + { + #define LOAD(idx) \ + if (index == idx) \ + { \ + return rw_inpainting_pyramid##idx[iPxPos]; \ + } + LOAD(0); + LOAD(1); + LOAD(2); + LOAD(3); + LOAD(4); + LOAD(5); + LOAD(6); + LOAD(7); + LOAD(8); + LOAD(9); + LOAD(10); + LOAD(11); + LOAD(12); + return 0; + + #undef LOAD + } + + void StoreInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 outValue, FFX_PARAMETER_IN FfxUInt32 index) + { + #define STORE(idx) \ + if (index == idx) \ + { \ + rw_inpainting_pyramid##idx[iPxPos] = outValue; \ + } + + STORE(0); + STORE(1); + STORE(2); + STORE(3); + STORE(4); + STORE(5); + STORE(6); + STORE(7); + STORE(8); + STORE(9); + STORE(10); + STORE(11); + STORE(12); + + #undef STORE + } +#endif + +#endif // #if defined(FFX_GPU) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h new file mode 100644 index 000000000..8206bf43b --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h @@ -0,0 +1,445 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if !defined(FFX_FRAMEINTERPOLATION_COMMON_H) +#define FFX_FRAMEINTERPOLATION_COMMON_H + +#define FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_TEAR_LINES (1 << 0) +#define FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_RESET_INDICATORS (1 << 1) +#define FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_VIEW (1 << 2) + +FFX_STATIC const FfxFloat32 FFX_FRAMEINTERPOLATION_EPSILON = 1e-03f; +FFX_STATIC const FfxFloat32 FFX_FRAMEINTERPOLATION_FLT_MAX = 3.402823466e+38f; +FFX_STATIC const FfxFloat32 FFX_FRAMEINTERPOLATION_FLT_MIN = 1.175494351e-38f; + +FFX_STATIC const FfxFloat32 fReconstructedDepthBilinearWeightThreshold = FFX_FRAMEINTERPOLATION_EPSILON; + +FfxFloat32 RGBToLuma(FfxFloat32x3 fLinearRgb) +{ + return dot(fLinearRgb, FfxFloat32x3(0.2126f, 0.7152f, 0.0722f)); +} + +FfxFloat32 LinearRec2020ToLuminance(FfxFloat32x3 linearRec2020RGB) +{ + FfxFloat32 fY = 0.2627 * linearRec2020RGB.x + 0.678 * linearRec2020RGB.y + 0.0593 * linearRec2020RGB.z; + return fY; +} + +FfxFloat32x3 ffxscRGBToLinear(FfxFloat32x3 value, FfxFloat32 minLuminance, FfxFloat32 maxLuminance) +{ + FfxFloat32x3 p = value - ffxBroadcast3(minLuminance / 80.0f); + return p / ffxBroadcast3((maxLuminance - minLuminance) / 80.0f); +} + +FfxFloat32x3 RawRGBToLinear(FfxFloat32x3 fRawRgb) +{ + FfxFloat32x3 fLinearRgb; + + switch (BackBufferTransferFunction()) + { + case 0: + fLinearRgb = ffxLinearFromSrgb(fRawRgb); + break; + case 1: + fLinearRgb = ffxLinearFromPQ(fRawRgb) * (10000.0f / MaxLuminance()); + break; + case 2: + fLinearRgb = ffxscRGBToLinear(fRawRgb, MinLuminance(), MaxLuminance()); + break; + } + + return fLinearRgb; +} + +FfxFloat32 RawRGBToLuminance(FfxFloat32x3 fRawRgb) +{ + FfxFloat32 fLuminance = 0.0f; + + switch (BackBufferTransferFunction()) + { + case 0: + fLuminance = RGBToLuma(RawRGBToLinear(fRawRgb)); + break; + case 1: + fLuminance = LinearRec2020ToLuminance(RawRGBToLinear(fRawRgb)); + break; + case 2: + fLuminance = RGBToLuma(RawRGBToLinear(fRawRgb)); + break; + } + + return fLuminance; +} + +FfxFloat32 RawRGBToPerceivedLuma(FfxFloat32x3 fRawRgb) +{ + FfxFloat32 fLuminance = RawRGBToLuminance(fRawRgb); + + FfxFloat32 fPercievedLuminance = 0; + if (fLuminance <= 216.0f / 24389.0f) + { + fPercievedLuminance = fLuminance * (24389.0f / 27.0f); + } + else + { + fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; + } + + return fPercievedLuminance * 0.01f; +} + +struct BilinearSamplingData +{ + FfxInt32x2 iOffsets[4]; + FfxFloat32 fWeights[4]; + FfxInt32x2 iBasePos; +}; + +BilinearSamplingData GetBilinearSamplingData(FfxFloat32x2 fUv, FfxInt32x2 iSize) +{ + BilinearSamplingData data; + + FfxFloat32x2 fPxSample = (fUv * iSize) - FfxFloat32x2(0.5f, 0.5f); + data.iBasePos = FfxInt32x2(floor(fPxSample)); + FfxFloat32x2 fPxFrac = ffxFract(fPxSample); + + data.iOffsets[0] = FfxInt32x2(0, 0); + data.iOffsets[1] = FfxInt32x2(1, 0); + data.iOffsets[2] = FfxInt32x2(0, 1); + data.iOffsets[3] = FfxInt32x2(1, 1); + + data.fWeights[0] = (1 - fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[1] = (fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[2] = (1 - fPxFrac.x) * (fPxFrac.y); + data.fWeights[3] = (fPxFrac.x) * (fPxFrac.y); + + return data; +} + +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) +FfxFloat32 ConvertFromDeviceDepthToViewSpace(FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 deviceToViewDepth = DeviceToViewSpaceTransformFactors(); + return deviceToViewDepth[1] / (fDeviceDepth - deviceToViewDepth[0]); +} + +FfxFloat32x2 ComputeNdc(FfxFloat32x2 fPxPos, FfxInt32x2 iSize) +{ + return fPxPos / FfxFloat32x2(iSize) * FfxFloat32x2(2.0f, -2.0f) + FfxFloat32x2(-1.0f, 1.0f); +} + +FfxFloat32x3 GetViewSpacePosition(FfxInt32x2 iViewportPos, FfxInt32x2 iViewportSize, FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 fDeviceToViewDepth = DeviceToViewSpaceTransformFactors(); + + const FfxFloat32 Z = ConvertFromDeviceDepthToViewSpace(fDeviceDepth); + + const FfxFloat32x2 fNdcPos = ComputeNdc(iViewportPos, iViewportSize); + const FfxFloat32 X = fDeviceToViewDepth[2] * fNdcPos.x * Z; + const FfxFloat32 Y = fDeviceToViewDepth[3] * fNdcPos.y * Z; + + return FfxFloat32x3(X, Y, Z); +} +#endif + +FfxBoolean IsOnScreen(FfxInt32x2 pos, FfxInt32x2 size) +{ + return all(FFX_LESS_THAN(FfxUInt32x2(pos), FfxUInt32x2(size))); +} + +FfxBoolean IsUvInside(FfxFloat32x2 fUv) +{ + return (fUv.x > 0.0f && fUv.x < 1.0f) && (fUv.y > 0.0f && fUv.y < 1.0f); +} + +FfxBoolean IsInRect(FfxInt32x2 pos, FfxInt32x2 iRectCorner, FfxInt32x2 iRectSize) +{ + return (pos.x >= iRectCorner.x && pos.x < (iRectSize.x + iRectCorner.x) && pos.y >= iRectCorner.y && pos.y < (iRectSize.y + iRectCorner.y)); +} + +FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1) +{ + const FfxFloat32 m = ffxMax(v0, v1); + return m != 0 ? ffxMin(v0, v1) / m : 0; +} + +FfxFloat32 NormalizedDot3(const FfxFloat32x3 v0, const FfxFloat32x3 v1) +{ + FfxFloat32 fMaxLength = ffxMax(length(v0), length(v1)); + + return fMaxLength > 0.0f ? dot(v0 / fMaxLength, v1 / fMaxLength) : 1.0f; +} + +FfxFloat32 NormalizedDot2(const FfxFloat32x2 v0, const FfxFloat32x2 v1) +{ + FfxFloat32 fMaxLength = ffxMax(length(v0), length(v1)); + + return fMaxLength > 0.0f ? dot(v0 / fMaxLength, v1 / fMaxLength) : 1.0f; +} + +FfxFloat32 CalculateStaticContentFactor(FfxFloat32x3 fCurrentInterpolationSource, FfxFloat32x3 fPresentColor) +{ + const FfxFloat32x3 fFactor = ffxSaturate(FfxFloat32x3( + ffxSaturate((1.0f - MinDividedByMax(fCurrentInterpolationSource.r, fPresentColor.r)) / 0.1f), + ffxSaturate((1.0f - MinDividedByMax(fCurrentInterpolationSource.g, fPresentColor.g)) / 0.1f), + ffxSaturate((1.0f - MinDividedByMax(fCurrentInterpolationSource.b, fPresentColor.b)) / 0.1f) + )); + + return max(fFactor.x, max(fFactor.y, fFactor.z)); +} + +// +// MOTION VECTOR FIELD +// + +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_ENTRY_BIT_COUNT = 32; + +// Make sure all bit counts add up to MOTION_VECTOR_FIELD_ENTRY_BIT_COUNT +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_VECTOR_COEFFICIENT_BIT_COUNT = 16; +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_PRIORITY_LOW_BIT_COUNT = 5; +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_PRIORITY_HIGH_BIT_COUNT = 10; +FFX_STATIC const FfxUInt32 MOTION_VECTOR_PRIMARY_VECTOR_INDICATION_BIT_COUNT = 1; + +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_PRIMARY_VECTOR_INDICATION_BIT = (1U << (MOTION_VECTOR_FIELD_ENTRY_BIT_COUNT - 1)); + +FFX_STATIC const FfxUInt32 PRIORITY_LOW_MAX = (1U << MOTION_VECTOR_FIELD_PRIORITY_LOW_BIT_COUNT) - 1; +FFX_STATIC const FfxUInt32 PRIORITY_HIGH_MAX = (1U << MOTION_VECTOR_FIELD_PRIORITY_HIGH_BIT_COUNT) - 1; + +FFX_STATIC const FfxUInt32 PRIORITY_LOW_OFFSET = MOTION_VECTOR_FIELD_VECTOR_COEFFICIENT_BIT_COUNT; +FFX_STATIC const FfxUInt32 PRIORITY_HIGH_OFFSET = PRIORITY_LOW_OFFSET + MOTION_VECTOR_FIELD_PRIORITY_LOW_BIT_COUNT; +FFX_STATIC const FfxUInt32 PRIMARY_VECTOR_INDICATION_OFFSET = PRIORITY_HIGH_OFFSET + MOTION_VECTOR_FIELD_PRIORITY_HIGH_BIT_COUNT; + +struct VectorFieldEntry +{ + FfxFloat32x2 fMotionVector; + FfxFloat32 uHighPriorityFactor; + FfxFloat32 uLowPriorityFactor; + FfxBoolean bValid; + FfxBoolean bPrimary; + FfxBoolean bSecondary; + FfxBoolean bInPainted; + FfxFloat32 fVelocity; + FfxBoolean bNegOutside; + FfxBoolean bPosOutside; +}; + +VectorFieldEntry NewVectorFieldEntry() +{ + VectorFieldEntry vfe; + vfe.fMotionVector = FfxFloat32x2(0.0, 0.0); + vfe.uHighPriorityFactor = 0.0; + vfe.uLowPriorityFactor = 0.0; + vfe.bValid = false; + vfe.bPrimary = false; + vfe.bSecondary = false; + vfe.bInPainted = false; + vfe.fVelocity = 0.0; + vfe.bNegOutside = false; + vfe.bPosOutside = false; + return vfe; +} + +FfxBoolean PackedVectorFieldEntryIsPrimary(FfxUInt32 packedEntry) +{ + return ((packedEntry & MOTION_VECTOR_FIELD_PRIMARY_VECTOR_INDICATION_BIT) != 0); +} + +FfxUInt32x2 PackVectorFieldEntries(FfxBoolean bIsPrimary, FfxUInt32 uHighPriorityFactor, FfxUInt32 uLowPriorityFactor, FfxFloat32x2 fMotionVector) +{ + const FfxUInt32 uPriority = + (FfxUInt32(bIsPrimary) * MOTION_VECTOR_FIELD_PRIMARY_VECTOR_INDICATION_BIT) + | ((uHighPriorityFactor & PRIORITY_HIGH_MAX) << PRIORITY_HIGH_OFFSET) + | ((uLowPriorityFactor & PRIORITY_LOW_MAX) << PRIORITY_LOW_OFFSET); + + FfxUInt32 packedX = uPriority | ffxF32ToF16(fMotionVector.x); + FfxUInt32 packedY = uPriority | ffxF32ToF16(fMotionVector.y); + + return FfxUInt32x2(packedX, packedY); +} + +void UnpackVectorFieldEntries(FfxUInt32x2 packed, out VectorFieldEntry vfElement) +{ + vfElement.uHighPriorityFactor = FfxFloat32((packed.x >> PRIORITY_HIGH_OFFSET) & PRIORITY_HIGH_MAX) / PRIORITY_HIGH_MAX; + vfElement.uLowPriorityFactor = FfxFloat32((packed.x >> PRIORITY_LOW_OFFSET) & PRIORITY_LOW_MAX) / PRIORITY_LOW_MAX; + + vfElement.bPrimary = PackedVectorFieldEntryIsPrimary(packed.x); + vfElement.bValid = (vfElement.uHighPriorityFactor > 0.0f); + vfElement.bSecondary = vfElement.bValid && !vfElement.bPrimary; + + // Reverse priority factor for secondary vectors + if (vfElement.bSecondary) + { + vfElement.uHighPriorityFactor = 1.0f - vfElement.uHighPriorityFactor; + } + + vfElement.fMotionVector.x = ffxUnpackF32(packed.x).x; + vfElement.fMotionVector.y = ffxUnpackF32(packed.y).x; + vfElement.bInPainted = false; +} + +// +// MOTION VECTOR FIELD +// + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID) +FfxFloat32x4 ComputeMvInpaintingLevel(FfxFloat32x2 fUv, const FfxInt32 iMipLevel, const FfxInt32x2 iTexSize) +{ + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv, iTexSize); + + FfxFloat32 fSum = 0.0f; + FfxFloat32x4 fColor = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + fColor.z = 0; + + const FfxFloat32 fMaxPriorityFactor = 1.0f; + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, iTexSize)) + { + FfxFloat32x4 fSample = LoadInpaintingPyramid(iMipLevel, iSamplePos); + + const FfxFloat32 fPriorityFactor = fSample.z; + const FfxFloat32 fValidMvFactor = FfxFloat32(fSample.z > 0); + const FfxFloat32 fSampleWeight = bilinearInfo.fWeights[iSampleIndex] * fValidMvFactor * fPriorityFactor; + + fSum += fSampleWeight; + fColor += fSample * fSampleWeight; + } + } + + fColor /= (fSum > 0.0f) ? fSum : 1.0f; + + return fColor; +} +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) + +void LoadInpaintedGameFieldMv(FfxFloat32x2 fUv, out VectorFieldEntry vfElement) +{ + FfxInt32x2 iPxSample = FfxInt32x2(fUv * RenderSize()); + FfxUInt32x2 packedGameFieldMv = LoadGameFieldMv(iPxSample); + UnpackVectorFieldEntries(packedGameFieldMv, vfElement); + + if (!vfElement.bValid) + { + //FfxFloat32x2 fUv = (FfxFloat32x2(iPxSample) + 0.5f) / RenderSize(); + FfxInt32x2 iTexSize = RenderSize(); + + FfxFloat32x4 fInPaintedVector = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + for (FfxInt32 iMipLevel = 0; iMipLevel < 11 && (fInPaintedVector.w == 0.0f); iMipLevel++) + { + iTexSize /= 2; + + fInPaintedVector = ComputeMvInpaintingLevel(fUv, iMipLevel, iTexSize); + } + + vfElement.fMotionVector = fInPaintedVector.xy; + vfElement.uHighPriorityFactor = fInPaintedVector.z; + vfElement.uLowPriorityFactor = fInPaintedVector.w; + vfElement.bInPainted = true; + } + + vfElement.bNegOutside = !IsUvInside(fUv - vfElement.fMotionVector); + vfElement.bPosOutside = !IsUvInside(fUv + vfElement.fMotionVector); + vfElement.fVelocity = length(vfElement.fMotionVector); +} +#endif +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) +void SampleOpticalFlowMotionVectorField(FfxFloat32x2 fUv, out VectorFieldEntry vfElement) +{ + const FfxFloat32 scaleFactor = 1.0f; + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv, FfxInt32x2(GetOpticalFlowSize2() * scaleFactor)); + + vfElement = NewVectorFieldEntry(); + + FfxFloat32 fWeightSum = 0.0f; + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, FfxInt32x2(GetOpticalFlowSize2() * scaleFactor))) + { + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + VectorFieldEntry fOfVectorSample = NewVectorFieldEntry(); + FfxInt32x2 packedOpticalFlowMv = FfxInt32x2(LoadOpticalFlowFieldMv(iSamplePos)); + UnpackVectorFieldEntries(packedOpticalFlowMv, fOfVectorSample); + + vfElement.fMotionVector += fOfVectorSample.fMotionVector * fWeight; + vfElement.uHighPriorityFactor += fOfVectorSample.uHighPriorityFactor * fWeight; + vfElement.uLowPriorityFactor += fOfVectorSample.uLowPriorityFactor * fWeight; + + fWeightSum += fWeight; + } + } + + if (fWeightSum > 0.0f) + { + vfElement.fMotionVector /= fWeightSum; + vfElement.uHighPriorityFactor /= fWeightSum; + vfElement.uLowPriorityFactor /= fWeightSum; + } + + vfElement.bNegOutside = !IsUvInside(fUv - vfElement.fMotionVector); + vfElement.bPosOutside = !IsUvInside(fUv + vfElement.fMotionVector); + vfElement.fVelocity = length(vfElement.fMotionVector); +} +#endif + +FfxFloat32x3 Tonemap(FfxFloat32x3 fRgb) +{ + return fRgb / (ffxMax(ffxMax(0.f, fRgb.r), ffxMax(fRgb.g, fRgb.b)) + 1.f).xxx; +} + +FfxFloat32x3 InverseTonemap(FfxFloat32x3 fRgb) +{ + return fRgb / ffxMax(FFX_TONEMAP_EPSILON, 1.f - ffxMax(fRgb.r, ffxMax(fRgb.g, fRgb.b))).xxx; +} + +FfxInt32x2 ComputeHrPosFromLrPos(FfxInt32x2 iPxLrPos) +{ + FfxFloat32x2 fSrcJitteredPos = FfxFloat32x2(iPxLrPos) + 0.5f - Jitter(); + FfxFloat32x2 fLrPosInHr = (fSrcJitteredPos / RenderSize()) * DisplaySize(); + FfxInt32x2 iPxHrPos = FfxInt32x2(floor(fLrPosInHr)); + return iPxHrPos; +} +#if FFX_HALF +FFX_MIN16_I2 ComputeHrPosFromLrPos(FFX_MIN16_I2 iPxLrPos) +{ + FFX_MIN16_F2 fSrcJitteredPos = FFX_MIN16_F2(iPxLrPos) + FFX_MIN16_F(0.5f) - FFX_MIN16_F2(Jitter()); + FFX_MIN16_F2 fLrPosInHr = (fSrcJitteredPos / FFX_MIN16_F2(RenderSize())) * FFX_MIN16_F2(DisplaySize()); + FFX_MIN16_I2 iPxHrPos = FFX_MIN16_I2(floor(fLrPosInHr)); + return iPxHrPos; +} +#endif + +#endif //!defined(FFX_FRAMEINTERPOLATION_COMMON_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h new file mode 100644 index 000000000..75b3e1e2c --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h @@ -0,0 +1,121 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_COMPUTE_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_H +#define FFX_FRAMEINTERPOLATION_COMPUTE_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_H + +#include "ffx_frameinterpolation_common.h" +//-------------------------------------------------------------------------------------- +// Buffer definitions - global atomic counter +//-------------------------------------------------------------------------------------- + +FFX_GROUPSHARED FfxUInt32 spdCounter; +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FfxFloat32x4 SpdLoadSourceImage(FfxInt32x2 tex, FfxUInt32 slice) +{ + VectorFieldEntry gameMv; + FfxUInt32x2 packedGameFieldMv = LoadGameFieldMv(tex); + UnpackVectorFieldEntries(packedGameFieldMv, gameMv); + + return FfxFloat32x4(gameMv.fMotionVector, gameMv.uHighPriorityFactor, gameMv.uLowPriorityFactor) * FfxFloat32(DisplaySize().x > 0); +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return RWLoadInpaintingPyramid(tex, 5); +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + StoreInpaintingPyramid(pix, outValue, index); +} + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + AtomicIncreaseCounter(COUNTER_SPD, spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + StoreCounter(COUNTER_SPD, 0); +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} + +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + FfxFloat32x4 vec = FfxFloat32x4(0,0,0,0); + + FfxFloat32 fWeightSum = 0.0f; +#define ADD(SAMPLE) { \ + FfxFloat32 fWeight = FfxFloat32(SAMPLE.z > 0.0f); \ + vec += SAMPLE * fWeight; \ + fWeightSum += fWeight; \ + } + + ADD(v0); + ADD(v1); + ADD(v2); + ADD(v3); + + vec /= (fWeightSum > FFX_FRAMEINTERPOLATION_EPSILON) ? fWeightSum : 1.0f; + + return vec; +} + +#include "spd/ffx_spd.h" + +void computeFrameinterpolationGameVectorFieldInpaintingPyramid(FfxInt32x3 iGroupId, FfxInt32 iLocalIndex) +{ + SpdDownsample( + FfxUInt32x2(iGroupId.xy), + FfxUInt32(iLocalIndex), + FfxUInt32(NumMips()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(iGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +} + +#endif // FFX_FRAMEINTERPOLATION_COMPUTE_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h new file mode 100644 index 000000000..da2b6728a --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h @@ -0,0 +1,120 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_COMPUTE_INPAINTING_PYRAMID_H +#define FFX_FRAMEINTERPOLATION_COMPUTE_INPAINTING_PYRAMID_H + +//-------------------------------------------------------------------------------------- +// Buffer definitions - global atomic counter +//-------------------------------------------------------------------------------------- + +FFX_GROUPSHARED FfxUInt32 spdCounter; +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FfxFloat32x4 SpdLoadSourceImage(FfxInt32x2 tex, FfxUInt32 slice) +{ + FfxFloat32x4 fColor = LoadFrameInterpolationOutput(tex) * FfxFloat32(DisplaySize().x > 0); + + // reverse sample weights + fColor.w = ffxSaturate(1.0f - fColor.w); + + + if (tex.x < InterpolationRectBase().x || tex.x >= (InterpolationRectSize().x + InterpolationRectBase().x) || tex.y < InterpolationRectBase().y || + tex.y >= (InterpolationRectSize().y + InterpolationRectBase().y)) + { + fColor.w = 0.0f; // don't take contributions from outside of the interpolation rect + } + + return fColor; +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return RWLoadInpaintingPyramid(tex, 5); +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + StoreInpaintingPyramid(pix, outValue, index); +} + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + AtomicIncreaseCounter(COUNTER_SPD, spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + StoreCounter(COUNTER_SPD, 0); +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} + +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + FfxFloat32x4 w = FfxFloat32x4(v0.w, v1.w, v2.w, v3.w); + + FfxFloat32 sum = (w[0] + w[1] + w[2] + w[3]); + + if (sum == 0.0f) { + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + } + + return (v0 * w[0] + v1 * w[1] + v2 * w[2] + v3 * w[3]) / sum; +} + +#include "spd/ffx_spd.h" + +void computeFrameinterpolationInpaintingPyramid(FfxInt32x3 iGroupId, FfxInt32 iLocalIndex) +{ + SpdDownsample( + FfxUInt32x2(iGroupId.xy), + FfxUInt32(iLocalIndex), + FfxUInt32(NumMips()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(iGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +} + +#endif // FFX_FRAMEINTERPOLATION_COMPUTE_INPAINTING_PYRAMID_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h new file mode 100644 index 000000000..bcd3a52a7 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h @@ -0,0 +1,172 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_DEBUG_VIEW_H +#define FFX_FRAMEINTERPOLATION_DEBUG_VIEW_H + +struct FfxFrameInterpolationDebugViewport +{ + FfxInt32x2 offset; + FfxInt32x2 size; +}; + +// Macro to cull and draw debug viewport +#define DRAW_VIEWPORT(function, pos, vp) \ + { \ + if (pointIsInsideViewport(pos, vp)) \ + { \ + function(pos, vp); \ + } \ + } + +FfxFloat32x2 getTransformedUv(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = (FfxFloat32x2(iPxPos - vp.offset) + 0.5f) / vp.size; + + return fUv; +} + +FfxFloat32x4 getMotionVectorColor(FfxFloat32x2 fMotionVector) +{ + return FfxFloat32x4(0.5f + fMotionVector * DisplaySize() * 0.1f, 0.5f, 1.0f); +} + +FfxFloat32x4 getUnusedIndicationColor(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxInt32x2 basePos = iPxPos - vp.offset; + + FfxFloat32 ar = FfxFloat32(vp.size.x) / FfxFloat32(vp.size.y); + + return FfxFloat32x4(basePos.x == FfxInt32(basePos.y * ar), 0, 0, 1); +} + +void drawGameMotionVectorFieldVectors(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fUv, gameMv); + + StoreFrameinterpolationOutput(iPxPos, getMotionVectorColor(gameMv.fMotionVector)); +} + +void drawGameMotionVectorFieldDepthPriority(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fUv, gameMv); + + StoreFrameinterpolationOutput(iPxPos, FfxFloat32x4(0, gameMv.uHighPriorityFactor, 0, 1)); +} + +void drawOpticalFlowMotionVectorField(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + VectorFieldEntry ofMv; + SampleOpticalFlowMotionVectorField(fUv, ofMv); + + StoreFrameinterpolationOutput(iPxPos, getMotionVectorColor(ofMv.fMotionVector)); +} + +void drawDisocclusionMask(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x2 fLrUv = fUv * (FfxFloat32x2(RenderSize()) / GetMaxRenderSize()); + + FfxFloat32x2 fDisocclusionFactor = ffxSaturate(SampleDisocclusionMask(fLrUv).xy); + + StoreFrameinterpolationOutput(iPxPos, FfxFloat32x4(fDisocclusionFactor, 0, 1)); +} + +FfxFloat32x4 getDistortionField(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x2 fDistortionFieldUv = abs(SampleDistortionField(fUv).xy); + + return FfxFloat32x4(fDistortionFieldUv * 10.0f, 0.0f, 1.0f); +} + +void drawPresentBackbuffer(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x4 fPresentColor = getDistortionField(iPxPos, vp); + + if (GetHUDLessAttachedFactor() == 1) + { + fPresentColor = SamplePresentBackbuffer(fUv); + } + + StoreFrameinterpolationOutput(iPxPos, fPresentColor); +} + +void drawCurrentInterpolationSource(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x4 fCurrentBackBuffer = FfxFloat32x4(SampleCurrentBackbuffer(fUv), 1.0f); + + StoreFrameinterpolationOutput(iPxPos, fCurrentBackBuffer); +} + +FfxBoolean pointIsInsideViewport(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxInt32x2 extent = vp.offset + vp.size; + + return (iPxPos.x >= vp.offset.x && iPxPos.x < extent.x) && (iPxPos.y >= vp.offset.y && iPxPos.y < extent.y); +} + +void computeDebugView(FfxInt32x2 iPxPos) +{ +#define VIEWPORT_GRID_SIZE_X 3 +#define VIEWPORT_GRID_SIZE_Y 3 + + FfxFloat32x2 fViewportScale = FfxFloat32x2(1.0f / VIEWPORT_GRID_SIZE_X, 1.0f / VIEWPORT_GRID_SIZE_Y); + FfxInt32x2 iViewportSize = FfxInt32x2(DisplaySize() * fViewportScale); + + // compute grid [y][x] for easier placement of viewports + FfxFrameInterpolationDebugViewport vp[VIEWPORT_GRID_SIZE_Y][VIEWPORT_GRID_SIZE_X]; + for (FfxInt32 y = 0; y < VIEWPORT_GRID_SIZE_Y; y++) + { + for (FfxInt32 x = 0; x < VIEWPORT_GRID_SIZE_X; x++) + { + vp[y][x].offset = iViewportSize * FfxInt32x2(x, y); + vp[y][x].size = iViewportSize; + } + } + + // top row + DRAW_VIEWPORT(drawGameMotionVectorFieldVectors, iPxPos, vp[0][0]); + DRAW_VIEWPORT(drawGameMotionVectorFieldDepthPriority, iPxPos, vp[0][1]); + DRAW_VIEWPORT(drawOpticalFlowMotionVectorField, iPxPos, vp[0][2]); + + // bottom row + DRAW_VIEWPORT(drawDisocclusionMask, iPxPos, vp[2][0]); + DRAW_VIEWPORT(drawCurrentInterpolationSource, iPxPos, vp[2][1]); + DRAW_VIEWPORT(drawPresentBackbuffer, iPxPos, vp[2][2]); +} + +#endif // FFX_FRAMEINTERPOLATION_DEBUG_VIEW_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h new file mode 100644 index 000000000..03adc96f3 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h @@ -0,0 +1,146 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_DISOCCLUSION_MASK_H +#define FFX_FRAMEINTERPOLATION_DISOCCLUSION_MASK_H + +FFX_STATIC const FfxFloat32 DepthClipBaseScale = 1.0f; + +FfxFloat32 ComputeSampleDepthClip(FfxInt32x2 iPxSamplePos, FfxFloat32 fPreviousDepth, FfxFloat32 fPreviousDepthBilinearWeight, FfxFloat32 fCurrentDepthViewSpace) +{ + FfxFloat32 fPrevNearestDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fPreviousDepth); + + // Depth separation logic ref: See "Minimum Triangle Separation for Correct Z-Buffer Occlusion" + // Intention: worst case of formula in Figure4 combined with Ksep factor in Section 4 + const FfxFloat32 fHalfViewportWidth = RenderSize().x * 0.5f; + FfxFloat32 fDepthThreshold = ffxMax(fCurrentDepthViewSpace, fPrevNearestDepthViewSpace); + + // WARNING: Ksep only works with reversed-z with infinite projection. + const FfxFloat32 Ksep = 1.37e-05f; + FfxFloat32 fRequiredDepthSeparation = Ksep * fDepthThreshold * TanHalfFoV() * fHalfViewportWidth; + FfxFloat32 fDepthDiff = fCurrentDepthViewSpace - fPrevNearestDepthViewSpace; + + FfxFloat32 fDepthClipFactor = (fDepthDiff > 0) ? ffxSaturate(fRequiredDepthSeparation / fDepthDiff) : 1.0f; + + return fPreviousDepthBilinearWeight * fDepthClipFactor * ffxLerp(1.0f, DepthClipBaseScale, ffxSaturate(fDepthDiff * fDepthDiff)); +} + +FfxFloat32 LoadEstimatedDepth(FfxUInt32 estimatedIndex, FfxInt32x2 iSamplePos) +{ + const FfxFloat32x2 fUv = FfxFloat32x2(iSamplePos + 0.5f) / RenderSize(); + const FfxFloat32x2 fDistortionFieldUv = SampleDistortionField(fUv); + FfxInt32x2 iDistortionPixelOffset = FfxInt32x2(fDistortionFieldUv.xy * RenderSize()); + + if (estimatedIndex == 0) + { + return LoadReconstructedDepthPreviousFrame(iSamplePos + iDistortionPixelOffset); + } + else if (estimatedIndex == 1) + { + return LoadDilatedDepth(iSamplePos + iDistortionPixelOffset); + } + + return 0; +} + +FfxFloat32 ComputeDepthClip(FfxUInt32 estimatedIndex, FfxFloat32x2 fUvSample, FfxFloat32 fCurrentDepthSample) +{ + FfxFloat32 fCurrentDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fCurrentDepthSample); + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUvSample, RenderSize()); + + FfxFloat32 fDilatedSum = 0.0f; + FfxFloat32 fDepth = 0.0f; + FfxFloat32 fWeightSum = 0.0f; + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, RenderSize())) { + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + const FfxFloat32 fPrevDepthSample = LoadEstimatedDepth(estimatedIndex, iSamplePos); + const FfxFloat32 fPrevNearestDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fPrevDepthSample); + + const FfxFloat32 fDepthDiff = fCurrentDepthViewSpace - fPrevNearestDepthViewSpace; + + if (fDepthDiff > 0.0f) { + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + const FfxFloat32 fPlaneDepth = ffxMin(fPrevDepthSample, fCurrentDepthSample); +#else + const FfxFloat32 fPlaneDepth = ffxMax(fPrevDepthSample, fCurrentDepthSample); +#endif + + const FfxFloat32x3 fCenter = GetViewSpacePosition(FfxInt32x2(RenderSize() * 0.5f), RenderSize(), fPlaneDepth); + const FfxFloat32x3 fCorner = GetViewSpacePosition(FfxInt32x2(0, 0), RenderSize(), fPlaneDepth); + + const FfxFloat32 fHalfViewportWidth = length(FfxFloat32x2(RenderSize())); + const FfxFloat32 fDepthThreshold = ffxMin(fCurrentDepthViewSpace, fPrevNearestDepthViewSpace); + + const FfxFloat32 Ksep = 1.37e-05f; + const FfxFloat32 Kfov = length(fCorner) / length(fCenter); + const FfxFloat32 fRequiredDepthSeparation = Ksep * Kfov * fHalfViewportWidth * fDepthThreshold; + + const FfxFloat32 fResolutionFactor = ffxSaturate(length(FfxFloat32x2(RenderSize())) / length(FfxFloat32x2(1920.0f, 1080.0f))); + const FfxFloat32 fPower = ffxLerp(1.0f, 3.0f, fResolutionFactor); + + fDepth += FfxFloat32((fRequiredDepthSeparation / fDepthDiff) >= 1.0f) * fWeight; + fWeightSum += fWeight; + } + } + } + } + + return (fWeightSum > 0.0f) ? ffxSaturate(1.0f - fDepth / fWeightSum) : 0.0f; +} + +void computeDisocclusionMask(FfxInt32x2 iPxPos) +{ + FfxFloat32 fDilatedDepth = LoadEstimatedInterpolationFrameDepth(iPxPos); + + FfxFloat32x2 fDepthUv = (iPxPos + 0.5f) / RenderSize(); + FfxFloat32 fCurrentDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fDilatedDepth); + + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fDepthUv, gameMv); + + const FfxFloat32 fDepthClipInterpolatedToPrevious = 1.0f - ComputeDepthClip(0, fDepthUv + gameMv.fMotionVector, fDilatedDepth); + const FfxFloat32 fDepthClipInterpolatedToCurrent = 1.0f - ComputeDepthClip(1, fDepthUv - gameMv.fMotionVector, fDilatedDepth); + FfxFloat32x2 fDisocclusionMask = FfxFloat32x2(fDepthClipInterpolatedToPrevious, fDepthClipInterpolatedToCurrent); + + fDisocclusionMask = FfxFloat32x2(FFX_GREATER_THAN_EQUAL(fDisocclusionMask, ffxBroadcast2(FFX_FRAMEINTERPOLATION_EPSILON))); + + // Avoid false disocclusion if primary game vector pointer outside screen area + const FfxFloat32x2 fSrcMotionVector = gameMv.fMotionVector * 2.0f; + const FfxInt32x2 iSamplePosPrevious = FfxInt32x2((fDepthUv + fSrcMotionVector) * RenderSize()); + fDisocclusionMask.x = ffxSaturate(fDisocclusionMask.x + FfxFloat32(!IsOnScreen(iSamplePosPrevious, RenderSize()))); + + const FfxInt32x2 iSamplePosCurrent = FfxInt32x2((fDepthUv - fSrcMotionVector) * RenderSize()); + fDisocclusionMask.y = ffxSaturate(fDisocclusionMask.y + FfxFloat32(!IsOnScreen(iSamplePosCurrent, RenderSize()))); + + StoreDisocclusionMask(iPxPos, fDisocclusionMask); + +} + +#endif // FFX_FRAMEINTERPOLATION_DISOCCLUSION_MASK_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h new file mode 100644 index 000000000..574e3dff2 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h @@ -0,0 +1,123 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_GAME_MOTION_VECTOR_FIELD_H +#define FFX_FRAMEINTERPOLATION_GAME_MOTION_VECTOR_FIELD_H + +FfxUInt32 getPriorityFactorFromViewSpaceDepth(FfxFloat32 fViewSpaceDepthInMeters) +{ + fViewSpaceDepthInMeters = ffxPow(fViewSpaceDepthInMeters, 0.33f); + + FfxUInt32 uPriorityFactor = FfxUInt32(FfxFloat32(1 - (fViewSpaceDepthInMeters * (1.0f / (1.0f + fViewSpaceDepthInMeters)))) * PRIORITY_HIGH_MAX); + + return ffxMax(1, uPriorityFactor); +} + +void computeGameFieldMvs(FfxInt32x2 iPxPos) +{ + const FfxFloat32x2 fUvInScreenSpace = (FfxFloat32x2(iPxPos) + 0.5f) / RenderSize(); + + const FfxFloat32x2 fDistortionFieldUv = SampleDistortionField(fUvInScreenSpace); + FfxInt32x2 iDistortionPixelOffset = FfxInt32x2(fDistortionFieldUv.xy * RenderSize()); + + const FfxFloat32x2 fUvInInterpolationRectStart = FfxFloat32x2(InterpolationRectBase()) / DisplaySize(); + const FfxFloat32x2 fUvLetterBoxScale = FfxFloat32x2(InterpolationRectSize()) / DisplaySize(); + const FfxFloat32x2 fUvInInterpolationRect = fUvInInterpolationRectStart + fUvInScreenSpace * fUvLetterBoxScale; + + const FfxFloat32 fDepthSample = LoadDilatedDepth(iPxPos + iDistortionPixelOffset); + const FfxFloat32x2 fGameMotionVector = LoadDilatedMotionVector(iPxPos + iDistortionPixelOffset); + const FfxFloat32x2 fMotionVectorHalf = fGameMotionVector * 0.5f; + const FfxFloat32x2 fInterpolatedLocationUv = fUvInScreenSpace + fMotionVectorHalf; + + const FfxFloat32 fViewSpaceDepth = ConvertFromDeviceDepthToViewSpace(fDepthSample); + const FfxUInt32 uHighPriorityFactorPrimary = getPriorityFactorFromViewSpaceDepth(fViewSpaceDepth); + + // pixel position in current frame + Game Motion Vector -> pixel position in previous frame + FfxFloat32x3 prevBackbufferCol = SamplePreviousBackbuffer(fUvInInterpolationRect+ fGameMotionVector * fUvLetterBoxScale).xyz; //returns color of current frame's pixel in previous frame buffer + FfxFloat32x3 curBackbufferCol = SampleCurrentBackbuffer(fUvInInterpolationRect).xyz; // returns color of current frame's pixel in current frame buffer + FfxFloat32 prevLuma = 0.001f + RawRGBToLuminance(prevBackbufferCol); + FfxFloat32 currLuma = 0.001f + RawRGBToLuminance(curBackbufferCol); + + FfxUInt32 uLowPriorityFactor = FfxUInt32(ffxRound(ffxPow(MinDividedByMax(prevLuma, currLuma), 1.0f / 1.0f) * PRIORITY_LOW_MAX)) + * FfxUInt32(IsUvInside(fUvInInterpolationRect + fGameMotionVector * fUvLetterBoxScale)); + + // Update primary motion vectors + { + const FfxUInt32x2 packedVectorPrimary = PackVectorFieldEntries(true, uHighPriorityFactorPrimary, uLowPriorityFactor, fMotionVectorHalf); + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fInterpolatedLocationUv, RenderSize()); + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, RenderSize())) + { + UpdateGameMotionVectorField(iSamplePos, packedVectorPrimary); + } + } + } + + // Update secondary vectors + // Main purpose of secondary vectors is to improve quality of inpainted vectors + const FfxBoolean bWriteSecondaryVectors = length(fMotionVectorHalf * RenderSize()) > FFX_FRAMEINTERPOLATION_EPSILON; + if (bWriteSecondaryVectors) + { + FfxBoolean bWriteSecondary = true; + FfxUInt32 uNumPrimaryHits = 0; + const FfxFloat32 fSecondaryStepScale = length(1.0f / RenderSize()); + const FfxFloat32x2 fStepMv = normalize(fGameMotionVector); + const FfxFloat32 fBreakDist = ffxMin(length(fMotionVectorHalf), length(FfxFloat32x2(0.5f, 0.5f))); + + for (FfxFloat32 fMvScale = fSecondaryStepScale; fMvScale <= fBreakDist && bWriteSecondary; fMvScale += fSecondaryStepScale) + { + const FfxFloat32x2 fSecondaryLocationUv = fInterpolatedLocationUv - fStepMv * fMvScale; + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fSecondaryLocationUv, RenderSize()); + + // Reverse depth prio for secondary vectors + FfxUInt32 uHighPriorityFactorSecondary = ffxMax(1, PRIORITY_HIGH_MAX - uHighPriorityFactorPrimary); + + const FfxFloat32x2 fToCenter = normalize(FfxFloat32x2(0.5f, 0.5f) - fSecondaryLocationUv); + uLowPriorityFactor = FfxUInt32(ffxMax(0.0f, dot(fToCenter, fStepMv)) * PRIORITY_LOW_MAX); + const FfxUInt32x2 packedVectorSecondary = PackVectorFieldEntries(false, uHighPriorityFactorSecondary, uLowPriorityFactor, fMotionVectorHalf); + + // Only write secondary mvs to single bilinear location + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 1; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + bWriteSecondary = bWriteSecondary && IsOnScreen(iSamplePos, RenderSize()); + + if (bWriteSecondary) + { + const FfxUInt32 uExistingVectorFieldEntry = UpdateGameMotionVectorFieldEx(iSamplePos, packedVectorSecondary); + + uNumPrimaryHits += FfxUInt32(PackedVectorFieldEntryIsPrimary(uExistingVectorFieldEntry)); + bWriteSecondary = bWriteSecondary && (uNumPrimaryHits <= 3); + } + } + } + } +} + +#endif // FFX_FRAMEINTERPOLATION_GAME_MOTION_VECTOR_FIELD_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h new file mode 100644 index 000000000..7ad3630e0 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h @@ -0,0 +1,150 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_INPAINTING_H +#define FFX_FRAMEINTERPOLATION_INPAINTING_H + +FfxFloat32x4 ComputeInpaintingLevel(FfxFloat32x2 fUv, const FfxInt32 iMipLevel, const FfxInt32x2 iTexSize) +{ + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv, iTexSize); + + FfxFloat32x4 fColor = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, iTexSize)) { + + FfxFloat32x4 fSample = LoadInpaintingPyramid(iMipLevel, iSamplePos); + + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex] * FfxFloat32(fSample.w > 0.0f); + + fColor += FfxFloat32x4(fSample.rgb * fWeight, fWeight); + } + } + + return fColor; +} + +FfxFloat32x3 ComputeInpainting(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 fUv = (iPxPos + 0.5f) / (DisplaySize()); + + FfxFloat32x4 fColor = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + FfxFloat32 fWeightSum = 0.0f; + FfxInt32x2 iTexSize = DisplaySize(); + + for (FfxInt32 iMipLevel = 0; iMipLevel < 10; iMipLevel++) { + + iTexSize /= 2; + + FfxFloat32x4 fMipColor = ComputeInpaintingLevel(fUv, iMipLevel, iTexSize); + + if (fMipColor.w > 0.0f) { + const FfxFloat32x3 fNormalizedMipColor = fMipColor.rgb / fMipColor.w; + const FfxFloat32 fMipWeight = ffxPow(1.0f - iMipLevel / 10.0f, 3.0f) * fMipColor.w; + + fColor += FfxFloat32x4(fNormalizedMipColor, 1.0f) * fMipWeight; + } + } + + return fColor.rgb / fColor.w; +} + +void drawDebugTearLines(FfxInt32x2 iPxPos, inout FfxFloat32x3 fColor, inout FfxBoolean bWriteColor) +{ + if (iPxPos.x < 16) + { + fColor.g = 1.f; + bWriteColor = true; + } + else if (iPxPos.x > DisplaySize().x - 16) + { + fColor += GetDebugBarColor(); + bWriteColor = true; + } + +} + +void drawDebugResetIndicators(FfxInt32x2 iPxPos, inout FfxFloat32x3 fColor, inout FfxBoolean bWriteColor) +{ + if (iPxPos.y < 32 && Reset()) + { + fColor.r = 1.f; + bWriteColor = true; + } + else if (iPxPos.y > 32 && iPxPos.y < 64 && HasSceneChanged()) + { + fColor.b = 1.f; + bWriteColor = true; + } +} + +void computeInpainting(FfxInt32x2 iPxPos) +{ + FfxBoolean bWriteColor = false; + FfxFloat32x4 fInterpolatedColor = RWLoadFrameinterpolationOutput(iPxPos); + + const FfxFloat32 fInPaintingWeight = fInterpolatedColor.w; + if (fInPaintingWeight > FFX_FRAMEINTERPOLATION_EPSILON) + { + fInterpolatedColor.rgb = ffxLerp(fInterpolatedColor.rgb, ComputeInpainting(iPxPos) * FfxFloat32(DisplaySize().x > 0), fInPaintingWeight); + bWriteColor = true; + } + + if (GetHUDLessAttachedFactor() == 1) + { + const FfxFloat32x3 fCurrentInterpolationSource = LoadCurrentBackbuffer(iPxPos).rgb; + const FfxFloat32x3 fPresentColor = LoadPresentBackbuffer(iPxPos).rgb; + + if (any(FFX_GREATER_THAN(abs(fCurrentInterpolationSource - fPresentColor), FfxFloat32x3(0.0, 0.0, 0.0)))) + { + const FfxFloat32 fStaticFactor = CalculateStaticContentFactor(RawRGBToLinear(fCurrentInterpolationSource), RawRGBToLinear(fPresentColor)); + + if (fStaticFactor > FFX_FRAMEINTERPOLATION_EPSILON) + { + fInterpolatedColor.rgb = ffxLerp(fInterpolatedColor.rgb, fPresentColor, fStaticFactor); + bWriteColor = true; + } + } + } + + if ((GetDispatchFlags() & FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_TEAR_LINES) != 0) + { + drawDebugTearLines(iPxPos, fInterpolatedColor.rgb, bWriteColor); + } + + if ((GetDispatchFlags() & FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_RESET_INDICATORS) != 0) + { + drawDebugResetIndicators(iPxPos, fInterpolatedColor.rgb, bWriteColor); + } + + if (bWriteColor) + { + StoreFrameinterpolationOutput(iPxPos, FfxFloat32x4(fInterpolatedColor.rgb, 1.0f)); + } + +} + +#endif // FFX_FRAMEINTERPOLATION_INPAINTING_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h new file mode 100644 index 000000000..843213260 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h @@ -0,0 +1,123 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_OPTICAL_FLOW_VECTOR_FIELD_H +#define FFX_FRAMEINTERPOLATION_OPTICAL_FLOW_VECTOR_FIELD_H + +void computeOpticalFlowFieldMvs(FfxUInt32x2 dtID, FfxFloat32x2 fOpticalFlowVector) +{ + FfxFloat32x2 fUv = FfxFloat32x2(FfxFloat32x2(dtID)+0.5f) / GetOpticalFlowSize2(); + + const FfxFloat32 scaleFactor = 1.0f; + FfxFloat32x2 fMotionVectorHalf = fOpticalFlowVector * 0.5f; + + // pixel position in current frame + fOpticalFlowVector-> pixel position in previous frame + FfxFloat32x3 prevBackbufferCol = SamplePreviousBackbuffer(fUv + fOpticalFlowVector).xyz; // returns previous backbuffer color of current frame pixel position in previous frame + FfxFloat32x3 curBackbufferCol = SampleCurrentBackbuffer(fUv).xyz; // returns current backbuffer color at current frame pixel position + + FfxFloat32 prevLuma = 0.001f + RawRGBToLuminance(prevBackbufferCol); + FfxFloat32 currLuma = 0.001f + RawRGBToLuminance(curBackbufferCol); + + FfxFloat32 fVelocity = length(fOpticalFlowVector * InterpolationRectSize()); + FfxUInt32 uHighPriorityFactor = FfxUInt32(fVelocity > 1.0f) * FfxUInt32(ffxSaturate(fVelocity / length(InterpolationRectSize() * 0.05f)) * PRIORITY_HIGH_MAX); + + if(uHighPriorityFactor > 0) { + FfxUInt32 uLowPriorityFactor = FfxUInt32(ffxRound(ffxPow(MinDividedByMax(prevLuma, currLuma), 1.0f / 1.0f) * PRIORITY_LOW_MAX)) + * FfxUInt32(IsUvInside(fUv + fOpticalFlowVector)); + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + + const FfxUInt32x2 packedVectorPrimary = PackVectorFieldEntries(true, uHighPriorityFactor, uLowPriorityFactor, fMotionVectorHalf); + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv + fMotionVectorHalf, GetOpticalFlowSize2()); + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, GetOpticalFlowSize2())) + { + UpdateOpticalflowMotionVectorField(iSamplePos, packedVectorPrimary); + } + } + } +} + +void computeOpticalFlowVectorField(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 fOpticalFlowVector = FfxFloat32x2(0.0, 0.0); + FfxFloat32x2 fOpticalFlowVector3x3Avg = FfxFloat32x2(0.0, 0.0); + FfxInt32 size = 1; + FfxFloat32 sw = 0.0f; + + for(FfxInt32 y = -size; y <= size; y++) { + for(FfxInt32 x = -size; x <= size; x++) { + + FfxInt32x2 samplePos = iPxPos + FfxInt32x2(x, y); + + FfxFloat32x2 vs = LoadOpticalFlow(samplePos); + FfxFloat32 fConfidenceFactor = ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, LoadOpticalFlowConfidence(samplePos)); + + + FfxFloat32 len = length(vs * InterpolationRectSize()); + FfxFloat32 len_factor = ffxMax(0.0f, 512.0f - len) * FfxFloat32(len > 1.0f); + FfxFloat32 w = len_factor; + + fOpticalFlowVector3x3Avg += vs * w; + + sw += w; + } + } + + fOpticalFlowVector3x3Avg /= sw; + + + sw = 0.0f; + for(FfxInt32 y = -size; y <= size; y++) { + for(FfxInt32 x = -size; x <= size; x++) { + + FfxInt32x2 samplePos = iPxPos + FfxInt32x2(x, y); + + FfxFloat32x2 vs = LoadOpticalFlow(samplePos); + + FfxFloat32 fConfidenceFactor = ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, LoadOpticalFlowConfidence(samplePos)); + FfxFloat32 len = length(vs * InterpolationRectSize()); + FfxFloat32 len_factor = ffxMax(0.0f, 512.0f - len) * FfxFloat32(len > 1.0f); + + + FfxFloat32 w = ffxMax(0.0f, ffxPow(dot(fOpticalFlowVector3x3Avg, vs), 1.25f)) * len_factor; + + fOpticalFlowVector += vs * w; + sw += w; + } + } + + if (sw > FFX_FRAMEINTERPOLATION_EPSILON) + { + fOpticalFlowVector /= sw; + } + + computeOpticalFlowFieldMvs(iPxPos, fOpticalFlowVector); +} + +#endif // FFX_FRAMEINTERPOLATION_OPTICAL_FLOW_VECTOR_FIELD_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h new file mode 100644 index 000000000..e92a57900 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h @@ -0,0 +1,123 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_RECONSTRUCT_DILATED_VELOCITY_AND_PREVIOUS_DEPTH_H +#define FFX_FRAMEINTERPOLATION_RECONSTRUCT_DILATED_VELOCITY_AND_PREVIOUS_DEPTH_H + +void ReconstructPrevDepth(FfxInt32x2 iPxPos, FfxFloat32 fDepth, FfxFloat32x2 fMotionVector, FfxInt32x2 iPxDepthSize) +{ + fMotionVector *= FfxFloat32(length(fMotionVector * DisplaySize()) > 0.1f); + + FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5)) / iPxDepthSize; + FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, RenderSize()); + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + FfxInt32x2 iStorePos = bilinearInfo.iBasePos + iOffset; + if (IsOnScreen(iStorePos, iPxDepthSize)) { + UpdateReconstructedDepthPreviousFrame(iStorePos, fDepth); + } + } + } +} + +void FindNearestDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxInt32x2 iPxSize, FFX_PARAMETER_OUT FfxFloat32 fNearestDepth, FFX_PARAMETER_OUT FfxInt32x2 fNearestDepthCoord) +{ + const FfxInt32 iSampleCount = 9; + const FfxInt32x2 iSampleOffsets[iSampleCount] = { + FfxInt32x2(+0, +0), + FfxInt32x2(+1, +0), + FfxInt32x2(+0, +1), + FfxInt32x2(+0, -1), + FfxInt32x2(-1, +0), + FfxInt32x2(-1, +1), + FfxInt32x2(+1, +1), + FfxInt32x2(-1, -1), + FfxInt32x2(+1, -1), + }; + + // pull out the depth loads to allow SC to batch them + FfxFloat32 depth[9]; + FfxInt32 iSampleIndex = 0; + FFX_UNROLL + for (iSampleIndex = 0; iSampleIndex < iSampleCount; ++iSampleIndex) { + + FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + depth[iSampleIndex] = LoadInputDepth(iPos); + } + + // find closest depth + fNearestDepthCoord = iPxPos; + fNearestDepth = depth[0]; + FFX_UNROLL + for (iSampleIndex = 1; iSampleIndex < iSampleCount; ++iSampleIndex) { + + FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + if (IsOnScreen(iPos, iPxSize)) { + + FfxFloat32 fNdDepth = depth[iSampleIndex]; +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + if (fNdDepth > fNearestDepth) { +#else + if (fNdDepth < fNearestDepth) { +#endif + fNearestDepthCoord = iPos; + fNearestDepth = fNdDepth; + } + } + } +} + +void ReconstructAndDilate(FfxInt32x2 iPxLrPos) +{ + FfxFloat32 fDilatedDepth; + FfxInt32x2 iNearestDepthCoord; + + FindNearestDepth(iPxLrPos, RenderSize(), fDilatedDepth, iNearestDepthCoord); + +#if FFX_FRAMEINTERPOLATION_OPTION_LOW_RES_MOTION_VECTORS + FfxInt32x2 iSamplePos = iPxLrPos; + FfxInt32x2 iMotionVectorPos = iNearestDepthCoord; +#else + FfxInt32x2 iSamplePos = ComputeHrPosFromLrPos(iPxLrPos); + FfxInt32x2 iMotionVectorPos = ComputeHrPosFromLrPos(iNearestDepthCoord); +#endif + + FfxFloat32x2 fDilatedMotionVector = LoadInputMotionVector(iMotionVectorPos); + + StoreDilatedDepth(iPxLrPos, fDilatedDepth); + StoreDilatedMotionVectors(iPxLrPos, fDilatedMotionVector); + + ReconstructPrevDepth(iPxLrPos, fDilatedDepth, fDilatedMotionVector, RenderSize()); +} + + +#endif //!defined( FFX_FRAMEINTERPOLATION_RECONSTRUCT_DILATED_VELOCITY_AND_PREVIOUS_DEPTH_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h new file mode 100644 index 000000000..d85f67312 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h @@ -0,0 +1,63 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_RECONSTRUCT_PREVIOUS_DEPTH_H +#define FFX_FRAMEINTERPOLATION_RECONSTRUCT_PREVIOUS_DEPTH_H + +void ReconstructPrevDepth(FfxInt32x2 iPxPos, FfxUInt32 depthTarget, FfxFloat32 fDepth, FfxFloat32x2 fMotionVector, FfxInt32x2 iPxDepthSize) +{ + const FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5)) / iPxDepthSize; + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv + fMotionVector, RenderSize()); + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + const FfxFloat32 fSampleWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (fSampleWeight > fReconstructedDepthBilinearWeightThreshold) + { + if (IsOnScreen(iSamplePos, RenderSize())) + { + if (depthTarget != 0) { + UpdateReconstructedDepthInterpolatedFrame(iSamplePos, fDepth); + } + } + } + } +} + +void reconstructPreviousDepth(FfxInt32x2 iPxPos) +{ + const FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5f)) / RenderSize(); + const FfxFloat32x2 fDistortionFieldUv = SampleDistortionField(fUv); + FfxInt32x2 iDistortionPixelOffset = FfxInt32x2(fDistortionFieldUv.xy * RenderSize()); + + FfxFloat32x2 fMotionVector = LoadDilatedMotionVector(iPxPos + iDistortionPixelOffset); + FfxFloat32 fDilatedDepth = LoadDilatedDepth(iPxPos + iDistortionPixelOffset); + + ReconstructPrevDepth(iPxPos, 1, fDilatedDepth, fMotionVector * 0.5f, RenderSize()); +} + +#endif // FFX_FRAMEINTERPOLATION_RECONSTRUCT_PREVIOUS_DEPTH_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h new file mode 100644 index 000000000..5505f6d15 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h @@ -0,0 +1,95 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_RESOURCES_H +#define FFX_FRAMEINTERPOLATION_RESOURCES_H + +#if defined(FFX_CPU) || defined(FFX_GPU) +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_NULL 0 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OUTPUT 1 +//#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_BACKBUFFER 2 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_PREVIOUS_INTERPOLATION_SOURCE 3 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_CURRENT_INTERPOLATION_SOURCE 4 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEPTH 5 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_MOTION_VECTORS 6 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_2 7 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_3 8 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_4 9 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DILATED_DEPTH 10 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DILATED_MOTION_VECTORS 11 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME 12 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME 13 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DISOCCLUSION_MASK 14 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_GAME_MOTION_VECTOR_FIELD_X 15 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_GAME_MOTION_VECTOR_FIELD_Y 16 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 17 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 18 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_VECTOR 19 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_5 20 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_CONFIDENCE 21 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_GLOBAL_MOTION 22 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCENE_CHANGE_DETECTION 23 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_6 25 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_7 26 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEBUG_OUTPUT_0 27 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEBUG_OUTPUT_1 28 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEBUG_OUTPUT 29 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_MASK 30 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_PRESENT_BACKBUFFER 31 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNTERS 32 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID 33 // same as FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_0 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_0 33 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_1 34 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_2 35 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_3 36 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_4 37 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_5 38 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_6 39 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_7 40 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_8 41 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_9 42 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_10 43 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_11 44 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_12 45 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEFAULT_DISTORTION_FIELD 46 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DISTORTION_FIELD 47 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT 48 + +#define FFX_FRAMEINTERPOLATION_CONSTANTBUFFER_IDENTIFIER 0 +#define FFX_FRAMEINTERPOLATION_INPAINTING_PYRAMID_CONSTANTBUFFER_IDENTIFIER 1 +#define FFX_FRAMEINTERPOLATION_CONSTANTBUFFER_COUNT 2 + +#endif // #if defined(FFX_CPU) || defined(FFX_GPU) + +#endif //!defined( FFX_FRAMEINTERPOLATION_RESOURCES_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h new file mode 100644 index 000000000..60dd32377 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h @@ -0,0 +1,50 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_SETUP_H +#define FFX_FRAMEINTERPOLATION_SETUP_H + +void setupFrameinterpolationResources(FfxInt32x2 iPxPos) +{ + // Update reset counters + StoreCounter(COUNTER_SPD, 0); + if (all(FFX_EQUAL(iPxPos, FfxInt32x2(0, 0)))) + { + if(Reset() || HasSceneChanged()) { + StoreCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET, 0); + } else { + FfxUInt32 counter = RWLoadCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET); + StoreCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET, counter + 1); + } + } + + // Reset resources + StoreGameMotionVectorFieldX(iPxPos, 0); + StoreGameMotionVectorFieldY(iPxPos, 0); + + StoreOpticalflowMotionVectorFieldX(iPxPos, 0); + StoreOpticalflowMotionVectorFieldY(iPxPos, 0); + + StoreDisocclusionMask(iPxPos, FfxFloat32x2(0.0, 0.0)); +} + +#endif // FFX_FRAMEINTERPOLATION_SETUP_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h new file mode 100644 index 000000000..82ebf21fe --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h @@ -0,0 +1,1252 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup FfxGPUFsr1 FidelityFX FSR1 +/// FidelityFX Super Resolution 1 GPU documentation +/// +/// @ingroup FfxGPUEffects + +/// Setup required constant values for EASU (works on CPU or GPU). +/// +/// @param [out] con0 +/// @param [out] con1 +/// @param [out] con2 +/// @param [out] con3 +/// @param [in] inputViewportInPixelsX The rendered image resolution being upscaled in X dimension. +/// @param [in] inputViewportInPixelsY The rendered image resolution being upscaled in Y dimension. +/// @param [in] inputSizeInPixelsX The resolution of the resource containing the input image (useful for dynamic resolution) in X dimension. +/// @param [in] inputSizeInPixelsY The resolution of the resource containing the input image (useful for dynamic resolution) in Y dimension. +/// @param [in] outputSizeInPixelsX The display resolution which the input image gets upscaled to in X dimension. +/// @param [in] outputSizeInPixelsY The display resolution which the input image gets upscaled to in Y dimension. +/// +/// @ingroup FfxGPUFsr1 +FFX_STATIC void ffxFsrPopulateEasuConstants( + FFX_PARAMETER_INOUT FfxUInt32x4 con0, + FFX_PARAMETER_INOUT FfxUInt32x4 con1, + FFX_PARAMETER_INOUT FfxUInt32x4 con2, + FFX_PARAMETER_INOUT FfxUInt32x4 con3, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsY, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsY, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsY) +{ + // Output integer position to a pixel position in viewport. + con0[0] = ffxAsUInt32(inputViewportInPixelsX * ffxReciprocal(outputSizeInPixelsX)); + con0[1] = ffxAsUInt32(inputViewportInPixelsY * ffxReciprocal(outputSizeInPixelsY)); + con0[2] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsX * ffxReciprocal(outputSizeInPixelsX) - FfxFloat32(0.5)); + con0[3] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsY * ffxReciprocal(outputSizeInPixelsY) - FfxFloat32(0.5)); + + // Viewport pixel position to normalized image space. + // This is used to get upper-left of 'F' tap. + con1[0] = ffxAsUInt32(ffxReciprocal(inputSizeInPixelsX)); + con1[1] = ffxAsUInt32(ffxReciprocal(inputSizeInPixelsY)); + + // Centers of gather4, first offset from upper-left of 'F'. + // +---+---+ + // | | | + // +--(0)--+ + // | b | c | + // +---F---+---+---+ + // | e | f | g | h | + // +--(1)--+--(2)--+ + // | i | j | k | l | + // +---+---+---+---+ + // | n | o | + // +--(3)--+ + // | | | + // +---+---+ + con1[2] = ffxAsUInt32(FfxFloat32(1.0) * ffxReciprocal(inputSizeInPixelsX)); + con1[3] = ffxAsUInt32(FfxFloat32(-1.0) * ffxReciprocal(inputSizeInPixelsY)); + + // These are from (0) instead of 'F'. + con2[0] = ffxAsUInt32(FfxFloat32(-1.0) * ffxReciprocal(inputSizeInPixelsX)); + con2[1] = ffxAsUInt32(FfxFloat32(2.0) * ffxReciprocal(inputSizeInPixelsY)); + con2[2] = ffxAsUInt32(FfxFloat32(1.0) * ffxReciprocal(inputSizeInPixelsX)); + con2[3] = ffxAsUInt32(FfxFloat32(2.0) * ffxReciprocal(inputSizeInPixelsY)); + con3[0] = ffxAsUInt32(FfxFloat32(0.0) * ffxReciprocal(inputSizeInPixelsX)); + con3[1] = ffxAsUInt32(FfxFloat32(4.0) * ffxReciprocal(inputSizeInPixelsY)); + con3[2] = con3[3] = 0; +} + +/// Setup required constant values for EASU (works on CPU or GPU). +/// +/// @param [out] con0 +/// @param [out] con1 +/// @param [out] con2 +/// @param [out] con3 +/// @param [in] inputViewportInPixelsX The resolution of the input in the X dimension. +/// @param [in] inputViewportInPixelsY The resolution of the input in the Y dimension. +/// @param [in] inputSizeInPixelsX The input size in pixels in the X dimension. +/// @param [in] inputSizeInPixelsY The input size in pixels in the Y dimension. +/// @param [in] outputSizeInPixelsX The output size in pixels in the X dimension. +/// @param [in] outputSizeInPixelsY The output size in pixels in the Y dimension. +/// @param [in] inputOffsetInPixelsX The input image offset in the X dimension into the resource containing it (useful for dynamic resolution). +/// @param [in] inputOffsetInPixelsY The input image offset in the Y dimension into the resource containing it (useful for dynamic resolution). +/// +/// @ingroup FfxGPUFsr1 +FFX_STATIC void ffxFsrPopulateEasuConstantsOffset( + FFX_PARAMETER_INOUT FfxUInt32x4 con0, + FFX_PARAMETER_INOUT FfxUInt32x4 con1, + FFX_PARAMETER_INOUT FfxUInt32x4 con2, + FFX_PARAMETER_INOUT FfxUInt32x4 con3, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsY, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsY, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsY, + FFX_PARAMETER_IN FfxFloat32 inputOffsetInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputOffsetInPixelsY) +{ + ffxFsrPopulateEasuConstants( + con0, + con1, + con2, + con3, + inputViewportInPixelsX, + inputViewportInPixelsY, + inputSizeInPixelsX, + inputSizeInPixelsY, + outputSizeInPixelsX, + outputSizeInPixelsY); + + // override + con0[2] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsX * ffxReciprocal(outputSizeInPixelsX) - FfxFloat32(0.5) + inputOffsetInPixelsX); + con0[3] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsY * ffxReciprocal(outputSizeInPixelsY) - FfxFloat32(0.5) + inputOffsetInPixelsY); +} + +#if defined(FFX_GPU) && defined(FFX_FSR_EASU_FLOAT) +// Input callback prototypes, need to be implemented by calling shader +FfxFloat32x4 FsrEasuRF(FfxFloat32x2 p); +FfxFloat32x4 FsrEasuGF(FfxFloat32x2 p); +FfxFloat32x4 FsrEasuBF(FfxFloat32x2 p); + +// Filtering for a given tap for the scalar. +void fsrEasuTapFloat( + FFX_PARAMETER_INOUT FfxFloat32x3 accumulatedColor, // Accumulated color, with negative lobe. + FFX_PARAMETER_INOUT FfxFloat32 accumulatedWeight, // Accumulated weight. + FFX_PARAMETER_IN FfxFloat32x2 pixelOffset, // Pixel offset from resolve position to tap. + FFX_PARAMETER_IN FfxFloat32x2 gradientDirection, // Gradient direction. + FFX_PARAMETER_IN FfxFloat32x2 length, // Length. + FFX_PARAMETER_IN FfxFloat32 negativeLobeStrength, // Negative lobe strength. + FFX_PARAMETER_IN FfxFloat32 clippingPoint, // Clipping point. + FFX_PARAMETER_IN FfxFloat32x3 color) // Tap color. +{ + // Rotate offset by direction. + FfxFloat32x2 rotatedOffset; + rotatedOffset.x = (pixelOffset.x * (gradientDirection.x)) + (pixelOffset.y * gradientDirection.y); + rotatedOffset.y = (pixelOffset.x * (-gradientDirection.y)) + (pixelOffset.y * gradientDirection.x); + + // Anisotropy. + rotatedOffset *= length; + + // Compute distance^2. + FfxFloat32 distanceSquared = rotatedOffset.x * rotatedOffset.x + rotatedOffset.y * rotatedOffset.y; + + // Limit to the window as at corner, 2 taps can easily be outside. + distanceSquared = ffxMin(distanceSquared, clippingPoint); + + // Approximation of lancos2 without sin() or rcp(), or sqrt() to get x. + // (25/16 * (2/5 * x^2 - 1)^2 - (25/16 - 1)) * (1/4 * x^2 - 1)^2 + // |_______________________________________| |_______________| + // base window + // The general form of the 'base' is, + // (a*(b*x^2-1)^2-(a-1)) + // Where 'a=1/(2*b-b^2)' and 'b' moves around the negative lobe. + FfxFloat32 weightB = FfxFloat32(2.0 / 5.0) * distanceSquared + FfxFloat32(-1.0); + FfxFloat32 weightA = negativeLobeStrength * distanceSquared + FfxFloat32(-1.0); + weightB *= weightB; + weightA *= weightA; + weightB = FfxFloat32(25.0 / 16.0) * weightB + FfxFloat32(-(25.0 / 16.0 - 1.0)); + FfxFloat32 weight = weightB * weightA; + + // Do weighted average. + accumulatedColor += color * weight; + accumulatedWeight += weight; +} + +// Accumulate direction and length. +void fsrEasuSetFloat( + FFX_PARAMETER_INOUT FfxFloat32x2 direction, + FFX_PARAMETER_INOUT FfxFloat32 length, + FFX_PARAMETER_IN FfxFloat32x2 pp, + FFX_PARAMETER_IN FfxBoolean biS, + FFX_PARAMETER_IN FfxBoolean biT, + FFX_PARAMETER_IN FfxBoolean biU, + FFX_PARAMETER_IN FfxBoolean biV, + FFX_PARAMETER_IN FfxFloat32 lA, + FFX_PARAMETER_IN FfxFloat32 lB, + FFX_PARAMETER_IN FfxFloat32 lC, + FFX_PARAMETER_IN FfxFloat32 lD, + FFX_PARAMETER_IN FfxFloat32 lE) +{ + // Compute bilinear weight, branches factor out as predicates are compiler time immediates. + // s t + // u v + FfxFloat32 weight = FfxFloat32(0.0); + if (biS) + weight = (FfxFloat32(1.0) - pp.x) * (FfxFloat32(1.0) - pp.y); + if (biT) + weight = pp.x * (FfxFloat32(1.0) - pp.y); + if (biU) + weight = (FfxFloat32(1.0) - pp.x) * pp.y; + if (biV) + weight = pp.x * pp.y; + + // Direction is the '+' diff. + // a + // b c d + // e + // Then takes magnitude from abs average of both sides of 'c'. + // Length converts gradient reversal to 0, smoothly to non-reversal at 1, shaped, then adding horz and vert terms. + FfxFloat32 dc = lD - lC; + FfxFloat32 cb = lC - lB; + FfxFloat32 lengthX = max(abs(dc), abs(cb)); + lengthX = ffxApproximateReciprocal(lengthX); + FfxFloat32 directionX = lD - lB; + direction.x += directionX * weight; + lengthX = ffxSaturate(abs(directionX) * lengthX); + lengthX *= lengthX; + length += lengthX * weight; + + // Repeat for the y axis. + FfxFloat32 ec = lE - lC; + FfxFloat32 ca = lC - lA; + FfxFloat32 lengthY = max(abs(ec), abs(ca)); + lengthY = ffxApproximateReciprocal(lengthY); + FfxFloat32 directionY = lE - lA; + direction.y += directionY * weight; + lengthY = ffxSaturate(abs(directionY) * lengthY); + lengthY *= lengthY; + length += lengthY * weight; +} + +/// Apply edge-aware spatial upsampling using 32bit floating point precision calculations. +/// +/// @param [out] outPixel The computed color of a pixel. +/// @param [in] integerPosition Integer pixel position within the output. +/// @param [in] con0 The first constant value generated by ffxFsrPopulateEasuConstants. +/// @param [in] con1 The second constant value generated by ffxFsrPopulateEasuConstants. +/// @param [in] con2 The third constant value generated by ffxFsrPopulateEasuConstants. +/// @param [in] con3 The fourth constant value generated by ffxFsrPopulateEasuConstants. +/// +/// @ingroup FSR +void ffxFsrEasuFloat( + FFX_PARAMETER_OUT FfxFloat32x3 pix, + FFX_PARAMETER_IN FfxUInt32x2 ip, + FFX_PARAMETER_IN FfxUInt32x4 con0, + FFX_PARAMETER_IN FfxUInt32x4 con1, + FFX_PARAMETER_IN FfxUInt32x4 con2, + FFX_PARAMETER_IN FfxUInt32x4 con3) +{ + // Get position of 'f'. + FfxFloat32x2 pp = FfxFloat32x2(ip) * ffxAsFloat(con0.xy) + ffxAsFloat(con0.zw); + FfxFloat32x2 fp = floor(pp); + pp -= fp; + + // 12-tap kernel. + // b c + // e f g h + // i j k l + // n o + // Gather 4 ordering. + // a b + // r g + // For packed FP16, need either {rg} or {ab} so using the following setup for gather in all versions, + // a b <- unused (z) + // r g + // a b a b + // r g r g + // a b + // r g <- unused (z) + // Allowing dead-code removal to remove the 'z's. + FfxFloat32x2 p0 = fp * ffxAsFloat(con1.xy) + ffxAsFloat(con1.zw); + + // These are from p0 to avoid pulling two constants on pre-Navi hardware. + FfxFloat32x2 p1 = p0 + ffxAsFloat(con2.xy); + FfxFloat32x2 p2 = p0 + ffxAsFloat(con2.zw); + FfxFloat32x2 p3 = p0 + ffxAsFloat(con3.xy); + FfxFloat32x4 bczzR = FsrEasuRF(p0); + FfxFloat32x4 bczzG = FsrEasuGF(p0); + FfxFloat32x4 bczzB = FsrEasuBF(p0); + FfxFloat32x4 ijfeR = FsrEasuRF(p1); + FfxFloat32x4 ijfeG = FsrEasuGF(p1); + FfxFloat32x4 ijfeB = FsrEasuBF(p1); + FfxFloat32x4 klhgR = FsrEasuRF(p2); + FfxFloat32x4 klhgG = FsrEasuGF(p2); + FfxFloat32x4 klhgB = FsrEasuBF(p2); + FfxFloat32x4 zzonR = FsrEasuRF(p3); + FfxFloat32x4 zzonG = FsrEasuGF(p3); + FfxFloat32x4 zzonB = FsrEasuBF(p3); + + // Simplest multi-channel approximate luma possible (luma times 2, in 2 FMA/MAD). + FfxFloat32x4 bczzL = bczzB * ffxBroadcast4(0.5) + (bczzR * ffxBroadcast4(0.5) + bczzG); + FfxFloat32x4 ijfeL = ijfeB * ffxBroadcast4(0.5) + (ijfeR * ffxBroadcast4(0.5) + ijfeG); + FfxFloat32x4 klhgL = klhgB * ffxBroadcast4(0.5) + (klhgR * ffxBroadcast4(0.5) + klhgG); + FfxFloat32x4 zzonL = zzonB * ffxBroadcast4(0.5) + (zzonR * ffxBroadcast4(0.5) + zzonG); + + // Rename. + FfxFloat32 bL = bczzL.x; + FfxFloat32 cL = bczzL.y; + FfxFloat32 iL = ijfeL.x; + FfxFloat32 jL = ijfeL.y; + FfxFloat32 fL = ijfeL.z; + FfxFloat32 eL = ijfeL.w; + FfxFloat32 kL = klhgL.x; + FfxFloat32 lL = klhgL.y; + FfxFloat32 hL = klhgL.z; + FfxFloat32 gL = klhgL.w; + FfxFloat32 oL = zzonL.z; + FfxFloat32 nL = zzonL.w; + + // Accumulate for bilinear interpolation. + FfxFloat32x2 dir = ffxBroadcast2(0.0); + FfxFloat32 len = FfxFloat32(0.0); + fsrEasuSetFloat(dir, len, pp, FFX_TRUE, FFX_FALSE, FFX_FALSE, FFX_FALSE, bL, eL, fL, gL, jL); + fsrEasuSetFloat(dir, len, pp, FFX_FALSE, FFX_TRUE, FFX_FALSE, FFX_FALSE, cL, fL, gL, hL, kL); + fsrEasuSetFloat(dir, len, pp, FFX_FALSE, FFX_FALSE, FFX_TRUE, FFX_FALSE, fL, iL, jL, kL, nL); + fsrEasuSetFloat(dir, len, pp, FFX_FALSE, FFX_FALSE, FFX_FALSE, FFX_TRUE, gL, jL, kL, lL, oL); + + // Normalize with approximation, and cleanup close to zero. + FfxFloat32x2 dir2 = dir * dir; + FfxFloat32 dirR = dir2.x + dir2.y; + FfxBoolean zro = dirR < FfxFloat32(1.0 / 32768.0); + dirR = ffxApproximateReciprocalSquareRoot(dirR); + dirR = zro ? FfxFloat32(1.0) : dirR; + dir.x = zro ? FfxFloat32(1.0) : dir.x; + dir *= ffxBroadcast2(dirR); + + // Transform from {0 to 2} to {0 to 1} range, and shape with square. + len = len * FfxFloat32(0.5); + len *= len; + + // Stretch kernel {1.0 vert|horz, to sqrt(2.0) on diagonal}. + FfxFloat32 stretch = (dir.x * dir.x + dir.y * dir.y) * ffxApproximateReciprocal(max(abs(dir.x), abs(dir.y))); + + // Anisotropic length after rotation, + // x := 1.0 lerp to 'stretch' on edges + // y := 1.0 lerp to 2x on edges + FfxFloat32x2 len2 = FfxFloat32x2(FfxFloat32(1.0) + (stretch - FfxFloat32(1.0)) * len, FfxFloat32(1.0) + FfxFloat32(-0.5) * len); + + // Based on the amount of 'edge', + // the window shifts from +/-{sqrt(2.0) to slightly beyond 2.0}. + FfxFloat32 lob = FfxFloat32(0.5) + FfxFloat32((1.0 / 4.0 - 0.04) - 0.5) * len; + + // Set distance^2 clipping point to the end of the adjustable window. + FfxFloat32 clp = ffxApproximateReciprocal(lob); + + // Accumulation mixed with min/max of 4 nearest. + // b c + // e f g h + // i j k l + // n o + FfxFloat32x3 min4 = + ffxMin(ffxMin3(FfxFloat32x3(ijfeR.z, ijfeG.z, ijfeB.z), FfxFloat32x3(klhgR.w, klhgG.w, klhgB.w), FfxFloat32x3(ijfeR.y, ijfeG.y, ijfeB.y)), + FfxFloat32x3(klhgR.x, klhgG.x, klhgB.x)); + FfxFloat32x3 max4 = + max(ffxMax3(FfxFloat32x3(ijfeR.z, ijfeG.z, ijfeB.z), FfxFloat32x3(klhgR.w, klhgG.w, klhgB.w), FfxFloat32x3(ijfeR.y, ijfeG.y, ijfeB.y)), FfxFloat32x3(klhgR.x, klhgG.x, klhgB.x)); + + // Accumulation. + FfxFloat32x3 aC = ffxBroadcast3(0.0); + FfxFloat32 aW = FfxFloat32(0.0); + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, -1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(bczzR.x, bczzG.x, bczzB.x)); // b + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, -1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(bczzR.y, bczzG.y, bczzB.y)); // c + fsrEasuTapFloat(aC, aW, FfxFloat32x2(-1.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.x, ijfeG.x, ijfeB.x)); // i + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.y, ijfeG.y, ijfeB.y)); // j + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.z, ijfeG.z, ijfeB.z)); // f + fsrEasuTapFloat(aC, aW, FfxFloat32x2(-1.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.w, ijfeG.w, ijfeB.w)); // e + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.x, klhgG.x, klhgB.x)); // k + fsrEasuTapFloat(aC, aW, FfxFloat32x2(2.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.y, klhgG.y, klhgB.y)); // l + fsrEasuTapFloat(aC, aW, FfxFloat32x2(2.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.z, klhgG.z, klhgB.z)); // h + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.w, klhgG.w, klhgB.w)); // g + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, 2.0) - pp, dir, len2, lob, clp, FfxFloat32x3(zzonR.z, zzonG.z, zzonB.z)); // o + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, 2.0) - pp, dir, len2, lob, clp, FfxFloat32x3(zzonR.w, zzonG.w, zzonB.w)); // n + + // Normalize and dering. + pix = ffxMin(max4, max(min4, aC * ffxBroadcast3(ffxReciprocal(aW)))); +} +#endif // #if defined(FFX_GPU) && defined(FFX_FSR_EASU_FLOAT) + +#if defined(FFX_GPU) && FFX_HALF == 1 && defined(FFX_FSR_EASU_HALF) +// Input callback prototypes, need to be implemented by calling shader +FfxFloat16x4 FsrEasuRH(FfxFloat32x2 p); +FfxFloat16x4 FsrEasuGH(FfxFloat32x2 p); +FfxFloat16x4 FsrEasuBH(FfxFloat32x2 p); + +// This runs 2 taps in parallel. +void FsrEasuTapH( + FFX_PARAMETER_INOUT FfxFloat16x2 aCR, + FFX_PARAMETER_INOUT FfxFloat16x2 aCG, + FFX_PARAMETER_INOUT FfxFloat16x2 aCB, + FFX_PARAMETER_INOUT FfxFloat16x2 aW, + FFX_PARAMETER_IN FfxFloat16x2 offX, + FFX_PARAMETER_IN FfxFloat16x2 offY, + FFX_PARAMETER_IN FfxFloat16x2 dir, + FFX_PARAMETER_IN FfxFloat16x2 len, + FFX_PARAMETER_IN FfxFloat16 lob, + FFX_PARAMETER_IN FfxFloat16 clp, + FFX_PARAMETER_IN FfxFloat16x2 cR, + FFX_PARAMETER_IN FfxFloat16x2 cG, + FFX_PARAMETER_IN FfxFloat16x2 cB) +{ + FfxFloat16x2 vX, vY; + vX = offX * dir.xx + offY * dir.yy; + vY = offX * (-dir.yy) + offY * dir.xx; + vX *= len.x; + vY *= len.y; + FfxFloat16x2 d2 = vX * vX + vY * vY; + d2 = min(d2, FFX_BROADCAST_FLOAT16X2(clp)); + FfxFloat16x2 wB = FFX_BROADCAST_FLOAT16X2(2.0 / 5.0) * d2 + FFX_BROADCAST_FLOAT16X2(-1.0); + FfxFloat16x2 wA = FFX_BROADCAST_FLOAT16X2(lob) * d2 + FFX_BROADCAST_FLOAT16X2(-1.0); + wB *= wB; + wA *= wA; + wB = FFX_BROADCAST_FLOAT16X2(25.0 / 16.0) * wB + FFX_BROADCAST_FLOAT16X2(-(25.0 / 16.0 - 1.0)); + FfxFloat16x2 w = wB * wA; + aCR += cR * w; + aCG += cG * w; + aCB += cB * w; + aW += w; +} + +// This runs 2 taps in parallel. +void FsrEasuSetH( + FFX_PARAMETER_INOUT FfxFloat16x2 dirPX, + FFX_PARAMETER_INOUT FfxFloat16x2 dirPY, + FFX_PARAMETER_INOUT FfxFloat16x2 lenP, + FFX_PARAMETER_IN FfxFloat16x2 pp, + FFX_PARAMETER_IN FfxBoolean biST, + FFX_PARAMETER_IN FfxBoolean biUV, + FFX_PARAMETER_IN FfxFloat16x2 lA, + FFX_PARAMETER_IN FfxFloat16x2 lB, + FFX_PARAMETER_IN FfxFloat16x2 lC, + FFX_PARAMETER_IN FfxFloat16x2 lD, + FFX_PARAMETER_IN FfxFloat16x2 lE) +{ + FfxFloat16x2 w = FFX_BROADCAST_FLOAT16X2(0.0); + + if (biST) + w = (FfxFloat16x2(1.0, 0.0) + FfxFloat16x2(-pp.x, pp.x)) * FFX_BROADCAST_FLOAT16X2(FFX_BROADCAST_FLOAT16(1.0) - pp.y); + + if (biUV) + w = (FfxFloat16x2(1.0, 0.0) + FfxFloat16x2(-pp.x, pp.x)) * FFX_BROADCAST_FLOAT16X2(pp.y); + + // ABS is not free in the packed FP16 path. + FfxFloat16x2 dc = lD - lC; + FfxFloat16x2 cb = lC - lB; + FfxFloat16x2 lenX = max(abs(dc), abs(cb)); + lenX = ffxReciprocalHalf(lenX); + + FfxFloat16x2 dirX = lD - lB; + dirPX += dirX * w; + lenX = ffxSaturate(abs(dirX) * lenX); + lenX *= lenX; + lenP += lenX * w; + FfxFloat16x2 ec = lE - lC; + FfxFloat16x2 ca = lC - lA; + FfxFloat16x2 lenY = max(abs(ec), abs(ca)); + lenY = ffxReciprocalHalf(lenY); + FfxFloat16x2 dirY = lE - lA; + dirPY += dirY * w; + lenY = ffxSaturate(abs(dirY) * lenY); + lenY *= lenY; + lenP += lenY * w; +} + +void FsrEasuH( + FFX_PARAMETER_OUT FfxFloat16x3 pix, + FFX_PARAMETER_IN FfxUInt32x2 ip, + FFX_PARAMETER_IN FfxUInt32x4 con0, + FFX_PARAMETER_IN FfxUInt32x4 con1, + FFX_PARAMETER_IN FfxUInt32x4 con2, + FFX_PARAMETER_IN FfxUInt32x4 con3) +{ + FfxFloat32x2 pp = FfxFloat32x2(ip) * ffxAsFloat(con0.xy) + ffxAsFloat(con0.zw); + FfxFloat32x2 fp = floor(pp); + pp -= fp; + FfxFloat16x2 ppp = FfxFloat16x2(pp); + + FfxFloat32x2 p0 = fp * ffxAsFloat(con1.xy) + ffxAsFloat(con1.zw); + FfxFloat32x2 p1 = p0 + ffxAsFloat(con2.xy); + FfxFloat32x2 p2 = p0 + ffxAsFloat(con2.zw); + FfxFloat32x2 p3 = p0 + ffxAsFloat(con3.xy); + FfxFloat16x4 bczzR = FsrEasuRH(p0); + FfxFloat16x4 bczzG = FsrEasuGH(p0); + FfxFloat16x4 bczzB = FsrEasuBH(p0); + FfxFloat16x4 ijfeR = FsrEasuRH(p1); + FfxFloat16x4 ijfeG = FsrEasuGH(p1); + FfxFloat16x4 ijfeB = FsrEasuBH(p1); + FfxFloat16x4 klhgR = FsrEasuRH(p2); + FfxFloat16x4 klhgG = FsrEasuGH(p2); + FfxFloat16x4 klhgB = FsrEasuBH(p2); + FfxFloat16x4 zzonR = FsrEasuRH(p3); + FfxFloat16x4 zzonG = FsrEasuGH(p3); + FfxFloat16x4 zzonB = FsrEasuBH(p3); + + FfxFloat16x4 bczzL = bczzB * FFX_BROADCAST_FLOAT16X4(0.5) + (bczzR * FFX_BROADCAST_FLOAT16X4(0.5) + bczzG); + FfxFloat16x4 ijfeL = ijfeB * FFX_BROADCAST_FLOAT16X4(0.5) + (ijfeR * FFX_BROADCAST_FLOAT16X4(0.5) + ijfeG); + FfxFloat16x4 klhgL = klhgB * FFX_BROADCAST_FLOAT16X4(0.5) + (klhgR * FFX_BROADCAST_FLOAT16X4(0.5) + klhgG); + FfxFloat16x4 zzonL = zzonB * FFX_BROADCAST_FLOAT16X4(0.5) + (zzonR * FFX_BROADCAST_FLOAT16X4(0.5) + zzonG); + FfxFloat16 bL = bczzL.x; + FfxFloat16 cL = bczzL.y; + FfxFloat16 iL = ijfeL.x; + FfxFloat16 jL = ijfeL.y; + FfxFloat16 fL = ijfeL.z; + FfxFloat16 eL = ijfeL.w; + FfxFloat16 kL = klhgL.x; + FfxFloat16 lL = klhgL.y; + FfxFloat16 hL = klhgL.z; + FfxFloat16 gL = klhgL.w; + FfxFloat16 oL = zzonL.z; + FfxFloat16 nL = zzonL.w; + + // This part is different, accumulating 2 taps in parallel. + FfxFloat16x2 dirPX = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 dirPY = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 lenP = FFX_BROADCAST_FLOAT16X2(0.0); + FsrEasuSetH(dirPX, + dirPY, + lenP, + ppp, + FfxBoolean(true), + FfxBoolean(false), + FfxFloat16x2(bL, cL), + FfxFloat16x2(eL, fL), + FfxFloat16x2(fL, gL), + FfxFloat16x2(gL, hL), + FfxFloat16x2(jL, kL)); + FsrEasuSetH(dirPX, + dirPY, + lenP, + ppp, + FfxBoolean(false), + FfxBoolean(true), + FfxFloat16x2(fL, gL), + FfxFloat16x2(iL, jL), + FfxFloat16x2(jL, kL), + FfxFloat16x2(kL, lL), + FfxFloat16x2(nL, oL)); + FfxFloat16x2 dir = FfxFloat16x2(dirPX.r + dirPX.g, dirPY.r + dirPY.g); + FfxFloat16 len = lenP.r + lenP.g; + + FfxFloat16x2 dir2 = dir * dir; + FfxFloat16 dirR = dir2.x + dir2.y; + FfxUInt32 zro = FfxUInt32(dirR < FFX_BROADCAST_FLOAT16(1.0 / 32768.0)); + dirR = ffxApproximateReciprocalSquareRootHalf(dirR); + dirR = (zro > 0) ? FFX_BROADCAST_FLOAT16(1.0) : dirR; + dir.x = (zro > 0) ? FFX_BROADCAST_FLOAT16(1.0) : dir.x; + dir *= FFX_BROADCAST_FLOAT16X2(dirR); + len = len * FFX_BROADCAST_FLOAT16(0.5); + len *= len; + FfxFloat16 stretch = (dir.x * dir.x + dir.y * dir.y) * ffxApproximateReciprocalHalf(max(abs(dir.x), abs(dir.y))); + FfxFloat16x2 len2 = + FfxFloat16x2(FFX_BROADCAST_FLOAT16(1.0) + (stretch - FFX_BROADCAST_FLOAT16(1.0)) * len, FFX_BROADCAST_FLOAT16(1.0) + FFX_BROADCAST_FLOAT16(-0.5) * len); + FfxFloat16 lob = FFX_BROADCAST_FLOAT16(0.5) + FFX_BROADCAST_FLOAT16((1.0 / 4.0 - 0.04) - 0.5) * len; + FfxFloat16 clp = ffxApproximateReciprocalHalf(lob); + + // FP16 is different, using packed trick to do min and max in same operation. + FfxFloat16x2 bothR = + max(max(FfxFloat16x2(-ijfeR.z, ijfeR.z), FfxFloat16x2(-klhgR.w, klhgR.w)), max(FfxFloat16x2(-ijfeR.y, ijfeR.y), FfxFloat16x2(-klhgR.x, klhgR.x))); + FfxFloat16x2 bothG = + max(max(FfxFloat16x2(-ijfeG.z, ijfeG.z), FfxFloat16x2(-klhgG.w, klhgG.w)), max(FfxFloat16x2(-ijfeG.y, ijfeG.y), FfxFloat16x2(-klhgG.x, klhgG.x))); + FfxFloat16x2 bothB = + max(max(FfxFloat16x2(-ijfeB.z, ijfeB.z), FfxFloat16x2(-klhgB.w, klhgB.w)), max(FfxFloat16x2(-ijfeB.y, ijfeB.y), FfxFloat16x2(-klhgB.x, klhgB.x))); + + // This part is different for FP16, working pairs of taps at a time. + FfxFloat16x2 pR = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 pG = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 pB = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 pW = FFX_BROADCAST_FLOAT16X2(0.0); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(0.0, 1.0) - ppp.xx, FfxFloat16x2(-1.0, -1.0) - ppp.yy, dir, len2, lob, clp, bczzR.xy, bczzG.xy, bczzB.xy); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(-1.0, 0.0) - ppp.xx, FfxFloat16x2(1.0, 1.0) - ppp.yy, dir, len2, lob, clp, ijfeR.xy, ijfeG.xy, ijfeB.xy); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(0.0, -1.0) - ppp.xx, FfxFloat16x2(0.0, 0.0) - ppp.yy, dir, len2, lob, clp, ijfeR.zw, ijfeG.zw, ijfeB.zw); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(1.0, 2.0) - ppp.xx, FfxFloat16x2(1.0, 1.0) - ppp.yy, dir, len2, lob, clp, klhgR.xy, klhgG.xy, klhgB.xy); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(2.0, 1.0) - ppp.xx, FfxFloat16x2(0.0, 0.0) - ppp.yy, dir, len2, lob, clp, klhgR.zw, klhgG.zw, klhgB.zw); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(1.0, 0.0) - ppp.xx, FfxFloat16x2(2.0, 2.0) - ppp.yy, dir, len2, lob, clp, zzonR.zw, zzonG.zw, zzonB.zw); + FfxFloat16x3 aC = FfxFloat16x3(pR.x + pR.y, pG.x + pG.y, pB.x + pB.y); + FfxFloat16 aW = pW.x + pW.y; + + // Slightly different for FP16 version due to combined min and max. + pix = min(FfxFloat16x3(bothR.y, bothG.y, bothB.y), max(-FfxFloat16x3(bothR.x, bothG.x, bothB.x), aC * FFX_BROADCAST_FLOAT16X3(ffxReciprocalHalf(aW)))); +} +#endif // #if defined(FFX_GPU) && defined(FFX_HALF) && defined(FFX_FSR_EASU_HALF) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [RCAS] ROBUST CONTRAST ADAPTIVE SHARPENING +// +//------------------------------------------------------------------------------------------------------------------------------ +// CAS uses a simplified mechanism to convert local contrast into a variable amount of sharpness. +// RCAS uses a more exact mechanism, solving for the maximum local sharpness possible before clipping. +// RCAS also has a built in process to limit sharpening of what it detects as possible noise. +// RCAS sharper does not support scaling, as it should be applied after EASU scaling. +// Pass EASU output straight into RCAS, no color conversions necessary. +//------------------------------------------------------------------------------------------------------------------------------ +// RCAS is based on the following logic. +// RCAS uses a 5 tap filter in a cross pattern (same as CAS), +// w n +// w 1 w for taps w m e +// w s +// Where 'w' is the negative lobe weight. +// output = (w*(n+e+w+s)+m)/(4*w+1) +// RCAS solves for 'w' by seeing where the signal might clip out of the {0 to 1} input range, +// 0 == (w*(n+e+w+s)+m)/(4*w+1) -> w = -m/(n+e+w+s) +// 1 == (w*(n+e+w+s)+m)/(4*w+1) -> w = (1-m)/(n+e+w+s-4*1) +// Then chooses the 'w' which results in no clipping, limits 'w', and multiplies by the 'sharp' amount. +// This solution above has issues with MSAA input as the steps along the gradient cause edge detection issues. +// So RCAS uses 4x the maximum and 4x the minimum (depending on equation)in place of the individual taps. +// As well as switching from 'm' to either the minimum or maximum (depending on side), to help in energy conservation. +// This stabilizes RCAS. +// RCAS does a simple highpass which is normalized against the local contrast then shaped, +// 0.25 +// 0.25 -1 0.25 +// 0.25 +// This is used as a noise detection filter, to reduce the effect of RCAS on grain, and focus on real edges. +// +// GLSL example for the required callbacks : +// +// FfxFloat16x4 FsrRcasLoadH(FfxInt16x2 p){return FfxFloat16x4(imageLoad(imgSrc,FfxInt32x2(p)));} +// void FsrRcasInputH(inout FfxFloat16 r,inout FfxFloat16 g,inout FfxFloat16 b) +// { +// //do any simple input color conversions here or leave empty if none needed +// } +// +// FsrRcasCon need to be called from the CPU or GPU to set up constants. +// Including a GPU example here, the 'con' value would be stored out to a constant buffer. +// +// FfxUInt32x4 con; +// FsrRcasCon(con, +// 0.0); // The scale is {0.0 := maximum sharpness, to N>0, where N is the number of stops (halving) of the reduction of sharpness}. +// --------------- +// RCAS sharpening supports a CAS-like pass-through alpha via, +// #define FSR_RCAS_PASSTHROUGH_ALPHA 1 +// RCAS also supports a define to enable a more expensive path to avoid some sharpening of noise. +// Would suggest it is better to apply film grain after RCAS sharpening (and after scaling) instead of using this define, +// #define FSR_RCAS_DENOISE 1 +//============================================================================================================================== +// This is set at the limit of providing unnatural results for sharpening. +#define FSR_RCAS_LIMIT (0.25-(1.0/16.0)) +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// CONSTANT SETUP +//============================================================================================================================== +// Call to setup required constant values (works on CPU or GPU). + FFX_STATIC void FsrRcasCon(FfxUInt32x4 con, + // The scale is {0.0 := maximum, to N>0, where N is the number of stops (halving) of the reduction of sharpness}. + FfxFloat32 sharpness) + { + // Transform from stops to linear value. + sharpness = exp2(-sharpness); + FfxFloat32x2 hSharp = {sharpness, sharpness}; + con[0] = ffxAsUInt32(sharpness); + con[1] = ffxPackHalf2x16(hSharp); + con[2] = 0; + con[3] = 0; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// NON-PACKED 32-BIT VERSION +//============================================================================================================================== +#if defined(FFX_GPU)&&defined(FSR_RCAS_F) + // Input callback prototypes that need to be implemented by calling shader + FfxFloat32x4 FsrRcasLoadF(FfxInt32x2 p); + void FsrRcasInputF(inout FfxFloat32 r,inout FfxFloat32 g,inout FfxFloat32 b); +//------------------------------------------------------------------------------------------------------------------------------ + void FsrRcasF(out FfxFloat32 pixR, // Output values, non-vector so port between RcasFilter() and RcasFilterH() is easy. + out FfxFloat32 pixG, + out FfxFloat32 pixB, +#ifdef FSR_RCAS_PASSTHROUGH_ALPHA + out FfxFloat32 pixA, +#endif + FfxUInt32x2 ip, // Integer pixel position in output. + FfxUInt32x4 con) + { // Constant generated by RcasSetup(). + // Algorithm uses minimal 3x3 pixel neighborhood. + // b + // d e f + // h + FfxInt32x2 sp = FfxInt32x2(ip); + FfxFloat32x3 b = FsrRcasLoadF(sp + FfxInt32x2(0, -1)).rgb; + FfxFloat32x3 d = FsrRcasLoadF(sp + FfxInt32x2(-1, 0)).rgb; +#ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat32x4 ee = FsrRcasLoadF(sp); + FfxFloat32x3 e = ee.rgb; + pixA = ee.a; +#else + FfxFloat32x3 e = FsrRcasLoadF(sp).rgb; +#endif + FfxFloat32x3 f = FsrRcasLoadF(sp + FfxInt32x2(1, 0)).rgb; + FfxFloat32x3 h = FsrRcasLoadF(sp + FfxInt32x2(0, 1)).rgb; + // Rename (32-bit) or regroup (16-bit). + FfxFloat32 bR = b.r; + FfxFloat32 bG = b.g; + FfxFloat32 bB = b.b; + FfxFloat32 dR = d.r; + FfxFloat32 dG = d.g; + FfxFloat32 dB = d.b; + FfxFloat32 eR = e.r; + FfxFloat32 eG = e.g; + FfxFloat32 eB = e.b; + FfxFloat32 fR = f.r; + FfxFloat32 fG = f.g; + FfxFloat32 fB = f.b; + FfxFloat32 hR = h.r; + FfxFloat32 hG = h.g; + FfxFloat32 hB = h.b; + // Run optional input transform. + FsrRcasInputF(bR, bG, bB); + FsrRcasInputF(dR, dG, dB); + FsrRcasInputF(eR, eG, eB); + FsrRcasInputF(fR, fG, fB); + FsrRcasInputF(hR, hG, hB); + // Luma times 2. + FfxFloat32 bL = bB * FfxFloat32(0.5) + (bR * FfxFloat32(0.5) + bG); + FfxFloat32 dL = dB * FfxFloat32(0.5) + (dR * FfxFloat32(0.5) + dG); + FfxFloat32 eL = eB * FfxFloat32(0.5) + (eR * FfxFloat32(0.5) + eG); + FfxFloat32 fL = fB * FfxFloat32(0.5) + (fR * FfxFloat32(0.5) + fG); + FfxFloat32 hL = hB * FfxFloat32(0.5) + (hR * FfxFloat32(0.5) + hG); + // Noise detection. + FfxFloat32 nz = FfxFloat32(0.25) * bL + FfxFloat32(0.25) * dL + FfxFloat32(0.25) * fL + FfxFloat32(0.25) * hL - eL; + nz = ffxSaturate(abs(nz) * ffxApproximateReciprocalMedium(ffxMax3(ffxMax3(bL, dL, eL), fL, hL) - ffxMin3(ffxMin3(bL, dL, eL), fL, hL))); + nz = FfxFloat32(-0.5) * nz + FfxFloat32(1.0); + // Min and max of ring. + FfxFloat32 mn4R = ffxMin(ffxMin3(bR, dR, fR), hR); + FfxFloat32 mn4G = ffxMin(ffxMin3(bG, dG, fG), hG); + FfxFloat32 mn4B = ffxMin(ffxMin3(bB, dB, fB), hB); + FfxFloat32 mx4R = max(ffxMax3(bR, dR, fR), hR); + FfxFloat32 mx4G = max(ffxMax3(bG, dG, fG), hG); + FfxFloat32 mx4B = max(ffxMax3(bB, dB, fB), hB); + // Immediate constants for peak range. + FfxFloat32x2 peakC = FfxFloat32x2(1.0, -1.0 * 4.0); + // Limiters, these need to be high precision RCPs. + FfxFloat32 hitMinR = mn4R * ffxReciprocal(FfxFloat32(4.0) * mx4R); + FfxFloat32 hitMinG = mn4G * ffxReciprocal(FfxFloat32(4.0) * mx4G); + FfxFloat32 hitMinB = mn4B * ffxReciprocal(FfxFloat32(4.0) * mx4B); + FfxFloat32 hitMaxR = (peakC.x - mx4R) * ffxReciprocal(FfxFloat32(4.0) * mn4R + peakC.y); + FfxFloat32 hitMaxG = (peakC.x - mx4G) * ffxReciprocal(FfxFloat32(4.0) * mn4G + peakC.y); + FfxFloat32 hitMaxB = (peakC.x - mx4B) * ffxReciprocal(FfxFloat32(4.0) * mn4B + peakC.y); + FfxFloat32 lobeR = max(-hitMinR, hitMaxR); + FfxFloat32 lobeG = max(-hitMinG, hitMaxG); + FfxFloat32 lobeB = max(-hitMinB, hitMaxB); + FfxFloat32 lobe = max(FfxFloat32(-FSR_RCAS_LIMIT), ffxMin(ffxMax3(lobeR, lobeG, lobeB), FfxFloat32(0.0))) * ffxAsFloat + (con.x); + // Apply noise removal. +#ifdef FSR_RCAS_DENOISE + lobe *= nz; +#endif + // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes. + FfxFloat32 rcpL = ffxApproximateReciprocalMedium(FfxFloat32(4.0) * lobe + FfxFloat32(1.0)); + pixR = (lobe * bR + lobe * dR + lobe * hR + lobe * fR + eR) * rcpL; + pixG = (lobe * bG + lobe * dG + lobe * hG + lobe * fG + eG) * rcpL; + pixB = (lobe * bB + lobe * dB + lobe * hB + lobe * fB + eB) * rcpL; + return; + } +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// NON-PACKED 16-BIT VERSION +//============================================================================================================================== +#if defined(FFX_GPU) && FFX_HALF == 1 && defined(FSR_RCAS_H) + // Input callback prototypes that need to be implemented by calling shader + FfxFloat16x4 FsrRcasLoadH(FfxInt16x2 p); + void FsrRcasInputH(inout FfxFloat16 r,inout FfxFloat16 g,inout FfxFloat16 b); +//------------------------------------------------------------------------------------------------------------------------------ + void FsrRcasH( + out FfxFloat16 pixR, // Output values, non-vector so port between RcasFilter() and RcasFilterH() is easy. + out FfxFloat16 pixG, + out FfxFloat16 pixB, + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + out FfxFloat16 pixA, + #endif + FfxUInt32x2 ip, // Integer pixel position in output. + FfxUInt32x4 con){ // Constant generated by RcasSetup(). + // Sharpening algorithm uses minimal 3x3 pixel neighborhood. + // b + // d e f + // h + FfxInt16x2 sp=FfxInt16x2(ip); + FfxFloat16x3 b=FsrRcasLoadH(sp+FfxInt16x2( 0,-1)).rgb; + FfxFloat16x3 d=FsrRcasLoadH(sp+FfxInt16x2(-1, 0)).rgb; + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat16x4 ee=FsrRcasLoadH(sp); + FfxFloat16x3 e=ee.rgb;pixA=ee.a; + #else + FfxFloat16x3 e=FsrRcasLoadH(sp).rgb; + #endif + FfxFloat16x3 f=FsrRcasLoadH(sp+FfxInt16x2( 1, 0)).rgb; + FfxFloat16x3 h=FsrRcasLoadH(sp+FfxInt16x2( 0, 1)).rgb; + // Rename (32-bit) or regroup (16-bit). + FfxFloat16 bR=b.r; + FfxFloat16 bG=b.g; + FfxFloat16 bB=b.b; + FfxFloat16 dR=d.r; + FfxFloat16 dG=d.g; + FfxFloat16 dB=d.b; + FfxFloat16 eR=e.r; + FfxFloat16 eG=e.g; + FfxFloat16 eB=e.b; + FfxFloat16 fR=f.r; + FfxFloat16 fG=f.g; + FfxFloat16 fB=f.b; + FfxFloat16 hR=h.r; + FfxFloat16 hG=h.g; + FfxFloat16 hB=h.b; + // Run optional input transform. + FsrRcasInputH(bR,bG,bB); + FsrRcasInputH(dR,dG,dB); + FsrRcasInputH(eR,eG,eB); + FsrRcasInputH(fR,fG,fB); + FsrRcasInputH(hR,hG,hB); + // Luma times 2. + FfxFloat16 bL=bB*FFX_BROADCAST_FLOAT16(0.5)+(bR*FFX_BROADCAST_FLOAT16(0.5)+bG); + FfxFloat16 dL=dB*FFX_BROADCAST_FLOAT16(0.5)+(dR*FFX_BROADCAST_FLOAT16(0.5)+dG); + FfxFloat16 eL=eB*FFX_BROADCAST_FLOAT16(0.5)+(eR*FFX_BROADCAST_FLOAT16(0.5)+eG); + FfxFloat16 fL=fB*FFX_BROADCAST_FLOAT16(0.5)+(fR*FFX_BROADCAST_FLOAT16(0.5)+fG); + FfxFloat16 hL=hB*FFX_BROADCAST_FLOAT16(0.5)+(hR*FFX_BROADCAST_FLOAT16(0.5)+hG); + // Noise detection. + FfxFloat16 nz=FFX_BROADCAST_FLOAT16(0.25)*bL+FFX_BROADCAST_FLOAT16(0.25)*dL+FFX_BROADCAST_FLOAT16(0.25)*fL+FFX_BROADCAST_FLOAT16(0.25)*hL-eL; + nz=ffxSaturate(abs(nz)*ffxApproximateReciprocalMediumHalf(ffxMax3Half(ffxMax3Half(bL,dL,eL),fL,hL)-ffxMin3Half(ffxMin3Half(bL,dL,eL),fL,hL))); + nz=FFX_BROADCAST_FLOAT16(-0.5)*nz+FFX_BROADCAST_FLOAT16(1.0); + // Min and max of ring. + FfxFloat16 mn4R=min(ffxMin3Half(bR,dR,fR),hR); + FfxFloat16 mn4G=min(ffxMin3Half(bG,dG,fG),hG); + FfxFloat16 mn4B=min(ffxMin3Half(bB,dB,fB),hB); + FfxFloat16 mx4R=max(ffxMax3Half(bR,dR,fR),hR); + FfxFloat16 mx4G=max(ffxMax3Half(bG,dG,fG),hG); + FfxFloat16 mx4B=max(ffxMax3Half(bB,dB,fB),hB); + // Immediate constants for peak range. + FfxFloat16x2 peakC=FfxFloat16x2(1.0,-1.0*4.0); + // Limiters, these need to be high precision RCPs. + FfxFloat16 hitMinR=mn4R*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mx4R); + FfxFloat16 hitMinG=mn4G*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mx4G); + FfxFloat16 hitMinB=mn4B*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mx4B); + FfxFloat16 hitMaxR=(peakC.x-mx4R)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mn4R+peakC.y); + FfxFloat16 hitMaxG=(peakC.x-mx4G)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mn4G+peakC.y); + FfxFloat16 hitMaxB=(peakC.x-mx4B)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mn4B+peakC.y); + FfxFloat16 lobeR=max(-hitMinR,hitMaxR); + FfxFloat16 lobeG=max(-hitMinG,hitMaxG); + FfxFloat16 lobeB=max(-hitMinB,hitMaxB); + FfxFloat16 lobe=max(FFX_BROADCAST_FLOAT16(-FSR_RCAS_LIMIT),min(ffxMax3Half(lobeR,lobeG,lobeB),FFX_BROADCAST_FLOAT16(0.0)))*FFX_UINT32_TO_FLOAT16X2(con.y).x; + // Apply noise removal. + #ifdef FSR_RCAS_DENOISE + lobe*=nz; + #endif + // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes. + FfxFloat16 rcpL=ffxApproximateReciprocalMediumHalf(FFX_BROADCAST_FLOAT16(4.0)*lobe+FFX_BROADCAST_FLOAT16(1.0)); + pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL; + pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL; + pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL; +} +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// PACKED 16-BIT VERSION +//============================================================================================================================== +#if defined(FFX_GPU)&& FFX_HALF == 1 && defined(FSR_RCAS_HX2) + // Input callback prototypes that need to be implemented by the calling shader + FfxFloat16x4 FsrRcasLoadHx2(FfxInt16x2 p); + void FsrRcasInputHx2(inout FfxFloat16x2 r,inout FfxFloat16x2 g,inout FfxFloat16x2 b); +//------------------------------------------------------------------------------------------------------------------------------ + // Can be used to convert from packed Structures of Arrays to Arrays of Structures for store. + void FsrRcasDepackHx2(out FfxFloat16x4 pix0,out FfxFloat16x4 pix1,FfxFloat16x2 pixR,FfxFloat16x2 pixG,FfxFloat16x2 pixB){ + #ifdef FFX_HLSL + // Invoke a slower path for DX only, since it won't allow uninitialized values. + pix0.a=pix1.a=0.0; + #endif + pix0.rgb=FfxFloat16x3(pixR.x,pixG.x,pixB.x); + pix1.rgb=FfxFloat16x3(pixR.y,pixG.y,pixB.y);} +//------------------------------------------------------------------------------------------------------------------------------ + void FsrRcasHx2( + // Output values are for 2 8x8 tiles in a 16x8 region. + // pix.x = left 8x8 tile + // pix.y = right 8x8 tile + // This enables later processing to easily be packed as well. + out FfxFloat16x2 pixR, + out FfxFloat16x2 pixG, + out FfxFloat16x2 pixB, + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + out FfxFloat16x2 pixA, + #endif + FfxUInt32x2 ip, // Integer pixel position in output. + FfxUInt32x4 con){ // Constant generated by RcasSetup(). + // No scaling algorithm uses minimal 3x3 pixel neighborhood. + FfxInt16x2 sp0=FfxInt16x2(ip); + FfxFloat16x3 b0=FsrRcasLoadHx2(sp0+FfxInt16x2( 0,-1)).rgb; + FfxFloat16x3 d0=FsrRcasLoadHx2(sp0+FfxInt16x2(-1, 0)).rgb; + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat16x4 ee0=FsrRcasLoadHx2(sp0); + FfxFloat16x3 e0=ee0.rgb;pixA.r=ee0.a; + #else + FfxFloat16x3 e0=FsrRcasLoadHx2(sp0).rgb; + #endif + FfxFloat16x3 f0=FsrRcasLoadHx2(sp0+FfxInt16x2( 1, 0)).rgb; + FfxFloat16x3 h0=FsrRcasLoadHx2(sp0+FfxInt16x2( 0, 1)).rgb; + FfxInt16x2 sp1=sp0+FfxInt16x2(8,0); + FfxFloat16x3 b1=FsrRcasLoadHx2(sp1+FfxInt16x2( 0,-1)).rgb; + FfxFloat16x3 d1=FsrRcasLoadHx2(sp1+FfxInt16x2(-1, 0)).rgb; + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat16x4 ee1=FsrRcasLoadHx2(sp1); + FfxFloat16x3 e1=ee1.rgb;pixA.g=ee1.a; + #else + FfxFloat16x3 e1=FsrRcasLoadHx2(sp1).rgb; + #endif + FfxFloat16x3 f1=FsrRcasLoadHx2(sp1+FfxInt16x2( 1, 0)).rgb; + FfxFloat16x3 h1=FsrRcasLoadHx2(sp1+FfxInt16x2( 0, 1)).rgb; + // Arrays of Structures to Structures of Arrays conversion. + FfxFloat16x2 bR=FfxFloat16x2(b0.r,b1.r); + FfxFloat16x2 bG=FfxFloat16x2(b0.g,b1.g); + FfxFloat16x2 bB=FfxFloat16x2(b0.b,b1.b); + FfxFloat16x2 dR=FfxFloat16x2(d0.r,d1.r); + FfxFloat16x2 dG=FfxFloat16x2(d0.g,d1.g); + FfxFloat16x2 dB=FfxFloat16x2(d0.b,d1.b); + FfxFloat16x2 eR=FfxFloat16x2(e0.r,e1.r); + FfxFloat16x2 eG=FfxFloat16x2(e0.g,e1.g); + FfxFloat16x2 eB=FfxFloat16x2(e0.b,e1.b); + FfxFloat16x2 fR=FfxFloat16x2(f0.r,f1.r); + FfxFloat16x2 fG=FfxFloat16x2(f0.g,f1.g); + FfxFloat16x2 fB=FfxFloat16x2(f0.b,f1.b); + FfxFloat16x2 hR=FfxFloat16x2(h0.r,h1.r); + FfxFloat16x2 hG=FfxFloat16x2(h0.g,h1.g); + FfxFloat16x2 hB=FfxFloat16x2(h0.b,h1.b); + // Run optional input transform. + FsrRcasInputHx2(bR,bG,bB); + FsrRcasInputHx2(dR,dG,dB); + FsrRcasInputHx2(eR,eG,eB); + FsrRcasInputHx2(fR,fG,fB); + FsrRcasInputHx2(hR,hG,hB); + // Luma times 2. + FfxFloat16x2 bL=bB*FFX_BROADCAST_FLOAT16X2(0.5)+(bR*FFX_BROADCAST_FLOAT16X2(0.5)+bG); + FfxFloat16x2 dL=dB*FFX_BROADCAST_FLOAT16X2(0.5)+(dR*FFX_BROADCAST_FLOAT16X2(0.5)+dG); + FfxFloat16x2 eL=eB*FFX_BROADCAST_FLOAT16X2(0.5)+(eR*FFX_BROADCAST_FLOAT16X2(0.5)+eG); + FfxFloat16x2 fL=fB*FFX_BROADCAST_FLOAT16X2(0.5)+(fR*FFX_BROADCAST_FLOAT16X2(0.5)+fG); + FfxFloat16x2 hL=hB*FFX_BROADCAST_FLOAT16X2(0.5)+(hR*FFX_BROADCAST_FLOAT16X2(0.5)+hG); + // Noise detection. + FfxFloat16x2 nz=FFX_BROADCAST_FLOAT16X2(0.25)*bL+FFX_BROADCAST_FLOAT16X2(0.25)*dL+FFX_BROADCAST_FLOAT16X2(0.25)*fL+FFX_BROADCAST_FLOAT16X2(0.25)*hL-eL; + nz=ffxSaturate(abs(nz)*ffxApproximateReciprocalMediumHalf(ffxMax3Half(ffxMax3Half(bL,dL,eL),fL,hL)-ffxMin3Half(ffxMin3Half(bL,dL,eL),fL,hL))); + nz=FFX_BROADCAST_FLOAT16X2(-0.5)*nz+FFX_BROADCAST_FLOAT16X2(1.0); + // Min and max of ring. + FfxFloat16x2 mn4R=min(ffxMin3Half(bR,dR,fR),hR); + FfxFloat16x2 mn4G=min(ffxMin3Half(bG,dG,fG),hG); + FfxFloat16x2 mn4B=min(ffxMin3Half(bB,dB,fB),hB); + FfxFloat16x2 mx4R=max(ffxMax3Half(bR,dR,fR),hR); + FfxFloat16x2 mx4G=max(ffxMax3Half(bG,dG,fG),hG); + FfxFloat16x2 mx4B=max(ffxMax3Half(bB,dB,fB),hB); + // Immediate constants for peak range. + FfxFloat16x2 peakC=FfxFloat16x2(1.0,-1.0*4.0); + // Limiters, these need to be high precision RCPs. + FfxFloat16x2 hitMinR=mn4R*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mx4R); + FfxFloat16x2 hitMinG=mn4G*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mx4G); + FfxFloat16x2 hitMinB=mn4B*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mx4B); + FfxFloat16x2 hitMaxR=(peakC.x-mx4R)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mn4R+peakC.y); + FfxFloat16x2 hitMaxG=(peakC.x-mx4G)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mn4G+peakC.y); + FfxFloat16x2 hitMaxB=(peakC.x-mx4B)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mn4B+peakC.y); + FfxFloat16x2 lobeR=max(-hitMinR,hitMaxR); + FfxFloat16x2 lobeG=max(-hitMinG,hitMaxG); + FfxFloat16x2 lobeB=max(-hitMinB,hitMaxB); + FfxFloat16x2 lobe=max(FFX_BROADCAST_FLOAT16X2(-FSR_RCAS_LIMIT),min(ffxMax3Half(lobeR,lobeG,lobeB),FFX_BROADCAST_FLOAT16X2(0.0)))*FFX_BROADCAST_FLOAT16X2(FFX_UINT32_TO_FLOAT16X2(con.y).x); + // Apply noise removal. + #ifdef FSR_RCAS_DENOISE + lobe*=nz; + #endif + // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes. + FfxFloat16x2 rcpL=ffxApproximateReciprocalMediumHalf(FFX_BROADCAST_FLOAT16X2(4.0)*lobe+FFX_BROADCAST_FLOAT16X2(1.0)); + pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL; + pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL; + pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL;} +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [LFGA] LINEAR FILM GRAIN APPLICATOR +// +//------------------------------------------------------------------------------------------------------------------------------ +// Adding output-resolution film grain after scaling is a good way to mask both rendering and scaling artifacts. +// Suggest using tiled blue noise as film grain input, with peak noise frequency set for a specific look and feel. +// The 'Lfga*()' functions provide a convenient way to introduce grain. +// These functions limit grain based on distance to signal limits. +// This is done so that the grain is temporally energy preserving, and thus won't modify image tonality. +// Grain application should be done in a linear colorspace. +// The grain should be temporally changing, but have a temporal sum per pixel that adds to zero (non-biased). +//------------------------------------------------------------------------------------------------------------------------------ +// Usage, +// FsrLfga*( +// color, // In/out linear colorspace color {0 to 1} ranged. +// grain, // Per pixel grain texture value {-0.5 to 0.5} ranged, input is 3-channel to support colored grain. +// amount); // Amount of grain (0 to 1} ranged. +//------------------------------------------------------------------------------------------------------------------------------ +// Example if grain texture is monochrome: 'FsrLfgaF(color,ffxBroadcast3(grain),amount)' +//============================================================================================================================== +#if defined(FFX_GPU) + // Maximum grain is the minimum distance to the signal limit. + void FsrLfgaF(inout FfxFloat32x3 c, FfxFloat32x3 t, FfxFloat32 a) + { + c += (t * ffxBroadcast3(a)) * ffxMin(ffxBroadcast3(1.0) - c, c); + } +#endif +//============================================================================================================================== +#if defined(FFX_GPU)&& FFX_HALF == 1 + // Half precision version (slower). + void FsrLfgaH(inout FfxFloat16x3 c, FfxFloat16x3 t, FfxFloat16 a) + { + c += (t * FFX_BROADCAST_FLOAT16X3(a)) * min(FFX_BROADCAST_FLOAT16X3(1.0) - c, c); + } + //------------------------------------------------------------------------------------------------------------------------------ + // Packed half precision version (faster). + void FsrLfgaHx2(inout FfxFloat16x2 cR,inout FfxFloat16x2 cG,inout FfxFloat16x2 cB,FfxFloat16x2 tR,FfxFloat16x2 tG,FfxFloat16x2 tB,FfxFloat16 a){ + cR+=(tR*FFX_BROADCAST_FLOAT16X2(a))*min(FFX_BROADCAST_FLOAT16X2(1.0)-cR,cR);cG+=(tG*FFX_BROADCAST_FLOAT16X2(a))*min(FFX_BROADCAST_FLOAT16X2(1.0)-cG,cG);cB+=(tB*FFX_BROADCAST_FLOAT16X2(a))*min(FFX_BROADCAST_FLOAT16X2(1.0)-cB,cB);} +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [SRTM] SIMPLE REVERSIBLE TONE-MAPPER +// +//------------------------------------------------------------------------------------------------------------------------------ +// This provides a way to take linear HDR color {0 to FP16_MAX} and convert it into a temporary {0 to 1} ranged post-tonemapped linear. +// The tonemapper preserves RGB ratio, which helps maintain HDR color bleed during filtering. +//------------------------------------------------------------------------------------------------------------------------------ +// Reversible tonemapper usage, +// FsrSrtm*(color); // {0 to FP16_MAX} converted to {0 to 1}. +// FsrSrtmInv*(color); // {0 to 1} converted into {0 to 32768, output peak safe for FP16}. +//============================================================================================================================== +#if defined(FFX_GPU) + void FsrSrtmF(inout FfxFloat32x3 c) + { + c *= ffxBroadcast3(ffxReciprocal(ffxMax3(c.r, c.g, c.b) + FfxFloat32(1.0))); + } + // The extra max solves the c=1.0 case (which is a /0). + void FsrSrtmInvF(inout FfxFloat32x3 c){c*=ffxBroadcast3(ffxReciprocal(max(FfxFloat32(1.0/32768.0),FfxFloat32(1.0)-ffxMax3(c.r,c.g,c.b))));} +#endif +//============================================================================================================================== +#if defined(FFX_GPU )&& FFX_HALF == 1 + void FsrSrtmH(inout FfxFloat16x3 c) + { + c *= FFX_BROADCAST_FLOAT16X3(ffxReciprocalHalf(ffxMax3Half(c.r, c.g, c.b) + FFX_BROADCAST_FLOAT16(1.0))); + } + void FsrSrtmInvH(inout FfxFloat16x3 c) + { + c *= FFX_BROADCAST_FLOAT16X3(ffxReciprocalHalf(max(FFX_BROADCAST_FLOAT16(1.0 / 32768.0), FFX_BROADCAST_FLOAT16(1.0) - ffxMax3Half(c.r, c.g, c.b)))); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrSrtmHx2(inout FfxFloat16x2 cR, inout FfxFloat16x2 cG, inout FfxFloat16x2 cB) + { + FfxFloat16x2 rcp = ffxReciprocalHalf(ffxMax3Half(cR, cG, cB) + FFX_BROADCAST_FLOAT16X2(1.0)); + cR *= rcp; + cG *= rcp; + cB *= rcp; + } + void FsrSrtmInvHx2(inout FfxFloat16x2 cR,inout FfxFloat16x2 cG,inout FfxFloat16x2 cB) + { + FfxFloat16x2 rcp=ffxReciprocalHalf(max(FFX_BROADCAST_FLOAT16X2(1.0/32768.0),FFX_BROADCAST_FLOAT16X2(1.0)-ffxMax3Half(cR,cG,cB))); + cR*=rcp; + cG*=rcp; + cB*=rcp; + } +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [TEPD] TEMPORAL ENERGY PRESERVING DITHER +// +//------------------------------------------------------------------------------------------------------------------------------ +// Temporally energy preserving dithered {0 to 1} linear to gamma 2.0 conversion. +// Gamma 2.0 is used so that the conversion back to linear is just to square the color. +// The conversion comes in 8-bit and 10-bit modes, designed for output to 8-bit UNORM or 10:10:10:2 respectively. +// Given good non-biased temporal blue noise as dither input, +// the output dither will temporally conserve energy. +// This is done by choosing the linear nearest step point instead of perceptual nearest. +// See code below for details. +//------------------------------------------------------------------------------------------------------------------------------ +// DX SPEC RULES FOR FLOAT->UNORM 8-BIT CONVERSION +// =============================================== +// - Output is 'FfxUInt32(floor(saturate(n)*255.0+0.5))'. +// - Thus rounding is to nearest. +// - NaN gets converted to zero. +// - INF is clamped to {0.0 to 1.0}. +//============================================================================================================================== +#if defined(FFX_GPU) + // Hand tuned integer position to dither value, with more values than simple checkerboard. + // Only 32-bit has enough precision for this compddation. + // Output is {0 to <1}. + FfxFloat32 FsrTepdDitF(FfxUInt32x2 p, FfxUInt32 f) + { + FfxFloat32 x = FfxFloat32(p.x + f); + FfxFloat32 y = FfxFloat32(p.y); + // The 1.61803 golden ratio. + FfxFloat32 a = FfxFloat32((1.0 + ffxSqrt(5.0f)) / 2.0); + // Number designed to provide a good visual pattern. + FfxFloat32 b = FfxFloat32(1.0 / 3.69); + x = x * a + (y * b); + return ffxFract(x); + } + //------------------------------------------------------------------------------------------------------------------------------ + // This version is 8-bit gamma 2.0. + // The 'c' input is {0 to 1}. + // Output is {0 to 1} ready for image store. + void FsrTepdC8F(inout FfxFloat32x3 c, FfxFloat32 dit) + { + FfxFloat32x3 n = ffxSqrt(c); + n = floor(n * ffxBroadcast3(255.0)) * ffxBroadcast3(1.0 / 255.0); + FfxFloat32x3 a = n * n; + FfxFloat32x3 b = n + ffxBroadcast3(1.0 / 255.0); + b = b * b; + // Ratio of 'a' to 'b' required to produce 'c'. + // ffxApproximateReciprocal() won't work here (at least for very high dynamic ranges). + // ffxApproximateReciprocalMedium() is an IADD,FMA,MUL. + FfxFloat32x3 r = (c - b) * ffxApproximateReciprocalMedium(a - b); + // Use the ratio as a cutoff to choose 'a' or 'b'. + // ffxIsGreaterThanZero() is a MUL. + c = ffxSaturate(n + ffxIsGreaterThanZero(ffxBroadcast3(dit) - r) * ffxBroadcast3(1.0 / 255.0)); + } + //------------------------------------------------------------------------------------------------------------------------------ + // This version is 10-bit gamma 2.0. + // The 'c' input is {0 to 1}. + // Output is {0 to 1} ready for image store. + void FsrTepdC10F(inout FfxFloat32x3 c, FfxFloat32 dit) + { + FfxFloat32x3 n = ffxSqrt(c); + n = floor(n * ffxBroadcast3(1023.0)) * ffxBroadcast3(1.0 / 1023.0); + FfxFloat32x3 a = n * n; + FfxFloat32x3 b = n + ffxBroadcast3(1.0 / 1023.0); + b = b * b; + FfxFloat32x3 r = (c - b) * ffxApproximateReciprocalMedium(a - b); + c = ffxSaturate(n + ffxIsGreaterThanZero(ffxBroadcast3(dit) - r) * ffxBroadcast3(1.0 / 1023.0)); + } +#endif +//============================================================================================================================== +#if defined(FFX_GPU)&& FFX_HALF == 1 + FfxFloat16 FsrTepdDitH(FfxUInt32x2 p, FfxUInt32 f) + { + FfxFloat32 x = FfxFloat32(p.x + f); + FfxFloat32 y = FfxFloat32(p.y); + FfxFloat32 a = FfxFloat32((1.0 + ffxSqrt(5.0f)) / 2.0); + FfxFloat32 b = FfxFloat32(1.0 / 3.69); + x = x * a + (y * b); + return FfxFloat16(ffxFract(x)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC8H(inout FfxFloat16x3 c, FfxFloat16 dit) + { + FfxFloat16x3 n = sqrt(c); + n = floor(n * FFX_BROADCAST_FLOAT16X3(255.0)) * FFX_BROADCAST_FLOAT16X3(1.0 / 255.0); + FfxFloat16x3 a = n * n; + FfxFloat16x3 b = n + FFX_BROADCAST_FLOAT16X3(1.0 / 255.0); + b = b * b; + FfxFloat16x3 r = (c - b) * ffxApproximateReciprocalMediumHalf(a - b); + c = ffxSaturate(n + ffxIsGreaterThanZeroHalf(FFX_BROADCAST_FLOAT16X3(dit) - r) * FFX_BROADCAST_FLOAT16X3(1.0 / 255.0)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC10H(inout FfxFloat16x3 c, FfxFloat16 dit) + { + FfxFloat16x3 n = sqrt(c); + n = floor(n * FFX_BROADCAST_FLOAT16X3(1023.0)) * FFX_BROADCAST_FLOAT16X3(1.0 / 1023.0); + FfxFloat16x3 a = n * n; + FfxFloat16x3 b = n + FFX_BROADCAST_FLOAT16X3(1.0 / 1023.0); + b = b * b; + FfxFloat16x3 r = (c - b) * ffxApproximateReciprocalMediumHalf(a - b); + c = ffxSaturate(n + ffxIsGreaterThanZeroHalf(FFX_BROADCAST_FLOAT16X3(dit) - r) * FFX_BROADCAST_FLOAT16X3(1.0 / 1023.0)); + } + //============================================================================================================================== + // This computes dither for positions 'p' and 'p+{8,0}'. + FfxFloat16x2 FsrTepdDitHx2(FfxUInt32x2 p, FfxUInt32 f) + { + FfxFloat32x2 x; + x.x = FfxFloat32(p.x + f); + x.y = x.x + FfxFloat32(8.0); + FfxFloat32 y = FfxFloat32(p.y); + FfxFloat32 a = FfxFloat32((1.0 + ffxSqrt(5.0f)) / 2.0); + FfxFloat32 b = FfxFloat32(1.0 / 3.69); + x = x * ffxBroadcast2(a) + ffxBroadcast2(y * b); + return FfxFloat16x2(ffxFract(x)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC8Hx2(inout FfxFloat16x2 cR, inout FfxFloat16x2 cG, inout FfxFloat16x2 cB, FfxFloat16x2 dit) + { + FfxFloat16x2 nR = sqrt(cR); + FfxFloat16x2 nG = sqrt(cG); + FfxFloat16x2 nB = sqrt(cB); + nR = floor(nR * FFX_BROADCAST_FLOAT16X2(255.0)) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + nG = floor(nG * FFX_BROADCAST_FLOAT16X2(255.0)) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + nB = floor(nB * FFX_BROADCAST_FLOAT16X2(255.0)) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + FfxFloat16x2 aR = nR * nR; + FfxFloat16x2 aG = nG * nG; + FfxFloat16x2 aB = nB * nB; + FfxFloat16x2 bR = nR + FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + bR = bR * bR; + FfxFloat16x2 bG = nG + FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + bG = bG * bG; + FfxFloat16x2 bB = nB + FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + bB = bB * bB; + FfxFloat16x2 rR = (cR - bR) * ffxApproximateReciprocalMediumHalf(aR - bR); + FfxFloat16x2 rG = (cG - bG) * ffxApproximateReciprocalMediumHalf(aG - bG); + FfxFloat16x2 rB = (cB - bB) * ffxApproximateReciprocalMediumHalf(aB - bB); + cR = ffxSaturate(nR + ffxIsGreaterThanZeroHalf(dit - rR) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0)); + cG = ffxSaturate(nG + ffxIsGreaterThanZeroHalf(dit - rG) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0)); + cB = ffxSaturate(nB + ffxIsGreaterThanZeroHalf(dit - rB) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC10Hx2(inout FfxFloat16x2 cR,inout FfxFloat16x2 cG,inout FfxFloat16x2 cB,FfxFloat16x2 dit){ + FfxFloat16x2 nR=sqrt(cR); + FfxFloat16x2 nG=sqrt(cG); + FfxFloat16x2 nB=sqrt(cB); + nR=floor(nR*FFX_BROADCAST_FLOAT16X2(1023.0))*FFX_BROADCAST_FLOAT16X2(1.0/1023.0); + nG=floor(nG*FFX_BROADCAST_FLOAT16X2(1023.0))*FFX_BROADCAST_FLOAT16X2(1.0/1023.0); + nB=floor(nB*FFX_BROADCAST_FLOAT16X2(1023.0))*FFX_BROADCAST_FLOAT16X2(1.0/1023.0); + FfxFloat16x2 aR=nR*nR; + FfxFloat16x2 aG=nG*nG; + FfxFloat16x2 aB=nB*nB; + FfxFloat16x2 bR=nR+FFX_BROADCAST_FLOAT16X2(1.0/1023.0);bR=bR*bR; + FfxFloat16x2 bG=nG+FFX_BROADCAST_FLOAT16X2(1.0/1023.0);bG=bG*bG; + FfxFloat16x2 bB=nB+FFX_BROADCAST_FLOAT16X2(1.0/1023.0);bB=bB*bB; + FfxFloat16x2 rR=(cR-bR)*ffxApproximateReciprocalMediumHalf(aR-bR); + FfxFloat16x2 rG=(cG-bG)*ffxApproximateReciprocalMediumHalf(aG-bG); + FfxFloat16x2 rB=(cB-bB)*ffxApproximateReciprocalMediumHalf(aB-bB); + cR=ffxSaturate(nR+ffxIsGreaterThanZeroHalf(dit-rR)*FFX_BROADCAST_FLOAT16X2(1.0/1023.0)); + cG=ffxSaturate(nG+ffxIsGreaterThanZeroHalf(dit-rG)*FFX_BROADCAST_FLOAT16X2(1.0/1023.0)); + cB = ffxSaturate(nB + ffxIsGreaterThanZeroHalf(dit - rB) * FFX_BROADCAST_FLOAT16X2(1.0 / 1023.0)); +} +#endif diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h new file mode 100644 index 000000000..a8c6daa0e --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h @@ -0,0 +1,172 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void Accumulate(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + // Avoid invalid values when accumulation and upsampled weight is 0 + data.fHistoryWeight *= FfxFloat32(data.fHistoryWeight > FSR3UPSCALER_FP16_MIN); + data.fHistoryWeight = ffxMax(FSR3UPSCALER_EPSILON, data.fHistoryWeight + data.fUpsampledWeight); + +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + //YCoCg -> RGB -> Tonemap -> YCoCg (Use RGB tonemapper to avoid color desaturation) + data.fUpsampledColor = RGBToYCoCg(Tonemap(YCoCgToRGB(data.fUpsampledColor))); + data.fHistoryColor = RGBToYCoCg(Tonemap(YCoCgToRGB(data.fHistoryColor))); +#endif + + const FfxFloat32 fAlpha = ffxSaturate(data.fUpsampledWeight / data.fHistoryWeight); + data.fHistoryColor = ffxLerp(data.fHistoryColor, data.fUpsampledColor, fAlpha); + data.fHistoryColor = YCoCgToRGB(data.fHistoryColor); + +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + data.fHistoryColor = InverseTonemap(data.fHistoryColor); +#endif +} + +void RectifyHistory( + const AccumulationPassCommonParams params, + FFX_PARAMETER_INOUT AccumulationPassData data +) +{ + const FfxFloat32 f4kVelocityFactor = ffxSaturate(params.f4KVelocity / 20.0f); + const FfxFloat32 fDistanceFactor = ffxSaturate(0.75f - params.fFarthestDepthInMeters / 20.0f); + const FfxFloat32 fAccumulationFactor = 1.0f - params.fAccumulation; + const FfxFloat32 fReactiveFactor = ffxPow(params.fReactiveMask, 1.0f / 2.0f); + const FfxFloat32 fShadingChangeFactor = params.fShadingChange; + const FfxFloat32 fBoxScaleT = ffxMax(f4kVelocityFactor, ffxMax(fDistanceFactor, ffxMax(fAccumulationFactor, ffxMax(fReactiveFactor, fShadingChangeFactor)))); + + const FfxFloat32 fBoxScale = ffxLerp(3.0f, 1.0f, fBoxScaleT); + const FfxFloat32x3 fScaledBoxVec = data.clippingBox.boxVec * FfxFloat32x3(1.7f, 1.0f, 1.0f) * fBoxScale; + + const FfxFloat32x3 fClampedScaledBoxVec = ffxMax(fScaledBoxVec, FfxFloat32x3(1.193e-7f, 1.193e-7f, 1.193e-7f)); + const FfxFloat32x3 fTransformedHistoryColor = (data.fHistoryColor - data.clippingBox.boxCenter) / fClampedScaledBoxVec; + + if (length(fTransformedHistoryColor)>1.f) { + const FfxFloat32x3 fClampedHistoryColor = normalize(fTransformedHistoryColor); + const FfxFloat32x3 fFinalClampedHistoryColor = (fClampedHistoryColor * fScaledBoxVec) + data.clippingBox.boxCenter; + + // Scale history color using rectification info, also using accumulation mask to avoid potential invalid color protection + const FfxFloat32 fHistoryContribution = ffxMax(params.fLumaInstabilityFactor, data.fLockContributionThisFrame) * params.fAccumulation * (1 - params.fDisocclusion); + data.fHistoryColor = ffxLerp(fFinalClampedHistoryColor, data.fHistoryColor, ffxSaturate(fHistoryContribution)); + } +} + +void UpdateLockStatus(AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + data.fLock *= FfxFloat32(params.bIsNewSample == false); + + const FfxFloat32 fLifetimeDecreaseFactor = ffxMax(ffxSaturate(params.fShadingChange), ffxMax(params.fReactiveMask, params.fDisocclusion)); + data.fLock = ffxMax(0.0f, data.fLock - fLifetimeDecreaseFactor * fLockMax); + + // Compute this frame lock contribution + data.fLockContributionThisFrame = ffxSaturate(ffxSaturate(data.fLock - fLockThreshold) * (fLockMax - fLockThreshold)); + + const FfxFloat32 fNewLockIntensity = LoadRwNewLocks(params.iPxHrPos) * (1.0f - ffxMax(params.fShadingChange * 0, params.fReactiveMask)); + data.fLock = ffxMax(0.0f, ffxMin(data.fLock + fNewLockIntensity, fLockMax)); + + // Preparing for next frame + const FfxFloat32 fLifetimeDecrease = (0.1f / JitterSequenceLength()) * (1.0f - fLifetimeDecreaseFactor); + data.fLock = ffxMax(0.0f, data.fLock - fLifetimeDecrease); + + // we expect similar motion for next frame + // kill lock if that location is outside screen, avoid locks to be clamped to screen borders + const FfxFloat32x2 fEstimatedUvNextFrame = params.fHrUv - params.fMotionVector; + data.fLock *= FfxFloat32(IsUvInside(fEstimatedUvNextFrame) == true); +} + +void ComputeBaseAccumulationWeight(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + FfxFloat32 fBaseAccumulation = params.fAccumulation; + + fBaseAccumulation = ffxMin(fBaseAccumulation, ffxLerp(fBaseAccumulation, 0.15f, ffxSaturate(ffxMax(0.0f, (params.f4KVelocity * VelocityFactor()) / 0.5f)))); + + data.fHistoryWeight = fBaseAccumulation; +} + +void InitPassData(FfxInt32x2 iPxHrPos, FFX_PARAMETER_INOUT AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + // Init constant params + params.iPxHrPos = iPxHrPos; + const FfxFloat32x2 fHrUv = (iPxHrPos + 0.5f) / UpscaleSize(); + params.fHrUv = fHrUv; + params.fLrUvJittered = fHrUv + Jitter() / RenderSize(); + params.fLrUv_HwSampler = ClampUv(params.fLrUvJittered, RenderSize(), MaxRenderSize()); + + params.fMotionVector = GetMotionVector(iPxHrPos, fHrUv); + params.f4KVelocity = Get4KVelocity(params.fMotionVector); + + ComputeReprojectedUVs(params); + + const FfxFloat32x2 fLumaInstabilityUv_HW = ClampUv(fHrUv, RenderSize(), MaxRenderSize()); + params.fLumaInstabilityFactor = SampleLumaInstability(fLumaInstabilityUv_HW); + + const FfxFloat32x2 fFarthestDepthUv = ClampUv(params.fLrUvJittered, RenderSize() / 2, GetFarthestDepthMip1ResourceDimensions()); + params.fFarthestDepthInMeters = SampleFarthestDepthMip1(fFarthestDepthUv); + params.bIsNewSample = (params.bIsExistingSample == false || 0 == FrameIndex()); + + const FfxFloat32x4 fDilatedReactiveMasks = SampleDilatedReactiveMasks(params.fLrUv_HwSampler); + params.fReactiveMask = ffxSaturate(fDilatedReactiveMasks[REACTIVE]); + params.fDisocclusion = ffxSaturate(fDilatedReactiveMasks[DISOCCLUSION]); + params.fShadingChange = ffxSaturate(fDilatedReactiveMasks[SHADING_CHANGE]); + params.fAccumulation = ffxSaturate(fDilatedReactiveMasks[ACCUMULAION]); + params.fAccumulation *= FfxFloat32(round(params.fAccumulation * 100.0f) > 1.0f); + + // Init variable data + data.fUpsampledColor = FfxFloat32x3(0.0f, 0.0f, 0.0f); + data.fHistoryColor = FfxFloat32x3(0.0f, 0.0f, 0.0f); + data.fHistoryWeight = 1.0f; + data.fUpsampledWeight = 0.0f; + data.fLock = 0.0f; + data.fLockContributionThisFrame = 0.0f; +} + +void Accumulate(FfxInt32x2 iPxHrPos) +{ + AccumulationPassCommonParams params; + AccumulationPassData data; + InitPassData(iPxHrPos, params, data); + + if (params.bIsExistingSample && !params.bIsNewSample) { + ReprojectHistoryColor(params, data); + } + + UpdateLockStatus(params, data); + + ComputeBaseAccumulationWeight(params, data); + + ComputeUpsampledColorAndWeight(params, data); + + RectifyHistory(params, data); + + Accumulate(params, data); + + data.fHistoryColor /= Exposure(); + + data.fHistoryColor = ffxMax(data.fHistoryColor, FfxFloat32x3(0.0f, 0.0f, 0.0f)); + + StoreInternalColorAndWeight(iPxHrPos, FfxFloat32x4(data.fHistoryColor, data.fLock)); + + // Output final color when RCAS is disabled +#if FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING == 0 + StoreUpscaledOutput(iPxHrPos, data.fHistoryColor); +#endif + StoreNewLocks(iPxHrPos, 0); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h new file mode 100644 index 000000000..d0cbf9d32 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h @@ -0,0 +1,903 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "ffx_fsr3upscaler_resources.h" + +#if defined(FFX_GPU) +#include "ffx_core.h" +#endif // #if defined(FFX_GPU) + +#if defined(FFX_GPU) +#ifndef FFX_PREFER_WAVE64 +#define FFX_PREFER_WAVE64 +#endif // FFX_PREFER_WAVE64 + +#if defined(FSR3UPSCALER_BIND_CB_FSR3UPSCALER) + layout (set = 0, binding = FSR3UPSCALER_BIND_CB_FSR3UPSCALER, std140) uniform cbFSR3UPSCALER_t + { + FfxInt32x2 iRenderSize; + FfxInt32x2 iPreviousFrameRenderSize; + + FfxInt32x2 iUpscaleSize; + FfxInt32x2 iPreviousFrameUpscaleSize; + + FfxInt32x2 iMaxRenderSize; + FfxInt32x2 iMaxUpscaleSize; + + FfxFloat32x4 fDeviceToViewDepth; + + FfxFloat32x2 fJitter; + FfxFloat32x2 fPreviousFrameJitter; + + FfxFloat32x2 fMotionVectorScale; + FfxFloat32x2 fDownscaleFactor; + + FfxFloat32x2 fMotionVectorJitterCancellation; + FfxFloat32 fTanHalfFOV; + FfxFloat32 fJitterSequenceLength; + + FfxFloat32 fDeltaTime; + FfxFloat32 fDeltaPreExposure; + FfxFloat32 fViewSpaceToMetersFactor; + FfxFloat32 fFrameIndex; + + FfxFloat32 fVelocityFactor; + FfxFloat32 fReactivenessScale; + FfxFloat32 fShadingChangeScale; + FfxFloat32 fAccumulationAddedPerFrame; + FfxFloat32 fMinDisocclusionAccumulation; + } cbFSR3Upscaler; + + +FfxInt32x2 RenderSize() +{ + return cbFSR3Upscaler.iRenderSize; +} + +FfxInt32x2 PreviousFrameRenderSize() +{ + return cbFSR3Upscaler.iPreviousFrameRenderSize; +} + +FfxInt32x2 MaxRenderSize() +{ + return cbFSR3Upscaler.iMaxRenderSize; +} + +FfxInt32x2 UpscaleSize() +{ + return cbFSR3Upscaler.iUpscaleSize; +} + +FfxInt32x2 PreviousFrameUpscaleSize() +{ + return cbFSR3Upscaler.iPreviousFrameUpscaleSize; +} + +FfxInt32x2 MaxUpscaleSize() +{ + return cbFSR3Upscaler.iMaxUpscaleSize; +} + +FfxFloat32x2 Jitter() +{ + return cbFSR3Upscaler.fJitter; +} + +FfxFloat32x2 PreviousFrameJitter() +{ + return cbFSR3Upscaler.fPreviousFrameJitter; +} + +FfxFloat32x4 DeviceToViewSpaceTransformFactors() +{ + return cbFSR3Upscaler.fDeviceToViewDepth; +} + +FfxFloat32x2 MotionVectorScale() +{ + return cbFSR3Upscaler.fMotionVectorScale; +} + +FfxFloat32x2 DownscaleFactor() +{ + return cbFSR3Upscaler.fDownscaleFactor; +} + +FfxFloat32x2 MotionVectorJitterCancellation() +{ + return cbFSR3Upscaler.fMotionVectorJitterCancellation; +} + +FfxFloat32 TanHalfFoV() +{ + return cbFSR3Upscaler.fTanHalfFOV; +} + +FfxFloat32 JitterSequenceLength() +{ + return cbFSR3Upscaler.fJitterSequenceLength; +} + +FfxFloat32 DeltaTime() +{ + return cbFSR3Upscaler.fDeltaTime; +} + +FfxFloat32 DeltaPreExposure() +{ + return cbFSR3Upscaler.fDeltaPreExposure; +} + +FfxFloat32 ViewSpaceToMetersFactor() +{ + return cbFSR3Upscaler.fViewSpaceToMetersFactor; +} + +FfxFloat32 FrameIndex() +{ + return cbFSR3Upscaler.fFrameIndex; +} + +FfxFloat32 VelocityFactor() +{ + return cbFSR3Upscaler.fVelocityFactor; +} + +FfxFloat32 AccumulationAddedPerFrame() +{ + return cbFSR3Upscaler.fAccumulationAddedPerFrame; +} + +FfxFloat32 MinDisocclusionAccumulation() +{ + return cbFSR3Upscaler.fMinDisocclusionAccumulation; +} + +#endif // #if defined(FSR3UPSCALER_BIND_CB_FSR3UPSCALER) + + +#if defined(FSR3UPSCALER_BIND_CB_AUTOREACTIVE) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_AUTOREACTIVE, std140) uniform cbGenerateReactive_t +{ + FfxFloat32 fTcThreshold; // 0.1 is a good starting value, lower will result in more TC pixels + FfxFloat32 fTcScale; + FfxFloat32 fReactiveScale; + FfxFloat32 fReactiveMax; +} cbGenerateReactive; + +FfxFloat32 TcThreshold() +{ + return cbGenerateReactive.fTcThreshold; +} + +FfxFloat32 TcScale() +{ + return cbGenerateReactive.fTcScale; +} + +FfxFloat32 ReactiveScale() +{ + return cbGenerateReactive.fReactiveScale; +} + +FfxFloat32 ReactiveMax() +{ + return cbGenerateReactive.fReactiveMax; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_AUTOREACTIVE) + +#if defined(FSR3UPSCALER_BIND_CB_RCAS) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_RCAS, std140) uniform cbRCAS_t +{ + FfxUInt32x4 rcasConfig; +} cbRCAS; + +FfxUInt32x4 RCASConfig() +{ + return cbRCAS.rcasConfig; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_RCAS) + + +#if defined(FSR3UPSCALER_BIND_CB_REACTIVE) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_REACTIVE, std140) uniform cbGenerateReactive_t +{ + FfxFloat32 gen_reactive_scale; + FfxFloat32 gen_reactive_threshold; + FfxFloat32 gen_reactive_binaryValue; + FfxUInt32 gen_reactive_flags; +} cbGenerateReactive; + +FfxFloat32 GenReactiveScale() +{ + return cbGenerateReactive.gen_reactive_scale; +} + +FfxFloat32 GenReactiveThreshold() +{ + return cbGenerateReactive.gen_reactive_threshold; +} + +FfxFloat32 GenReactiveBinaryValue() +{ + return cbGenerateReactive.gen_reactive_binaryValue; +} + +FfxUInt32 GenReactiveFlags() +{ + return cbGenerateReactive.gen_reactive_flags; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_REACTIVE) + + +#if defined(FSR3UPSCALER_BIND_CB_SPD) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_SPD, std140) uniform cbSPD_t +{ + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + FfxUInt32x2 renderSize; +} cbSPD; + +FfxUInt32 MipCount() +{ + return cbSPD.mips; +} + +FfxUInt32 NumWorkGroups() +{ + return cbSPD.numWorkGroups; +} + +FfxUInt32x2 WorkGroupOffset() +{ + return cbSPD.workGroupOffset; +} + +FfxUInt32x2 SPD_RenderSize() +{ + return cbSPD.renderSize; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_SPD) + +layout (set = 0, binding = 1000) uniform sampler s_PointClamp; +layout (set = 0, binding = 1001) uniform sampler s_LinearClamp; + +#if defined(FSR3UPSCALER_BIND_SRV_SPD_MIPS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_SPD_MIPS) uniform texture2D r_spd_mips; + +FfxInt32x2 GetSPDMipDimensions(FfxUInt32 uMipLevel) +{ + return textureSize(r_spd_mips, int(uMipLevel)).xy; +} + +FfxFloat32x2 SampleSPDMipLevel(FfxFloat32x2 fUV, FfxUInt32 mipLevel) +{ + return textureLod(sampler2D(r_spd_mips, s_LinearClamp), fUV, float(mipLevel)).rg; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_DEPTH) uniform texture2D r_input_depth; + +FfxFloat32 LoadInputDepth(FfxInt32x2 iPxPos) +{ + return texelFetch(r_input_depth, iPxPos, 0).r; +} + +FfxFloat32 SampleInputDepth(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_input_depth, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_REACTIVE_MASK) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_REACTIVE_MASK) uniform texture2D r_reactive_mask; + +FfxFloat32 LoadReactiveMask(FfxInt32x2 iPxPos) +{ + return texelFetch(r_reactive_mask, FfxInt32x2(iPxPos), 0).r * cbFSR3Upscaler.fReactivenessScale; +} + +FfxInt32x2 GetReactiveMaskResourceDimensions() +{ + return textureSize(r_reactive_mask, 0).xy; +} + +FfxFloat32 SampleReactiveMask(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_reactive_mask, s_LinearClamp), fUV, 0.0).x * cbFSR3Upscaler.fReactivenessScale; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK) uniform texture2D r_transparency_and_composition_mask; + +FfxFloat32 LoadTransparencyAndCompositionMask(FfxUInt32x2 iPxPos) +{ + return texelFetch(r_transparency_and_composition_mask, FfxInt32x2(iPxPos), 0).r; +} + +FfxInt32x2 GetTransparencyAndCompositionMaskResourceDimensions() +{ + return textureSize(r_transparency_and_composition_mask, 0).xy; +} + +FfxFloat32 SampleTransparencyAndCompositionMask(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_transparency_and_composition_mask, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_COLOR) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_COLOR) uniform texture2D r_input_color_jittered; + +FfxFloat32x3 LoadInputColor(FfxInt32x2 iPxPos) +{ + return texelFetch(r_input_color_jittered, iPxPos, 0).rgb; +} + +FfxFloat32x3 SampleInputColor(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_input_color_jittered, s_LinearClamp), fUV, 0.0).rgb; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS) uniform texture2D r_input_motion_vectors; + +FfxFloat32x2 LoadInputMotionVector(FfxInt32x2 iPxDilatedMotionVectorPos) +{ + FfxFloat32x2 fSrcMotionVector = texelFetch(r_input_motion_vectors, iPxDilatedMotionVectorPos, 0).xy; + + FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale(); + +#if FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS + fUvMotionVector -= MotionVectorJitterCancellation(); +#endif + + return fUvMotionVector; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INTERNAL_UPSCALED) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INTERNAL_UPSCALED) uniform texture2D r_internal_upscaled_color; + +FfxFloat32x4 LoadHistory(FfxInt32x2 iPxHistory) +{ + return texelFetch(r_internal_upscaled_color, iPxHistory, 0); +} + +FfxFloat32x4 SampleHistory(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_internal_upscaled_color, s_LinearClamp), fUV, 0.0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_LUMA_HISTORY) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_LUMA_HISTORY, rgba8) uniform image2D rw_luma_history; + +void StoreLumaHistory(FfxInt32x2 iPxPos, FfxFloat32x4 fLumaHistory) +{ + imageStore(rw_luma_history, iPxPos, fLumaHistory); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_LUMA_HISTORY) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_LUMA_HISTORY) uniform texture2D r_luma_history; + +FfxFloat32x4 LoadLumaHistory(FfxInt32x2 iPxPos) +{ + return texelFetch(r_luma_history, iPxPos, 0); +} + +FfxFloat32x4 SampleLumaHistory(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_luma_history, s_LinearClamp), fUV, 0.0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_RCAS_INPUT) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_RCAS_INPUT) uniform texture2D r_rcas_input; + +FfxFloat32x4 LoadRCAS_Input(FfxInt32x2 iPxPos) +{ + return texelFetch(r_rcas_input, iPxPos, 0); +} + +FfxFloat32x3 SampleRCAS_Input(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_rcas_input, s_LinearClamp), fUV, 0.0).rgb; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_INTERNAL_UPSCALED) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_INTERNAL_UPSCALED, rgba16f) writeonly uniform image2D rw_internal_upscaled_color; + +void StoreReprojectedHistory(FfxInt32x2 iPxHistory, FfxFloat32x4 fHistory) +{ + imageStore(rw_internal_upscaled_color, iPxHistory, fHistory); +} + +void StoreInternalColorAndWeight(FfxInt32x2 iPxPos, FfxFloat32x4 fColorAndWeight) +{ + imageStore(rw_internal_upscaled_color, iPxPos, fColorAndWeight); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT /* app controlled format */) writeonly uniform image2D rw_upscaled_output; + +void StoreUpscaledOutput(FfxInt32x2 iPxPos, FfxFloat32x3 fColor) +{ + imageStore(rw_upscaled_output, iPxPos, FfxFloat32x4(fColor, 1.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_ACCUMULATION) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_ACCUMULATION) uniform texture2D r_accumulation; + +FfxFloat32 SampleAccumulation(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_accumulation, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_ACCUMULATION) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_ACCUMULATION, r8) uniform image2D rw_accumulation; + +void StoreAccumulation(FfxInt32x2 iPxPos, FfxFloat32 fAccumulation) +{ + imageStore(rw_accumulation, iPxPos, vec4(fAccumulation, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_SHADING_CHANGE) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_SHADING_CHANGE) uniform texture2D r_shading_change; + +FfxFloat32 LoadShadingChange(FfxInt32x2 iPxPos) +{ + return texelFetch(r_shading_change, iPxPos, 0).x * cbFSR3Upscaler.fShadingChangeScale; +} + +FfxFloat32 SampleShadingChange(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_shading_change, s_LinearClamp), fUV, 0.0).x * cbFSR3Upscaler.fShadingChangeScale; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_SHADING_CHANGE) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SHADING_CHANGE, r8) uniform image2D rw_shading_change; + +void StoreShadingChange(FfxInt32x2 iPxPos, FfxFloat32 fShadingChange) +{ + imageStore(rw_shading_change, iPxPos, vec4(fShadingChange, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH) uniform texture2D r_farthest_depth; + +FfxInt32x2 GetFarthestDepthResourceDimensions() +{ + return textureSize(r_farthest_depth, 0).xy; +} + +FfxFloat32 LoadFarthestDepth(FfxInt32x2 iPxPos) +{ + return texelFetch(r_farthest_depth, iPxPos, 0).x; +} + +FfxFloat32 SampleFarthestDepth(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_farthest_depth, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH, r16f) uniform image2D rw_farthest_depth; + +void StoreFarthestDepth(FfxInt32x2 iPxPos, FfxFloat32 fDepth) +{ + imageStore(rw_farthest_depth, iPxPos, vec4(fDepth, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1) uniform texture2D r_farthest_depth_mip1; + +FfxInt32x2 GetFarthestDepthMip1ResourceDimensions() +{ + return textureSize(r_farthest_depth_mip1, 0).xy; +} + +FfxFloat32 LoadFarthestDepthMip1(FfxInt32x2 iPxPos) +{ + return texelFetch(r_farthest_depth_mip1, iPxPos, 0).x; +} + +FfxFloat32 SampleFarthestDepthMip1(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_farthest_depth_mip1, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH_MIP1) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH_MIP1, r16f) uniform image2D rw_farthest_depth_mip1; + +void StoreFarthestDepthMip1(FfxInt32x2 iPxPos, FfxFloat32 fDepth) +{ + imageStore(rw_farthest_depth_mip1, iPxPos, vec4(fDepth, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_CURRENT_LUMA) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_CURRENT_LUMA) uniform texture2D r_current_luma; + +FfxFloat32 LoadCurrentLuma(FfxInt32x2 iPxPos) +{ + return texelFetch(r_current_luma, iPxPos, 0).r; +} + +FfxFloat32 SampleCurrentLuma(FfxFloat32x2 uv) +{ + return textureLod(sampler2D(r_current_luma, s_LinearClamp), uv, 0.0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_CURRENT_LUMA) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_CURRENT_LUMA, r16f) uniform image2D rw_current_luma; + +void StoreCurrentLuma(FfxInt32x2 iPxPos, FfxFloat32 fLuma) +{ + imageStore(rw_current_luma, iPxPos, vec4(fLuma, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_LUMA_INSTABILITY) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_LUMA_INSTABILITY) uniform texture2D r_luma_instability; + +FfxFloat32 SampleLumaInstability(FfxFloat32x2 uv) +{ + return textureLod(sampler2D(r_luma_instability, s_LinearClamp), uv, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_LUMA_INSTABILITY) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_LUMA_INSTABILITY, r16f) uniform image2D rw_luma_instability; + +void StoreLumaInstability(FfxInt32x2 iPxPos, FfxFloat32 fLumaInstability) +{ + imageStore(rw_luma_instability, iPxPos, vec4(fLumaInstability, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_PREVIOUS_LUMA) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_PREVIOUS_LUMA) uniform texture2D r_previous_luma; + +FfxFloat32 LoadPreviousLuma(FfxInt32x2 iPxPos) +{ + return texelFetch(r_previous_luma, iPxPos, 0).r; +} + +FfxFloat32 SamplePreviousLuma(FfxFloat32x2 uv) +{ + return textureLod(sampler2D(r_previous_luma, s_LinearClamp), uv, 0.0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_NEW_LOCKS) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_NEW_LOCKS) uniform texture2D r_new_locks; + +FfxFloat32 LoadNewLocks(FfxInt32x2 iPxPos) +{ + return texelFetch(r_new_locks, iPxPos, 0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_NEW_LOCKS) +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_NEW_LOCKS, r8) uniform image2D rw_new_locks; + +FfxFloat32 LoadRwNewLocks(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_new_locks, iPxPos).r; +} + +void StoreNewLocks(FfxInt32x2 iPxPos, FfxFloat32 newLock) +{ + imageStore(rw_new_locks, iPxPos, vec4(newLock, 0, 0, 0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH) uniform utexture2D r_reconstructed_previous_nearest_depth; + +FfxFloat32 LoadReconstructedPrevDepth(FfxInt32x2 iPxPos) +{ + return uintBitsToFloat(texelFetch(r_reconstructed_previous_nearest_depth, iPxPos, 0).r); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH, r32ui) uniform uimage2D rw_reconstructed_previous_nearest_depth; + +void StoreReconstructedDepth(FfxInt32x2 iPxSample, FfxFloat32 fDepth) +{ + FfxUInt32 uDepth = floatBitsToUint(fDepth); + + #if FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH + imageAtomicMax(rw_reconstructed_previous_nearest_depth, iPxSample, uDepth); + #else + imageAtomicMin(rw_reconstructed_previous_nearest_depth, iPxSample, uDepth); // min for standard, max for inverted depth + #endif +} + +void SetReconstructedDepth(FfxInt32x2 iPxSample, FfxUInt32 uValue) +{ + imageStore(rw_reconstructed_previous_nearest_depth, iPxSample, uvec4(uValue, 0, 0, 0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_DILATED_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_DILATED_DEPTH, r32f) writeonly uniform image2D rw_dilated_depth; + +void StoreDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 fDepth) +{ + imageStore(rw_dilated_depth, iPxPos, vec4(fDepth, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_DILATED_MOTION_VECTORS) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_DILATED_MOTION_VECTORS, rg16f) writeonly uniform image2D rw_dilated_motion_vectors; + +void StoreDilatedMotionVector(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 fMotionVector) +{ + imageStore(rw_dilated_motion_vectors, iPxPos, vec4(fMotionVector, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS) uniform texture2D r_dilated_motion_vectors; + +FfxFloat32x2 LoadDilatedMotionVector(FfxInt32x2 iPxInput) +{ + return texelFetch(r_dilated_motion_vectors, iPxInput, 0).xy; +} + +FfxFloat32x2 SampleDilatedMotionVector(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_dilated_motion_vectors, s_LinearClamp), fUV, 0.0).xy; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_DILATED_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_DILATED_DEPTH) uniform texture2D r_dilated_depth; + +FfxFloat32 LoadDilatedDepth(FfxInt32x2 iPxInput) +{ + return texelFetch(r_dilated_depth, iPxInput, 0).r; +} + +FfxFloat32 SampleDilatedDepth(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_dilated_depth, s_LinearClamp), fUV, 0.0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE) uniform texture2D r_input_exposure; + +FfxFloat32 Exposure() +{ + FfxFloat32 exposure = texelFetch(r_input_exposure, FfxInt32x2(0, 0), 0).x; + + if (exposure == 0.0) { + exposure = 1.0; + } + + return exposure; +} +#endif + +// BEGIN: FSR3UPSCALER_BIND_SRV_LANCZOS_LUT +#if defined(FSR3UPSCALER_BIND_SRV_LANCZOS_LUT) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_LANCZOS_LUT) uniform texture2D r_lanczos_lut; +#endif + +FfxFloat32 SampleLanczos2Weight(FfxFloat32 x) +{ +#if defined(FSR3UPSCALER_BIND_SRV_LANCZOS_LUT) + return textureLod(sampler2D(r_lanczos_lut, s_LinearClamp), FfxFloat32x2(x / 2.0, 0.5), 0.0).x; +#else + return 0.f; +#endif +} +// END: FSR3UPSCALER_BIND_SRV_LANCZOS_LUT + +#if defined(FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS) uniform texture2D r_dilated_reactive_masks; + +FfxFloat32x4 SampleDilatedReactiveMasks(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_dilated_reactive_masks, s_LinearClamp), fUV, 0.0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_DILATED_REACTIVE_MASKS) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_DILATED_REACTIVE_MASKS, rgba8) writeonly uniform image2D rw_dilated_reactive_masks; + +void StoreDilatedReactiveMasks(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 fDilatedReactiveMasks) +{ + imageStore(rw_dilated_reactive_masks, iPxPos, fDilatedReactiveMasks); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY) uniform texture2D r_input_opaque_only; + +FfxFloat32x3 LoadOpaqueOnly(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos) +{ + return texelFetch(r_input_opaque_only, iPxPos, 0).xyz; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_PREV_PRE_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_PREV_PRE_ALPHA_COLOR) uniform texture2D r_input_prev_color_pre_alpha; + +FfxFloat32x3 LoadPrevPreAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos) +{ + return texelFetch(r_input_prev_color_pre_alpha, iPxPos, 0).xyz; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_PREV_POST_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_PREV_POST_ALPHA_COLOR) uniform texture2D r_input_prev_color_post_alpha; + +FfxFloat32x3 LoadPrevPostAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos) +{ + return texelFetch(r_input_prev_color_post_alpha, iPxPos, 0).xyz; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_AUTOREACTIVE) && \ + defined(FSR3UPSCALER_BIND_UAV_AUTOCOMPOSITION) + +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_AUTOREACTIVE, r32f) uniform image2D rw_output_autoreactive; +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_AUTOCOMPOSITION, r32f) uniform image2D rw_output_autocomposition; + +void StoreAutoReactive(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos, FFX_PARAMETER_IN FFX_MIN16_F2 fReactive) +{ + imageStore(rw_output_autoreactive, iPxPos, FfxFloat32x4(FfxFloat32(fReactive.x), 0.0, 0.0, 0.0)); + + imageStore(rw_output_autocomposition, iPxPos, FfxFloat32x4(FfxFloat32(fReactive.y), 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_PREV_PRE_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_PREV_PRE_ALPHA_COLOR, r11f_g11f_b10f) uniform image2D rw_output_prev_color_pre_alpha; + +void StorePrevPreAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos, FFX_PARAMETER_IN FFX_MIN16_F3 color) +{ + imageStore(rw_output_prev_color_pre_alpha, iPxPos, FfxFloat32x4(color, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_PREV_POST_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_PREV_POST_ALPHA_COLOR, r11f_g11f_b10f) uniform image2D rw_output_prev_color_post_alpha; + +void StorePrevPostAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos, FFX_PARAMETER_IN FFX_MIN16_F3 color) +{ + imageStore(rw_output_prev_color_post_alpha, iPxPos, FfxFloat32x4(color, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_FRAME_INFO) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_FRAME_INFO, rgba32f) uniform image2D rw_frame_info; + +FfxFloat32x4 LoadFrameInfo() +{ + return imageLoad(rw_frame_info, ivec2(0, 0)); +} + +void StoreFrameInfo(FfxFloat32x4 fInfo) +{ + imageStore(rw_frame_info, ivec2(0, 0), fInfo); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_FRAME_INFO) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_FRAME_INFO) uniform texture2D r_frame_info; + +FfxFloat32x4 FrameInfo() +{ + return texelFetch(r_frame_info, ivec2(0, 0), 0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5) + +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0, rg16f) uniform image2D rw_spd_mip0; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1, rg16f) uniform image2D rw_spd_mip1; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2, rg16f) uniform image2D rw_spd_mip2; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3, rg16f) uniform image2D rw_spd_mip3; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4, rg16f) uniform image2D rw_spd_mip4; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5, rg16f) coherent uniform image2D rw_spd_mip5; + +FfxFloat32x2 RWLoadPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 index) +{ +#define LOAD(idx) \ + if (index == idx) \ + { \ + return imageLoad(rw_spd_mip##idx, iPxPos).xy; \ + } + LOAD(0); + LOAD(1); + LOAD(2); + LOAD(3); + LOAD(4); + LOAD(5); + + return FfxFloat32x2(0.0, 0.0); + +#undef LOAD +} + +void StorePyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 outValue, FFX_PARAMETER_IN FfxUInt32 index) +{ +#define STORE(idx) \ + if (index == idx) \ + { \ + imageStore(rw_spd_mip##idx, iPxPos, vec4(outValue, 0.0, 0.0)); \ + } + + STORE(0); + STORE(1); + STORE(2); + STORE(3); + STORE(4); + STORE(5); + +#undef STORE +} +#endif + +#if defined FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC, r32ui) coherent uniform uimage2D rw_spd_global_atomic; + +void SPD_IncreaseAtomicCounter(inout FfxUInt32 spdCounter) +{ + spdCounter = imageAtomicAdd(rw_spd_global_atomic, ivec2(0, 0), 1); +} + +void SPD_ResetAtomicCounter() +{ + imageStore(rw_spd_global_atomic, ivec2(0, 0), uvec4(0)); +} +#endif + +#endif // #if defined(FFX_GPU) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h new file mode 100644 index 000000000..87aa596db --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h @@ -0,0 +1,403 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if !defined(FFX_FSR3UPSCALER_COMMON_H) +#define FFX_FSR3UPSCALER_COMMON_H + +#if defined(FFX_GPU) +#pragma warning(error : 3206) // treat vector truncation warnings as errors +#pragma warning(disable : 3205) // conversion from larger type to smaller +#pragma warning(disable : 3571) // in ffxPow(f, e), f could be negative + +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP16_MIN = 6.10e-05f; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP16_MAX = 65504.0f; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_EPSILON = FSR3UPSCALER_FP16_MIN; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_TONEMAP_EPSILON = FSR3UPSCALER_FP16_MIN; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP32_MAX = 3.402823466e+38f; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP32_MIN = 1.175494351e-38f; + +// Reconstructed depth usage +FFX_STATIC const FfxFloat32 fReconstructedDepthBilinearWeightThreshold = FSR3UPSCALER_EPSILON * 10; + +FfxFloat32 ReconstructedDepthMvPxThreshold(FfxFloat32 fNearestDepthInMeters) +{ + return ffxLerp(0.25f, 0.75f, ffxSaturate(fNearestDepthInMeters / 100.0f)); +} + +// Accumulation +FFX_STATIC const FfxFloat32 fUpsampleLanczosWeightScale = 1.0f / 16.0f; +FFX_STATIC const FfxFloat32 fAverageLanczosWeightPerFrame = 0.74f * fUpsampleLanczosWeightScale; // Average lanczos weight for jitter accumulated samples +FFX_STATIC const FfxFloat32 fAccumulationMaxOnMotion = 3.0f * fUpsampleLanczosWeightScale; + +#define SHADING_CHANGE_SET_SIZE 5 +FFX_STATIC const FfxInt32 iShadingChangeMipStart = 0; +FFX_STATIC const FfxFloat32 fShadingChangeSamplePow = 1.0f / 1.0f; + + +FFX_STATIC const FfxFloat32 fLockThreshold = 1.0f; +FFX_STATIC const FfxFloat32 fLockMax = 2.0f; + +FFX_STATIC const FfxInt32 REACTIVE = 0; +FFX_STATIC const FfxInt32 DISOCCLUSION = 1; +FFX_STATIC const FfxInt32 SHADING_CHANGE = 2; +FFX_STATIC const FfxInt32 ACCUMULAION = 3; + +FFX_STATIC const FfxInt32 FRAME_INFO_EXPOSURE = 0; +FFX_STATIC const FfxInt32 FRAME_INFO_LOG_LUMA = 1; +FFX_STATIC const FfxInt32 FRAME_INFO_SCENE_AVERAGE_LUMA = 2; + +FfxBoolean TonemapFirstFrame() +{ + const FfxBoolean bEnabled = true; + return FrameIndex() == 0 && bEnabled; +} + +FfxFloat32 AverageLanczosWeightPerFrame() +{ + return 0.74f; +} + +FfxInt32x2 ShadingChangeRenderSize() +{ + return FfxInt32x2(RenderSize() * 0.5f); +} + +FfxInt32x2 ShadingChangeMaxRenderSize() +{ + return FfxInt32x2(MaxRenderSize() * 0.5f); +} + +FfxInt32x2 PreviousFrameShadingChangeRenderSize() +{ + return FfxInt32x2(PreviousFrameRenderSize() * 0.5f); +} + +#if defined(FSR3UPSCALER_BIND_SRV_FRAME_INFO) +FfxFloat32 SceneAverageLuma() +{ + return FrameInfo()[FRAME_INFO_SCENE_AVERAGE_LUMA]; +} +#endif + +// Auto exposure +FFX_STATIC const FfxFloat32 resetAutoExposureAverageSmoothing = 1e4f; + +struct AccumulationPassCommonParams +{ + FfxInt32x2 iPxHrPos; + FfxFloat32x2 fHrUv; + FfxFloat32x2 fLrUvJittered; + FfxFloat32x2 fLrUv_HwSampler; + FfxFloat32x2 fMotionVector; + FfxFloat32x2 fReprojectedHrUv; + FfxFloat32 f4KVelocity; + FfxFloat32 fDisocclusion; + FfxFloat32 fReactiveMask; + FfxFloat32 fShadingChange; + FfxFloat32 fAccumulation; + FfxFloat32 fLumaInstabilityFactor; + FfxFloat32 fFarthestDepthInMeters; + + FfxBoolean bIsExistingSample; + FfxBoolean bIsNewSample; +}; + +FfxFloat32 Get4KVelocity(FfxFloat32x2 fMotionVector) +{ + return length(fMotionVector * FfxFloat32x2(3840.0f, 2160.0f)); +} + +struct RectificationBox +{ + FfxFloat32x3 boxCenter; + FfxFloat32x3 boxVec; + FfxFloat32x3 aabbMin; + FfxFloat32x3 aabbMax; + FfxFloat32 fBoxCenterWeight; +}; + +struct AccumulationPassData +{ + RectificationBox clippingBox; + FfxFloat32x3 fUpsampledColor; + FfxFloat32 fUpsampledWeight; + FfxFloat32x3 fHistoryColor; + FfxFloat32 fHistoryWeight; + FfxFloat32 fLock; + FfxFloat32 fLockContributionThisFrame; +}; + +void RectificationBoxAddInitialSample(FFX_PARAMETER_INOUT RectificationBox rectificationBox, const FfxFloat32x3 colorSample, const FfxFloat32 fSampleWeight) +{ + rectificationBox.aabbMin = colorSample; + rectificationBox.aabbMax = colorSample; + + FfxFloat32x3 weightedSample = colorSample * fSampleWeight; + rectificationBox.boxCenter = weightedSample; + rectificationBox.boxVec = colorSample * weightedSample; + rectificationBox.fBoxCenterWeight = fSampleWeight; +} + +void RectificationBoxAddSample(FfxBoolean bInitialSample, FFX_PARAMETER_INOUT RectificationBox rectificationBox, const FfxFloat32x3 colorSample, const FfxFloat32 fSampleWeight) +{ + if (bInitialSample) { + RectificationBoxAddInitialSample(rectificationBox, colorSample, fSampleWeight); + } else { + rectificationBox.aabbMin = ffxMin(rectificationBox.aabbMin, colorSample); + rectificationBox.aabbMax = ffxMax(rectificationBox.aabbMax, colorSample); + + FfxFloat32x3 weightedSample = colorSample * fSampleWeight; + rectificationBox.boxCenter += weightedSample; + rectificationBox.boxVec += colorSample * weightedSample; + rectificationBox.fBoxCenterWeight += fSampleWeight; + } +} + +void RectificationBoxComputeVarianceBoxData(FFX_PARAMETER_INOUT RectificationBox rectificationBox) +{ + rectificationBox.fBoxCenterWeight = (abs(rectificationBox.fBoxCenterWeight) > FfxFloat32(FSR3UPSCALER_FP32_MIN) ? rectificationBox.fBoxCenterWeight : FfxFloat32(1.f)); + rectificationBox.boxCenter /= rectificationBox.fBoxCenterWeight; + rectificationBox.boxVec /= rectificationBox.fBoxCenterWeight; + FfxFloat32x3 stdDev = sqrt(abs(rectificationBox.boxVec - rectificationBox.boxCenter * rectificationBox.boxCenter)); + rectificationBox.boxVec = stdDev; +} + +FfxFloat32x3 SafeRcp3(FfxFloat32x3 v) +{ + return (all(FFX_NOT_EQUAL(v, FfxFloat32x3(0, 0, 0)))) ? (FfxFloat32x3(1, 1, 1) / v) : FfxFloat32x3(0, 0, 0); +} + +FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1, const FfxFloat32 fOnZeroReturnValue) +{ + const FfxFloat32 m = ffxMax(v0, v1); + return m != 0 ? ffxMin(v0, v1) / m : fOnZeroReturnValue; +} + +FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1) +{ + const FfxFloat32 m = ffxMax(v0, v1); + return m != 0 ? ffxMin(v0, v1) / m : 0; +} + +FfxFloat32x3 YCoCgToRGB(FfxFloat32x3 fYCoCg) +{ + FfxFloat32x3 fRgb; + + fRgb = FfxFloat32x3( + fYCoCg.x + fYCoCg.y - fYCoCg.z, + fYCoCg.x + fYCoCg.z, + fYCoCg.x - fYCoCg.y - fYCoCg.z); + + return fRgb; +} + +FfxFloat32x3 RGBToYCoCg(FfxFloat32x3 fRgb) +{ + FfxFloat32x3 fYCoCg; + + fYCoCg = FfxFloat32x3( + 0.25f * fRgb.r + 0.5f * fRgb.g + 0.25f * fRgb.b, + 0.5f * fRgb.r - 0.5f * fRgb.b, + -0.25f * fRgb.r + 0.5f * fRgb.g - 0.25f * fRgb.b); + + return fYCoCg; +} + +FfxFloat32 RGBToLuma(FfxFloat32x3 fLinearRgb) +{ + return dot(fLinearRgb, FfxFloat32x3(0.2126f, 0.7152f, 0.0722f)); +} + +FfxFloat32 RGBToPerceivedLuma(FfxFloat32x3 fLinearRgb) +{ + FfxFloat32 fLuminance = RGBToLuma(fLinearRgb); + + FfxFloat32 fPercievedLuminance = 0; + if (fLuminance <= 216.0f / 24389.0f) { + fPercievedLuminance = fLuminance * (24389.0f / 27.0f); + } + else { + fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; + } + + return fPercievedLuminance * 0.01f; +} + +FfxFloat32x3 Tonemap(FfxFloat32x3 fRgb) +{ + return fRgb / (ffxMax(ffxMax(0.f, fRgb.r), ffxMax(fRgb.g, fRgb.b)) + 1.f).xxx; +} + +FfxFloat32x3 InverseTonemap(FfxFloat32x3 fRgb) +{ + return fRgb / ffxMax(FSR3UPSCALER_TONEMAP_EPSILON, 1.f - ffxMax(fRgb.r, ffxMax(fRgb.g, fRgb.b))).xxx; +} + +FfxBoolean IsUvInside(FfxFloat32x2 fUv) +{ + return (fUv.x >= 0.0f && fUv.x <= 1.0f) && (fUv.y >= 0.0f && fUv.y <= 1.0f); +} + +FfxInt32x2 ClampLoad(FfxInt32x2 iPxSample, FfxInt32x2 iPxOffset, FfxInt32x2 iTextureSize) +{ + FfxInt32x2 result = iPxSample + iPxOffset; + result.x = ffxMax(0, ffxMin(result.x, iTextureSize.x - 1)); + result.y = ffxMax(0, ffxMin(result.y, iTextureSize.y - 1)); + return result; +} + +FfxFloat32x2 ClampUv(FfxFloat32x2 fUv, FfxInt32x2 iTextureSize, FfxInt32x2 iResourceSize) +{ + const FfxFloat32x2 fSampleLocation = fUv * iTextureSize; + const FfxFloat32x2 fClampedLocation = ffxMax(FfxFloat32x2(0.5f, 0.5f), ffxMin(fSampleLocation, FfxFloat32x2(iTextureSize) - FfxFloat32x2(0.5f, 0.5f))); + const FfxFloat32x2 fClampedUv = fClampedLocation / FfxFloat32x2(iResourceSize); + + return fClampedUv; +} + +FfxBoolean IsOnScreen(FfxInt32x2 pos, FfxInt32x2 size) +{ + return all(FFX_LESS_THAN(FfxUInt32x2(pos), FfxUInt32x2(size))); +} + +FfxFloat32 ComputeAutoExposureFromLavg(FfxFloat32 Lavg) +{ + Lavg = exp(Lavg); + + const FfxFloat32 S = 100.0f; //ISO arithmetic speed + const FfxFloat32 K = 12.5f; + FfxFloat32 ExposureISO100 = log2((Lavg * S) / K); + + const FfxFloat32 q = 0.65f; + FfxFloat32 Lmax = (78.0f / (q * S)) * ffxPow(2.0f, ExposureISO100); + + return 1.0f / Lmax; +} + +FfxInt32x2 ComputeHrPosFromLrPos(FfxInt32x2 iPxLrPos) +{ + FfxFloat32x2 fSrcJitteredPos = FfxFloat32x2(iPxLrPos) + 0.5f - Jitter(); + FfxFloat32x2 fLrPosInHr = (fSrcJitteredPos / RenderSize()) * UpscaleSize(); + FfxInt32x2 iPxHrPos = FfxInt32x2(floor(fLrPosInHr)); + return iPxHrPos; +} + +FfxFloat32x2 ComputeNdc(FfxFloat32x2 fPxPos, FfxInt32x2 iSize) +{ + return fPxPos / FfxFloat32x2(iSize) * FfxFloat32x2(2.0f, -2.0f) + FfxFloat32x2(-1.0f, 1.0f); +} + +FfxFloat32 GetViewSpaceDepth(FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 fDeviceToViewDepth = DeviceToViewSpaceTransformFactors(); + + // fDeviceToViewDepth details found in ffx_fsr3upscaler.cpp + return (fDeviceToViewDepth[1] / (fDeviceDepth - fDeviceToViewDepth[0])); +} + +FfxFloat32 GetViewSpaceDepthInMeters(FfxFloat32 fDeviceDepth) +{ + return GetViewSpaceDepth(fDeviceDepth) * ViewSpaceToMetersFactor(); +} + +FfxFloat32x3 GetViewSpacePosition(FfxInt32x2 iViewportPos, FfxInt32x2 iViewportSize, FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 fDeviceToViewDepth = DeviceToViewSpaceTransformFactors(); + + const FfxFloat32 Z = GetViewSpaceDepth(fDeviceDepth); + + const FfxFloat32x2 fNdcPos = ComputeNdc(iViewportPos, iViewportSize); + const FfxFloat32 X = fDeviceToViewDepth[2] * fNdcPos.x * Z; + const FfxFloat32 Y = fDeviceToViewDepth[3] * fNdcPos.y * Z; + + return FfxFloat32x3(X, Y, Z); +} + +FfxFloat32x3 GetViewSpacePositionInMeters(FfxInt32x2 iViewportPos, FfxInt32x2 iViewportSize, FfxFloat32 fDeviceDepth) +{ + return GetViewSpacePosition(iViewportPos, iViewportSize, fDeviceDepth) * ViewSpaceToMetersFactor(); +} + +FfxFloat32 GetMaxDistanceInMeters() +{ +#if FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH + return GetViewSpaceDepth(0.0f) * ViewSpaceToMetersFactor(); +#else + return GetViewSpaceDepth(1.0f) * ViewSpaceToMetersFactor(); +#endif +} + + +struct BilinearSamplingData +{ + FfxInt32x2 iOffsets[4]; + FfxFloat32 fWeights[4]; + FfxInt32x2 iBasePos; +}; + +BilinearSamplingData GetBilinearSamplingData(FfxFloat32x2 fUv, FfxInt32x2 iSize) +{ + BilinearSamplingData data; + + FfxFloat32x2 fPxSample = (fUv * iSize) - FfxFloat32x2(0.5f, 0.5f); + data.iBasePos = FfxInt32x2(floor(fPxSample)); + FfxFloat32x2 fPxFrac = ffxFract(fPxSample); + + data.iOffsets[0] = FfxInt32x2(0, 0); + data.iOffsets[1] = FfxInt32x2(1, 0); + data.iOffsets[2] = FfxInt32x2(0, 1); + data.iOffsets[3] = FfxInt32x2(1, 1); + + data.fWeights[0] = (1 - fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[1] = (fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[2] = (1 - fPxFrac.x) * (fPxFrac.y); + data.fWeights[3] = (fPxFrac.x) * (fPxFrac.y); + + return data; +} + +struct PlaneData +{ + FfxFloat32x3 fNormal; + FfxFloat32 fDistanceFromOrigin; +}; + +PlaneData GetPlaneFromPoints(FfxFloat32x3 fP0, FfxFloat32x3 fP1, FfxFloat32x3 fP2) +{ + PlaneData plane; + + FfxFloat32x3 v0 = fP0 - fP1; + FfxFloat32x3 v1 = fP0 - fP2; + plane.fNormal = normalize(cross(v0, v1)); + plane.fDistanceFromOrigin = -dot(fP0, plane.fNormal); + + return plane; +} + +FfxFloat32 PointToPlaneDistance(PlaneData plane, FfxFloat32x3 fPoint) +{ + return abs(dot(plane.fNormal, fPoint) + plane.fDistanceFromOrigin); +} + +#endif // #if defined(FFX_GPU) + +#endif //!defined(FFX_FSR3UPSCALER_COMMON_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h new file mode 100644 index 000000000..624b7ca94 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h @@ -0,0 +1,115 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +struct LumaInstabilityFactorData +{ + FfxFloat32x4 fLumaHistory; + FfxFloat32 fLumaInstabilityFactor; +}; + +LumaInstabilityFactorData ComputeLumaInstabilityFactor(LumaInstabilityFactorData data, FfxFloat32 fCurrentFrameLuma, FfxFloat32 fFarthestDepthInMeters) +{ + const FfxInt32 N_MINUS_1 = 0; + const FfxInt32 N_MINUS_2 = 1; + const FfxInt32 N_MINUS_3 = 2; + const FfxInt32 N_MINUS_4 = 3; + + FfxFloat32 fLumaInstability = 0.0f; + const FfxFloat32 fDiffs0 = (fCurrentFrameLuma - data.fLumaHistory[N_MINUS_1]); + const FfxFloat32 fSimilarity0 = MinDividedByMax(fCurrentFrameLuma, data.fLumaHistory[N_MINUS_1], 1.0f); + + FfxFloat32 fMaxSimilarity = fSimilarity0; + + if (fSimilarity0 < 1.0f) { + for (int i = N_MINUS_2; i <= N_MINUS_4; i++) { + const FfxFloat32 fDiffs1 = (fCurrentFrameLuma - data.fLumaHistory[i]); + const FfxFloat32 fSimilarity1 = MinDividedByMax(fCurrentFrameLuma, data.fLumaHistory[i]); + + if (sign(fDiffs0) == sign(fDiffs1)) { + + fMaxSimilarity = ffxMax(fMaxSimilarity, fSimilarity1); + } + } + + fLumaInstability = FfxFloat32(fMaxSimilarity > fSimilarity0); + } + + // Shift history + data.fLumaHistory[N_MINUS_4] = data.fLumaHistory[N_MINUS_3]; + data.fLumaHistory[N_MINUS_3] = data.fLumaHistory[N_MINUS_2]; + data.fLumaHistory[N_MINUS_2] = data.fLumaHistory[N_MINUS_1]; + data.fLumaHistory[N_MINUS_1] = fCurrentFrameLuma; + + data.fLumaHistory /= Exposure(); + + data.fLumaInstabilityFactor = fLumaInstability * FfxFloat32(data.fLumaHistory[N_MINUS_4] != 0); + + return data; +} + +void LumaInstability(FfxInt32x2 iPxPos) +{ + LumaInstabilityFactorData data; + data.fLumaInstabilityFactor = 0.0f; + data.fLumaHistory = FfxFloat32x4(0.0f, 0.0f, 0.0f, 0.0f); + + const FfxFloat32x2 fDilatedMotionVector = LoadDilatedMotionVector(iPxPos); + const FfxFloat32x2 fUv = (iPxPos + 0.5f) / RenderSize(); + const FfxFloat32x2 fUvCurrFrameJittered = fUv + Jitter() / RenderSize(); + const FfxFloat32x2 fUvPrevFrameJittered = fUv + PreviousFrameJitter() / PreviousFrameRenderSize(); + const FfxFloat32x2 fReprojectedUv = fUvPrevFrameJittered + fDilatedMotionVector; + + if (IsUvInside(fReprojectedUv)) + { + const FfxFloat32x2 fUvReactive_HW = ClampUv(fUvCurrFrameJittered, RenderSize(), MaxRenderSize()); + + const FfxFloat32x4 fDilatedReactiveMasks = SampleDilatedReactiveMasks(fUvReactive_HW); + const FfxFloat32 fReactiveMask = ffxSaturate(fDilatedReactiveMasks[REACTIVE]); + const FfxFloat32 fDisocclusion = ffxSaturate(fDilatedReactiveMasks[DISOCCLUSION]); + const FfxFloat32 fShadingChange = ffxSaturate(fDilatedReactiveMasks[SHADING_CHANGE]); + const FfxFloat32 fAccumulation = ffxSaturate(fDilatedReactiveMasks[ACCUMULAION]); + + const FfxBoolean bAccumulationFactor = fAccumulation > 0.9f; + + const FfxBoolean bComputeInstability = bAccumulationFactor; + + if (bComputeInstability) { + + const FfxFloat32x2 fUv_HW = ClampUv(fUvCurrFrameJittered, RenderSize(), MaxRenderSize()); + const FfxFloat32 fCurrentFrameLuma = SampleCurrentLuma(fUv_HW) * Exposure(); + + const FfxFloat32x2 fReprojectedUv_HW = ClampUv(fReprojectedUv, PreviousFrameRenderSize(), MaxRenderSize()); + data.fLumaHistory = SampleLumaHistory(fReprojectedUv_HW) * DeltaPreExposure() * Exposure(); + + const FfxFloat32x2 fFarthestDepthUv_HW = ClampUv(fUvCurrFrameJittered, RenderSize() / 2, GetFarthestDepthMip1ResourceDimensions()); + const FfxFloat32 fFarthestDepthInMeters = SampleFarthestDepthMip1(fFarthestDepthUv_HW); + + data = ComputeLumaInstabilityFactor(data, fCurrentFrameLuma, fFarthestDepthInMeters); + + const FfxFloat32 fVelocityWeight = 1.0f - ffxSaturate(Get4KVelocity(fDilatedMotionVector) / 20.0f); + data.fLumaInstabilityFactor *= fVelocityWeight * (1.0f - fDisocclusion) * (1.0f - fReactiveMask) * (1.0f - fShadingChange); + } + } + + StoreLumaHistory(iPxPos, data.fLumaHistory); + StoreLumaInstability(iPxPos, data.fLumaInstabilityFactor); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h new file mode 100644 index 000000000..41c5dc7f4 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h @@ -0,0 +1,192 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FFX_GROUPSHARED FfxUInt32 spdCounter; + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + SPD_IncreaseAtomicCounter(spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} + +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + SPD_ResetAtomicCounter(); +} + +#ifndef SPD_PACKED_ONLY +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FFX_STATIC const FfxInt32 LOG_LUMA = 0; +FFX_STATIC const FfxInt32 LUMA = 1; +FFX_STATIC const FfxInt32 DEPTH_IN_METERS = 2; + +FfxFloat32x4 SpdLoadSourceImage(FfxFloat32x2 iPxPos, FfxUInt32 slice) +{ + //We assume linear data. if non-linear input (sRGB, ...), + //then we should convert to linear first and back to sRGB on output. + const FfxInt32x2 iPxSamplePos = ClampLoad(FfxInt32x2(iPxPos), FfxInt32x2(0, 0), FfxInt32x2(RenderSize())); + + const FfxFloat32 fLuma = LoadCurrentLuma(iPxSamplePos); + const FfxFloat32 fLogLuma = ffxMax(FSR3UPSCALER_EPSILON, log(fLuma)); + const FfxFloat32 fFarthestDepthInMeters = LoadFarthestDepth(iPxSamplePos); + + FfxFloat32x4 fOutput = FfxFloat32x4(0.0f, 0.0f, 0.0f, 0.0f); + fOutput[LOG_LUMA] = fLogLuma; + fOutput[LUMA] = fLuma; + fOutput[DEPTH_IN_METERS] = fFarthestDepthInMeters; + + return fOutput; +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return FfxFloat32x4(RWLoadPyramid(tex, 5), 0, 0); +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return (v0 + v1 + v2 + v3) * 0.25f; +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + if (index == 5) + { + StorePyramid(pix, outValue.xy, index); + } + else if (index == 0) { + StoreFarthestDepthMip1(pix, outValue[DEPTH_IN_METERS]); + } + + if (index == MipCount() - 1) { //accumulate on 1x1 level + + if (all(FFX_EQUAL(pix, FfxInt32x2(0, 0)))) + { + FfxFloat32x4 frameInfo = LoadFrameInfo(); + const FfxFloat32 fSceneAvgLuma = outValue[LUMA]; + const FfxFloat32 fPrevLogLuma = frameInfo[FRAME_INFO_LOG_LUMA]; + FfxFloat32 fLogLuma = outValue[LOG_LUMA]; + + if (fPrevLogLuma < resetAutoExposureAverageSmoothing) // Compare Lavg, so small or negative values + { + fLogLuma = fPrevLogLuma + (fLogLuma - fPrevLogLuma) * (1.0f - exp(-DeltaTime())); + fLogLuma = ffxMax(0.0f, fLogLuma); + } + + frameInfo[FRAME_INFO_EXPOSURE] = ComputeAutoExposureFromLavg(fLogLuma); + frameInfo[FRAME_INFO_LOG_LUMA] = fLogLuma; + frameInfo[FRAME_INFO_SCENE_AVERAGE_LUMA] = fSceneAvgLuma; + + StoreFrameInfo(frameInfo); + } + } +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +#endif + +// define fetch and store functions Packed +#if FFX_HALF + +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateRG[16][16]; +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateBA[16][16]; + +FfxFloat16x4 SpdLoadSourceImageH(FfxFloat32x2 tex, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +FfxFloat16x4 SpdLoadH(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +void SpdStoreH(FfxInt32x2 p, FfxFloat16x4 value, FfxUInt32 mip, FfxUInt32 slice) +{ +} + +FfxFloat16x4 SpdLoadIntermediateH(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat16x4( + spdIntermediateRG[x][y].x, + spdIntermediateRG[x][y].y, + spdIntermediateBA[x][y].x, + spdIntermediateBA[x][y].y); +} + +void SpdStoreIntermediateH(FfxUInt32 x, FfxUInt32 y, FfxFloat16x4 value) +{ + spdIntermediateRG[x][y] = value.xy; + spdIntermediateBA[x][y] = value.zw; +} + +FfxFloat16x4 SpdReduce4H(FfxFloat16x4 v0, FfxFloat16x4 v1, FfxFloat16x4 v2, FfxFloat16x4 v3) +{ + return (v0 + v1 + v2 + v3) * FfxFloat16(0.25); +} +#endif + +#include "spd/ffx_spd.h" + +void ComputeAutoExposure(FfxUInt32x3 WorkGroupId, FfxUInt32 LocalThreadIndex) +{ +#if FFX_HALF + SpdDownsampleH( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#else + SpdDownsample( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#endif +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h new file mode 100644 index 000000000..59c765b52 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h @@ -0,0 +1,152 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void ReconstructPrevDepth(FfxInt32x2 iPxPos, FfxFloat32 fDepth, FfxFloat32x2 fMotionVector) +{ + const FfxFloat32 fNearestDepthInMeters = ffxMin(GetViewSpaceDepthInMeters(fDepth), FSR3UPSCALER_FP16_MAX); + const FfxFloat32 fReconstructedDeptMvThreshold = ReconstructedDepthMvPxThreshold(fNearestDepthInMeters); + + // Discard small mvs + fMotionVector *= FfxFloat32(Get4KVelocity(fMotionVector) > fReconstructedDeptMvThreshold); + + const FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5)) / RenderSize(); + const FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + const BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, RenderSize()); + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + const FfxInt32x2 iStorePos = bilinearInfo.iBasePos + iOffset; + if (IsOnScreen(iStorePos, RenderSize())) { + StoreReconstructedDepth(iStorePos, fDepth); + } + } + } +} + +struct DepthExtents +{ + FfxFloat32 fNearest; + FfxInt32x2 fNearestCoord; + FfxFloat32 fFarthest; +}; + +DepthExtents FindDepthExtents(FFX_PARAMETER_IN FfxInt32x2 iPxPos) +{ + DepthExtents extents; + const FfxInt32 iSampleCount = 9; + const FfxInt32x2 iSampleOffsets[iSampleCount] = { + FfxInt32x2(+0, +0), + FfxInt32x2(+1, +0), + FfxInt32x2(+0, +1), + FfxInt32x2(+0, -1), + FfxInt32x2(-1, +0), + FfxInt32x2(-1, +1), + FfxInt32x2(+1, +1), + FfxInt32x2(-1, -1), + FfxInt32x2(+1, -1), + }; + + // pull out the depth loads to allow SC to batch them + FfxFloat32 depth[9]; + FfxInt32 iSampleIndex = 0; + FFX_UNROLL + for (iSampleIndex = 0; iSampleIndex < iSampleCount; ++iSampleIndex) { + + FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + depth[iSampleIndex] = LoadInputDepth(iPos); + } + + // find closest depth + extents.fNearestCoord = iPxPos; + extents.fNearest = depth[0]; + extents.fFarthest = depth[0]; + FFX_UNROLL + for (iSampleIndex = 1; iSampleIndex < iSampleCount; ++iSampleIndex) { + + const FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + if (IsOnScreen(iPos, RenderSize())) { + + FfxFloat32 fNdDepth = depth[iSampleIndex]; +#if FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH + if (fNdDepth > extents.fNearest) { + extents.fFarthest = ffxMin(extents.fFarthest, fNdDepth); +#else + if (fNdDepth < extents.fNearest) { + extents.fFarthest = ffxMax(extents.fFarthest, fNdDepth); +#endif + extents.fNearestCoord = iPos; + extents.fNearest = fNdDepth; + } + } + } + + return extents; +} + +FfxFloat32x2 DilateMotionVector(FfxInt32x2 iPxPos, const DepthExtents depthExtents) +{ +#if FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS + const FfxInt32x2 iSamplePos = iPxPos; + const FfxInt32x2 iMotionVectorPos = depthExtents.fNearestCoord; +#else + const FfxInt32x2 iSamplePos = ComputeHrPosFromLrPos(iPxPos); + const FfxInt32x2 iMotionVectorPos = ComputeHrPosFromLrPos(depthExtents.fNearestCoord); +#endif + + const FfxFloat32x2 fDilatedMotionVector = LoadInputMotionVector(iMotionVectorPos); + + return fDilatedMotionVector; +} + +FfxFloat32 GetCurrentFrameLuma(FfxInt32x2 iPxPos) +{ + //We assume linear data. if non-linear input (sRGB, ...), + //then we should convert to linear first and back to sRGB on output. + const FfxFloat32x3 fRgb = ffxMax(FfxFloat32x3(0, 0, 0), LoadInputColor(iPxPos)); + const FfxFloat32 fLuma = RGBToLuma(fRgb); + + return fLuma; +} + +void PrepareInputs(FfxInt32x2 iPxPos) +{ + const DepthExtents depthExtents = FindDepthExtents(iPxPos); + const FfxFloat32x2 fDilatedMotionVector = DilateMotionVector(iPxPos, depthExtents); + + ReconstructPrevDepth(iPxPos, depthExtents.fNearest, fDilatedMotionVector); + + StoreDilatedMotionVector(iPxPos, fDilatedMotionVector); + StoreDilatedDepth(iPxPos, depthExtents.fNearest); + + const FfxFloat32 fFarthestDepthInMeters = ffxMin(GetViewSpaceDepthInMeters(depthExtents.fFarthest), FSR3UPSCALER_FP16_MAX); + StoreFarthestDepth(iPxPos, fFarthestDepthInMeters); + + const FfxFloat32 fLuma = GetCurrentFrameLuma(iPxPos); + StoreCurrentLuma(iPxPos, fLuma); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h new file mode 100644 index 000000000..ae24545c8 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h @@ -0,0 +1,283 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FfxFloat32 ComputeDisocclusions(FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxFloat32 fCurrentDepthViewSpace) +{ + const FfxFloat32 fNearestDepthInMeters = ffxMin(fCurrentDepthViewSpace * ViewSpaceToMetersFactor(), FSR3UPSCALER_FP16_MAX); + const FfxFloat32 fReconstructedDeptMvThreshold = ReconstructedDepthMvPxThreshold(fNearestDepthInMeters); + + fMotionVector *= FfxFloat32(Get4KVelocity(fMotionVector) > fReconstructedDeptMvThreshold); + + const FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + const BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, RenderSize()); + + FfxFloat32 fDisocclusion = 0.0f; + FfxFloat32 fWeightSum = 0.0f; + FfxBoolean bPotentialDisocclusion = true; + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4 && bPotentialDisocclusion; iSampleIndex++) + { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = ClampLoad(bilinearInfo.iBasePos, iOffset, FfxInt32x2(RenderSize())); + + if (IsOnScreen(iSamplePos, RenderSize())) { + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + const FfxFloat32 fPrevNearestDepthViewSpace = GetViewSpaceDepth(LoadReconstructedPrevDepth(iSamplePos)); + const FfxFloat32 fDepthDifference = fCurrentDepthViewSpace - fPrevNearestDepthViewSpace; + + bPotentialDisocclusion = bPotentialDisocclusion && (fDepthDifference > FSR3UPSCALER_FP32_MIN); + + if (bPotentialDisocclusion) { + const FfxFloat32 fHalfViewportWidth = length(FfxFloat32x2(RenderSize()) * 0.5f); + const FfxFloat32 fDepthThreshold = ffxMax(fCurrentDepthViewSpace, fPrevNearestDepthViewSpace); + + const FfxFloat32 Ksep = 1.37e-05f; + const FfxFloat32 fRequiredDepthSeparation = Ksep * fHalfViewportWidth * fDepthThreshold; + + fDisocclusion += ffxSaturate(FfxFloat32(fRequiredDepthSeparation / fDepthDifference)) * fWeight; + fWeightSum += fWeight; + } + } + } + } + + fDisocclusion = (bPotentialDisocclusion && fWeightSum > 0) ? ffxSaturate(1.0f - fDisocclusion / fWeightSum) : 0.0f; + + return fDisocclusion; +} + +FfxFloat32 ComputeMotionDivergence(FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxFloat32 fCurrentDepthSample) +{ + const FfxInt32x2 iPxReprojectedPos = FfxInt32x2((fUv + fMotionVector) * RenderSize()); + const FfxFloat32 fReprojectedDepth = LoadDilatedDepth(iPxReprojectedPos); + const FfxFloat32x2 fReprojectedMotionVector = LoadDilatedMotionVector(iPxReprojectedPos); + + const FfxFloat32 fReprojectedVelocity = Get4KVelocity(fReprojectedMotionVector); + const FfxFloat32 f4KVelocity = Get4KVelocity(fMotionVector); + + const FfxFloat32 fMaxLen = max(length(fMotionVector), length(fReprojectedMotionVector)); + + const FfxFloat32 fNucleusDepthInMeters = GetViewSpaceDepthInMeters(fReprojectedDepth); + const FfxFloat32 fCurrentDepthInMeters = GetViewSpaceDepthInMeters(fCurrentDepthSample); + + const FfxFloat32 fDistanceFactor = MinDividedByMax(fNucleusDepthInMeters, fCurrentDepthInMeters); + const FfxFloat32 fVelocityFactor = ffxSaturate(f4KVelocity / 10.0f); + const FfxFloat32 fMotionVectorFieldConfidence = (1.0f - ffxSaturate(fReprojectedVelocity / f4KVelocity)) * fDistanceFactor * fVelocityFactor; + + return fMotionVectorFieldConfidence; +} + +FfxFloat32 DilateReactiveMasks(FfxInt32x2 iPxPos, FfxFloat32x2 fUv) +{ + FfxFloat32 fDilatedReactiveMasks = 0.0f; + + FFX_UNROLL + for (FfxInt32 y = -1; y <=1; y++) + { + FFX_UNROLL + for (FfxInt32 x = -1; x <= 1; x++) + { + const FfxInt32x2 sampleCoord = ClampLoad(iPxPos, FfxInt32x2(x, y), FfxInt32x2(RenderSize())); + fDilatedReactiveMasks = ffxMax(fDilatedReactiveMasks, LoadReactiveMask(sampleCoord)); + } + } + + return fDilatedReactiveMasks; +} + +FfxFloat32 DilateTransparencyAndCompositionMasks(FfxInt32x2 iPxPos, FfxFloat32x2 fUv) +{ + const FfxFloat32x2 fUvTransparencyAndCompositionMask = ClampUv(fUv, RenderSize(), GetTransparencyAndCompositionMaskResourceDimensions()); + return SampleTransparencyAndCompositionMask(fUvTransparencyAndCompositionMask); +} + +FfxFloat32 ComputeThinFeatureConfidence(FfxInt32x2 iPxPos) +{ + /* + 1 2 3 + 4 0 5 + 6 7 8 + */ + + const FfxInt32 iNucleusIndex = 0; + const FfxInt32 iSampleCount = 9; + const FfxInt32x2 iSampleOffsets[iSampleCount] = { + FfxInt32x2(+0, +0), + FfxInt32x2(-1, -1), + FfxInt32x2(+0, -1), + FfxInt32x2(+1, -1), + FfxInt32x2(-1, +0), + FfxInt32x2(+1, +0), + FfxInt32x2(-1, +1), + FfxInt32x2(+0, +1), + FfxInt32x2(+1, +1), + }; + + FfxFloat32 fSamples[iSampleCount]; + + FfxFloat32 fLumaMin = FSR3UPSCALER_FP32_MAX; + FfxFloat32 fLumaMax = FSR3UPSCALER_FP32_MIN; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 0; iSampleIndex < iSampleCount; ++iSampleIndex) { + const FfxInt32x2 iPxSamplePos = ClampLoad(iPxPos, iSampleOffsets[iSampleIndex], FfxInt32x2(RenderSize())); + fSamples[iSampleIndex] = LoadCurrentLuma(iPxSamplePos) * Exposure(); + + fLumaMin = ffxMin(fLumaMin, fSamples[iSampleIndex]); + fLumaMax = ffxMax(fLumaMax, fSamples[iSampleIndex]); + } + + const FfxFloat32 fThreshold = 0.9f; + FfxFloat32 fDissimilarLumaMin = FSR3UPSCALER_FP32_MAX; + FfxFloat32 fDissimilarLumaMax = 0; + +#define SETBIT(x) (1U << x) + + FfxUInt32 uPatternMask = SETBIT(iNucleusIndex); // Flag nucleus as similar + + const FfxUInt32 uNumRejectionMasks = 4; + const FfxUInt32 uRejectionMasks[uNumRejectionMasks] = { + SETBIT(1) | SETBIT(2) | SETBIT(4) | SETBIT(iNucleusIndex), // Upper left + SETBIT(2) | SETBIT(3) | SETBIT(5) | SETBIT(iNucleusIndex), // Upper right + SETBIT(4) | SETBIT(6) | SETBIT(7) | SETBIT(iNucleusIndex), // Lower left + SETBIT(5) | SETBIT(7) | SETBIT(8) | SETBIT(iNucleusIndex) // Lower right + }; + + FfxInt32 iBitIndex = 1; + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iSampleCount; ++iSampleIndex, ++iBitIndex) { + + const FfxFloat32 fDifference = abs(fSamples[iSampleIndex] - fSamples[iNucleusIndex]) / (fLumaMax - fLumaMin); + + if (fDifference < fThreshold) + { + uPatternMask |= SETBIT(iBitIndex); + } + else + { + fDissimilarLumaMin = ffxMin(fDissimilarLumaMin, fSamples[iSampleIndex]); + fDissimilarLumaMax = ffxMax(fDissimilarLumaMax, fSamples[iSampleIndex]); + } + } + + const FfxBoolean bIsRidge = fSamples[iNucleusIndex] > fDissimilarLumaMax || fSamples[iNucleusIndex] < fDissimilarLumaMin; + + if (FFX_FALSE == bIsRidge) + { + return 0.0f; + } + + FFX_UNROLL + for (FfxInt32 i = 0; i < uNumRejectionMasks; i++) + { + if ((uPatternMask & uRejectionMasks[i]) == uRejectionMasks[i]) + { + return 0.0f; + } + } + + return 1.0f - fLumaMin / fLumaMax; +} + +FfxFloat32 UpdateAccumulation(FfxInt32x2 iPxPos, FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxFloat32 fDisocclusion, FfxFloat32 fShadingChange) +{ + const FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + FfxFloat32 fAccumulation = 0.0f; + + if (IsUvInside(fReprojectedUv)) { + const FfxFloat32x2 fReprojectedUv_HW = ClampUv(fReprojectedUv, PreviousFrameRenderSize(), MaxRenderSize()); + fAccumulation = ffxSaturate(SampleAccumulation(fReprojectedUv_HW)); + } + const FfxFloat32 fAccumulationAddedPerFrame= AccumulationAddedPerFrame(); //default is 0.333 + + // Assume at frame N+0 fShadingChange is 1.0, and all subsequent frames fShadingChange is 0.0 and fDisocclusion is 0.0. Then, + // frame N+0 fAccumulation will be 0.000 + // frame N+2 fAccumulation will be 0.000 + 0.333 * 1 == 0.333 + // frame N+3 fAccumulation will be 0.000 + 0.333 * 2 == 0.666 + // frame N+4 fAccumulation will be 0.000 + 0.333 * 3 == 0.999 + fAccumulation = ffxLerp(fAccumulation, 0.0f, fShadingChange); + + const FfxFloat32 fMinDisocclusionAccumulation = MinDisocclusionAccumulation(); //default is -0.333 + // Assume at frame N+0 fDisocclusion is 1.0, and all subsequent frames fShadingChange is 0.0 and fDisocclusion is 0.0. Then, + // frame N+0 fAccumulation will be -0.333f (but normalized to store in unorm) + // frame N+1 fAccumulation will be -0.333f + 0.333 * 1 == 0.000 + // frame N+2 fAccumulation will be -0.333f + 0.333 * 2 == 0.333 + // frame N+3 fAccumulation will be -0.333f + 0.333 * 3 == 0.666 + // frame N+4 fAccumulation will be -0.333f + 0.333 * 4 == 0.999 + fAccumulation = ffxLerp(fAccumulation, ffxMin(fMinDisocclusionAccumulation, fAccumulation), fDisocclusion); + + fAccumulation *= FfxFloat32(round(fAccumulation * 100.0f) > 1.0f); + + // Update for next frame, normalize to store in unorm + const FfxFloat32 fAccumulatedFramesToStore = ffxSaturate(fAccumulation + fAccumulationAddedPerFrame); + StoreAccumulation(iPxPos, fAccumulatedFramesToStore); + + return fAccumulation; +} + +FfxFloat32 ComputeShadingChange(FfxFloat32x2 fUv) +{ + // NOTE: Here we re-apply jitter, will be reverted again when sampled in accumulation pass + const FfxFloat32x2 fShadingChangeUv = ClampUv(fUv - Jitter() / RenderSize(), ShadingChangeRenderSize(), ShadingChangeMaxRenderSize()); + const FfxFloat32 fShadingChange = ffxSaturate(SampleShadingChange(fShadingChangeUv)); + + return fShadingChange; +} + +void PrepareReactivity(FfxInt32x2 iPxPos) +{ + const FfxFloat32x2 fUv = (iPxPos + 0.5f) / RenderSize(); + const FfxFloat32x2 fMotionVector = LoadDilatedMotionVector(iPxPos); + + // Discard small mvs + const FfxFloat32 f4KVelocity = Get4KVelocity(fMotionVector); + + const FfxFloat32x2 fDilatedUv = fUv + fMotionVector; + const FfxFloat32 fDilatedDepth = LoadDilatedDepth(iPxPos); + const FfxFloat32 fDepthInMeters = GetViewSpaceDepthInMeters(fDilatedDepth); + + const FfxFloat32 fDisocclusion = ComputeDisocclusions(fUv, fMotionVector, GetViewSpaceDepth(fDilatedDepth)); + const FfxFloat32 fShadingChange = ffxMax(DilateReactiveMasks(iPxPos, fUv), ComputeShadingChange(fUv)); + + const FfxFloat32 fMotionDivergence = ComputeMotionDivergence(fUv, fMotionVector, fDilatedDepth); + const FfxFloat32 fDilatedTransparencyAndComposition = DilateTransparencyAndCompositionMasks(iPxPos, fUv); + const FfxFloat32 fFinalReactiveness = ffxMax(fMotionDivergence, fDilatedTransparencyAndComposition); + + const FfxFloat32 fAccumulation = UpdateAccumulation(iPxPos, fUv, fMotionVector, fDisocclusion, fShadingChange); + + FfxFloat32x4 fOutput; + fOutput[REACTIVE] = fFinalReactiveness; + fOutput[DISOCCLUSION] = fDisocclusion; + fOutput[SHADING_CHANGE] = fShadingChange; + fOutput[ACCUMULAION] = fAccumulation; + + StoreDilatedReactiveMasks(iPxPos, fOutput); + + const FfxFloat32 fLockStrength = ComputeThinFeatureConfidence(iPxPos); + if (fLockStrength > (1.0f / 100.0f)) + { + StoreNewLocks(ComputeHrPosFromLrPos(FfxInt32x2(iPxPos)), fLockStrength); + } +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h new file mode 100644 index 000000000..f48cffb93 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h @@ -0,0 +1,112 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#define GROUP_SIZE 8 +#define FSR_RCAS_DENOISE 1 + +#include "ffx_core.h" + +#if FFX_HALF && defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) + #define FSR_RCAS_PREFER_PAIRED_VERSION 1 +#else + #define FSR_RCAS_PREFER_PAIRED_VERSION 0 +#endif + +void WriteUpscaledOutput(FFX_MIN16_U2 iPxHrPos, FfxFloat32x3 fUpscaledColor) +{ + StoreUpscaledOutput(FFX_MIN16_I2(iPxHrPos), fUpscaledColor); +} + +#if FSR_RCAS_PREFER_PAIRED_VERSION + #define FSR_RCAS_HX2 1 + FfxFloat16x4 FsrRcasLoadHx2(FfxInt16x2 p) + { + return FfxFloat16x4(LoadRCAS_Input(p)); + } + void FsrRcasInputHx2(inout FfxFloat16x2 r, inout FfxFloat16x2 g, inout FfxFloat16x2 b) + { + FfxFloat32 e = Exposure(); + r = FfxFloat16x2(r * e); + g = FfxFloat16x2(g * e); + b = FfxFloat16x2(b * e); + } + + #include "fsr1/ffx_fsr1.h" + + void CurrFilterPaired(FFX_MIN16_U2 pos) + { + FfxFloat16x2 cr; + FfxFloat16x2 cg; + FfxFloat16x2 cb; + FsrRcasHx2(cr, cg, cb, pos, RCASConfig()); + FfxFloat32 InvExposure = 1.0f / Exposure(); + cr = FfxFloat16x2(cr * InvExposure); + cg = FfxFloat16x2(cg * InvExposure); + cb = FfxFloat16x2(cb * InvExposure); + WriteUpscaledOutput(pos, FfxFloat16x3(cr.x, cg.x, cb.x)); //TODO: fix type + pos.x += 8; + WriteUpscaledOutput(pos, FfxFloat16x3(cr.y, cg.y, cb.y)); //TODO: fix type + } +#else + #define FSR_RCAS_F 1 + FfxFloat32x4 FsrRcasLoadF(FfxInt32x2 p) + { + FfxFloat32x4 fColor = LoadRCAS_Input(p); + + fColor.rgb *= Exposure(); + + return fColor; + } + void FsrRcasInputF(inout FfxFloat32 r, inout FfxFloat32 g, inout FfxFloat32 b) {} + + #include "fsr1/ffx_fsr1.h" + + void CurrFilter(FFX_MIN16_U2 pos) + { + FfxFloat32x3 c; + FsrRcasF(c.r, c.g, c.b, pos, RCASConfig()); + + c /= Exposure(); + + WriteUpscaledOutput(pos, c); + } + +#endif // #if FSR_RCAS_PREFER_PAIRED_VERSION + +void RCAS(FfxUInt32x3 LocalThreadId, FfxUInt32x3 WorkGroupId, FfxUInt32x3 Dtid) +{ + // Do remapping of local xy in workgroup for a more PS-like swizzle pattern. + FfxUInt32x2 gxy = ffxRemapForQuad(LocalThreadId.x) + FfxUInt32x2(WorkGroupId.x << 4u, WorkGroupId.y << 4u); +#if FSR_RCAS_PREFER_PAIRED_VERSION + CurrFilterPaired(FFX_MIN16_U2(gxy)); + gxy.y += 8u; + CurrFilterPaired(FFX_MIN16_U2(gxy)); +#else + CurrFilter(FFX_MIN16_U2(gxy)); + gxy.x += 8u; + CurrFilter(FFX_MIN16_U2(gxy)); + gxy.y += 8u; + CurrFilter(FFX_MIN16_U2(gxy)); + gxy.x -= 8u; + CurrFilter(FFX_MIN16_U2(gxy)); +#endif +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h new file mode 100644 index 000000000..c72f40fb6 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h @@ -0,0 +1,79 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE +#define FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE 0 // Reference +#endif + +FfxFloat32x4 WrapHistory(FfxInt32x2 iPxSample) +{ + return LoadHistory(iPxSample); +} + +DeclareCustomFetchBicubicSamples(FetchHistorySamples, WrapHistory) +DeclareCustomTextureSample(HistorySample, FFX_FSR3UPSCALER_GET_LANCZOS_SAMPLER1D(FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE), FetchHistorySamples) + +#if FFX_HALF +FFX_MIN16_F4 WrapHistory16(FfxInt32x2 iPxSample) +{ + return FFX_MIN16_F4(LoadHistory(iPxSample)); +} + +DeclareCustomFetchBicubicSamplesMin16(FetchHistorySamples16, WrapHistory16) +DeclareCustomTextureSampleMin16(HistorySample16, FFX_FSR3UPSCALER_GET_LANCZOS_SAMPLER1D(FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE), FetchHistorySamples16) +#endif + +FfxFloat32x2 GetMotionVector(FfxInt32x2 iPxHrPos, FfxFloat32x2 fHrUv) +{ +#if FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS + const FfxFloat32x2 fDilatedMotionVector = LoadDilatedMotionVector(FFX_MIN16_I2(fHrUv * RenderSize())); +#else + const FfxFloat32x2 fDilatedMotionVector = LoadInputMotionVector(iPxHrPos); +#endif + + return fDilatedMotionVector; +} + +void ComputeReprojectedUVs(FFX_PARAMETER_INOUT AccumulationPassCommonParams params) +{ + params.fReprojectedHrUv = params.fHrUv + params.fMotionVector; + + params.bIsExistingSample = IsUvInside(params.fReprojectedHrUv); +} + +void ReprojectHistoryColor(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) + +{ +#if FFX_HALF && FFX_FSR3UPSCALER_OPTION_REPROJECT_SAMPLERS_USE_DATA_HALF + const FfxFloat32x4 fReprojectedHistory = FfxFloat32x4(HistorySample16(params.fReprojectedHrUv, UpscaleSize())); +#else + const FfxFloat32x4 fReprojectedHistory = HistorySample(params.fReprojectedHrUv, PreviousFrameUpscaleSize()); +#endif + + data.fHistoryColor = fReprojectedHistory.rgb; + data.fHistoryColor *= DeltaPreExposure(); + data.fHistoryColor *= Exposure(); + + data.fHistoryColor = RGBToYCoCg(data.fHistoryColor); + + data.fLock = fReprojectedHistory.w; +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h new file mode 100644 index 000000000..b3d8ddb17 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h @@ -0,0 +1,100 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FSR3UPSCALER_RESOURCES_H +#define FFX_FSR3UPSCALER_RESOURCES_H + +#if defined(FFX_CPU) || defined(FFX_GPU) +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_NULL 0 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_OPAQUE_ONLY 1 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_COLOR 2 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_MOTION_VECTORS 3 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_DEPTH 4 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_EXPOSURE 5 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_REACTIVE_MASK 6 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_TRANSPARENCY_AND_COMPOSITION_MASK 7 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_RECONSTRUCTED_PREVIOUS_NEAREST_DEPTH 8 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DILATED_MOTION_VECTORS 9 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DILATED_DEPTH 10 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_UPSCALED_COLOR 11 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_ACCUMULATION 12 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_NEW_LOCKS 13 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_HISTORY 14 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DEBUG_OUTPUT 15 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LANCZOS_LUT 16 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_ATOMIC_COUNT 17 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_UPSCALED_OUTPUT 18 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_RCAS_INPUT 19 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_ACCUMULATION_1 20 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_ACCUMULATION_2 21 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_UPSCALED_COLOR_1 22 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_UPSCALED_COLOR_2 23 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_DEFAULT_REACTIVITY 24 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_DEFAULT_TRANSPARENCY_AND_COMPOSITION 25 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DILATED_REACTIVE_MASKS 26 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS 27 // same as FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_0 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_0 27 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_1 28 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_2 29 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_3 30 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_4 31 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_5 32 + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_DEFAULT_EXPOSURE 33 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_FRAME_INFO 34 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_AUTOREACTIVE 35 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_AUTOCOMPOSITION_DEPRECATED 36 + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_HISTORY_1 37 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_HISTORY_2 38 + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_1 40 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_2 41 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SHADING_CHANGE 42 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_FARTHEST_DEPTH 43 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_FARTHEST_DEPTH_MIP1 44 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_CURRENT_LUMA 45 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_PREVIOUS_LUMA 46 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_INSTABILITY 48 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERMEDIATE_FP16x1 49 + + +// Shading change detection mip level setting, value must be in the range [FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_0, FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_12] +//#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_SHADING_CHANGE FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_4 +//#define FFX_FSR3UPSCALER_SHADING_CHANGE_MIP_LEVEL (FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_SHADING_CHANGE - FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE) + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_COUNT 60 + +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_FSR3UPSCALER 0 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_SPD 1 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_RCAS 2 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_GENREACTIVE 3 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_COUNT 4 + +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_APPLY_TONEMAP 1 +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_APPLY_INVERSETONEMAP 2 +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_APPLY_THRESHOLD 4 +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_USE_COMPONENTS_MAX 8 + +#endif // #if defined(FFX_CPU) || defined(FFX_GPU) + +#endif //!defined( FFX_FSR3UPSCALER_RESOURCES_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h new file mode 100644 index 000000000..7a723d556 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h @@ -0,0 +1,628 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FSR3UPSCALER_SAMPLE_H +#define FFX_FSR3UPSCALER_SAMPLE_H + +// suppress warnings +#ifdef FFX_HLSL +#pragma warning(disable: 4008) // potentially divide by zero +#endif //FFX_HLSL + +struct FetchedBilinearSamples { + + FfxFloat32x4 fColor00; + FfxFloat32x4 fColor10; + + FfxFloat32x4 fColor01; + FfxFloat32x4 fColor11; +}; + +struct FetchedBicubicSamples { + + FfxFloat32x4 fColor00; + FfxFloat32x4 fColor10; + FfxFloat32x4 fColor20; + FfxFloat32x4 fColor30; + + FfxFloat32x4 fColor01; + FfxFloat32x4 fColor11; + FfxFloat32x4 fColor21; + FfxFloat32x4 fColor31; + + FfxFloat32x4 fColor02; + FfxFloat32x4 fColor12; + FfxFloat32x4 fColor22; + FfxFloat32x4 fColor32; + + FfxFloat32x4 fColor03; + FfxFloat32x4 fColor13; + FfxFloat32x4 fColor23; + FfxFloat32x4 fColor33; +}; + +#if FFX_HALF +struct FetchedBilinearSamplesMin16 { + + FFX_MIN16_F4 fColor00; + FFX_MIN16_F4 fColor10; + + FFX_MIN16_F4 fColor01; + FFX_MIN16_F4 fColor11; +}; + +struct FetchedBicubicSamplesMin16 { + + FFX_MIN16_F4 fColor00; + FFX_MIN16_F4 fColor10; + FFX_MIN16_F4 fColor20; + FFX_MIN16_F4 fColor30; + + FFX_MIN16_F4 fColor01; + FFX_MIN16_F4 fColor11; + FFX_MIN16_F4 fColor21; + FFX_MIN16_F4 fColor31; + + FFX_MIN16_F4 fColor02; + FFX_MIN16_F4 fColor12; + FFX_MIN16_F4 fColor22; + FFX_MIN16_F4 fColor32; + + FFX_MIN16_F4 fColor03; + FFX_MIN16_F4 fColor13; + FFX_MIN16_F4 fColor23; + FFX_MIN16_F4 fColor33; +}; +#else //FFX_HALF +#define FetchedBicubicSamplesMin16 FetchedBicubicSamples +#define FetchedBilinearSamplesMin16 FetchedBilinearSamples +#endif //FFX_HALF + +FfxFloat32x4 Linear(FfxFloat32x4 A, FfxFloat32x4 B, FfxFloat32 t) +{ + return A + (B - A) * t; +} + +FfxFloat32x4 Bilinear(FetchedBilinearSamples BilinearSamples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Linear(BilinearSamples.fColor00, BilinearSamples.fColor10, fPxFrac.x); + FfxFloat32x4 fColorX1 = Linear(BilinearSamples.fColor01, BilinearSamples.fColor11, fPxFrac.x); + FfxFloat32x4 fColorXY = Linear(fColorX0, fColorX1, fPxFrac.y); + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Linear(FFX_MIN16_F4 A, FFX_MIN16_F4 B, FFX_MIN16_F t) +{ + return A + (B - A) * t; +} + +FFX_MIN16_F4 Bilinear(FetchedBilinearSamplesMin16 BilinearSamples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Linear(BilinearSamples.fColor00, BilinearSamples.fColor10, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Linear(BilinearSamples.fColor01, BilinearSamples.fColor11, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Linear(fColorX0, fColorX1, fPxFrac.y); + return fColorXY; +} +#endif + +FfxFloat32 Lanczos2NoClamp(FfxFloat32 x) +{ + const FfxFloat32 PI = 3.141592653589793f; // TODO: share SDK constants + return abs(x) < FSR3UPSCALER_EPSILON ? 1.f : (sin(PI * x) / (PI * x)) * (sin(0.5f * PI * x) / (0.5f * PI * x)); +} + +FfxFloat32 Lanczos2(FfxFloat32 x) +{ + x = ffxMin(abs(x), 2.0f); + return Lanczos2NoClamp(x); +} + +#if FFX_HALF + +#if 0 +FFX_MIN16_F Lanczos2NoClamp(FFX_MIN16_F x) +{ + const FFX_MIN16_F PI = FFX_MIN16_F(3.141592653589793f); // TODO: share SDK constants + return abs(x) < FFX_MIN16_F(FSR3UPSCALER_EPSILON) ? FFX_MIN16_F(1.f) : (sin(PI * x) / (PI * x)) * (sin(FFX_MIN16_F(0.5f) * PI * x) / (FFX_MIN16_F(0.5f) * PI * x)); +} +#endif + +FFX_MIN16_F Lanczos2(FFX_MIN16_F x) +{ + x = ffxMin(abs(x), FFX_MIN16_F(2.0f)); + return FFX_MIN16_F(Lanczos2NoClamp(x)); +} +#endif //FFX_HALF + +// FSR1 lanczos approximation. Input is x*x and must be <= 4. +FfxFloat32 Lanczos2ApproxSqNoClamp(FfxFloat32 x2) +{ + FfxFloat32 a = (2.0f / 5.0f) * x2 - 1; + FfxFloat32 b = (1.0f / 4.0f) * x2 - 1; + return ((25.0f / 16.0f) * a * a - (25.0f / 16.0f - 1)) * (b * b); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2ApproxSqNoClamp(FFX_MIN16_F x2) +{ + FFX_MIN16_F a = FFX_MIN16_F(2.0f / 5.0f) * x2 - FFX_MIN16_F(1); + FFX_MIN16_F b = FFX_MIN16_F(1.0f / 4.0f) * x2 - FFX_MIN16_F(1); + return (FFX_MIN16_F(25.0f / 16.0f) * a * a - FFX_MIN16_F(25.0f / 16.0f - 1)) * (b * b); +} + +#if defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) +FFX_MIN16_F2 PairedLanczos2ApproxSqNoClamp(FFX_MIN16_F2 x2) +{ + // Xbox ATG (Pavel): + // + // 2.0 * x2 - 5.0 25.0 25.0 - 16.0 (2.0 * x2 - 5.0)^2 - (3.0)^2 (2.0 * x2 - 8.0) * (2.0 * x2 - 2.0) (x2 - 4.0) * (x2 - 1.0) + // a = -------------- ==> ---- * a^2 - -------------- = ----------------------------- = ---------------------------------- = ----------------------- = b * (x2 - 1.0) + // 5.0 16.0 16.0 16.0 16.0 4.0 + // + // so we need to compute just (b * b) * (b * x2 - b), so we should get four packed instructions: 2 fma + 2 mul + // + + FFX_MIN16_F2 b = (0.25 * x2 - 1.0); + return (b * b) * (b * x2 - b); +} +#endif + +#endif //FFX_HALF + +FfxFloat32 Lanczos2ApproxSq(FfxFloat32 x2) +{ + x2 = ffxMin(x2, 4.0f); + return Lanczos2ApproxSqNoClamp(x2); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2ApproxSq(FFX_MIN16_F x2) +{ + x2 = ffxMin(x2, FFX_MIN16_F(4.0f)); + return Lanczos2ApproxSqNoClamp(x2); +} + +#if defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) +FFX_MIN16_F2 PairedLanczos2ApproxSq(FFX_MIN16_F2 x2) +{ + x2 = ffxMin(x2, FFX_MIN16_F2(4.0, 4.0)); + return PairedLanczos2ApproxSqNoClamp(x2); +} +#endif +#endif //FFX_HALF + +FfxFloat32 Lanczos2ApproxNoClamp(FfxFloat32 x) +{ + return Lanczos2ApproxSqNoClamp(x * x); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2ApproxNoClamp(FFX_MIN16_F x) +{ + return Lanczos2ApproxSqNoClamp(x * x); +} +#endif //FFX_HALF + +FfxFloat32 Lanczos2Approx(FfxFloat32 x) +{ + return Lanczos2ApproxSq(x * x); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2Approx(FFX_MIN16_F x) +{ + return Lanczos2ApproxSq(x * x); +} +#endif //FFX_HALF + +FfxFloat32 Lanczos2_UseLUT(FfxFloat32 x) +{ + return SampleLanczos2Weight(abs(x)); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2_UseLUT(FFX_MIN16_F x) +{ + return FFX_MIN16_F(SampleLanczos2Weight(abs(x))); +} +#endif //FFX_HALF + +FfxFloat32x4 Lanczos2_UseLUT(FfxFloat32x4 fColor0, FfxFloat32x4 fColor1, FfxFloat32x4 fColor2, FfxFloat32x4 fColor3, FfxFloat32 t) +{ + FfxFloat32 fWeight0 = Lanczos2_UseLUT(-1.f - t); + FfxFloat32 fWeight1 = Lanczos2_UseLUT(-0.f - t); + FfxFloat32 fWeight2 = Lanczos2_UseLUT(+1.f - t); + FfxFloat32 fWeight3 = Lanczos2_UseLUT(+2.f - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} +#if FFX_HALF +FFX_MIN16_F4 Lanczos2_UseLUT(FFX_MIN16_F4 fColor0, FFX_MIN16_F4 fColor1, FFX_MIN16_F4 fColor2, FFX_MIN16_F4 fColor3, FFX_MIN16_F t) +{ + FFX_MIN16_F fWeight0 = Lanczos2_UseLUT(FFX_MIN16_F(-1.f) - t); + FFX_MIN16_F fWeight1 = Lanczos2_UseLUT(FFX_MIN16_F(-0.f) - t); + FFX_MIN16_F fWeight2 = Lanczos2_UseLUT(FFX_MIN16_F(+1.f) - t); + FFX_MIN16_F fWeight3 = Lanczos2_UseLUT(FFX_MIN16_F(+2.f) - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} +#endif + +FfxFloat32x4 Lanczos2(FfxFloat32x4 fColor0, FfxFloat32x4 fColor1, FfxFloat32x4 fColor2, FfxFloat32x4 fColor3, FfxFloat32 t) +{ + FfxFloat32 fWeight0 = Lanczos2(-1.f - t); + FfxFloat32 fWeight1 = Lanczos2(-0.f - t); + FfxFloat32 fWeight2 = Lanczos2(+1.f - t); + FfxFloat32 fWeight3 = Lanczos2(+2.f - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} + +FfxFloat32x4 Lanczos2(FetchedBicubicSamples Samples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Lanczos2(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FfxFloat32x4 fColorX1 = Lanczos2(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FfxFloat32x4 fColorX2 = Lanczos2(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FfxFloat32x4 fColorX3 = Lanczos2(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FfxFloat32x4 fColorXY = Lanczos2(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FfxFloat32x4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FfxFloat32x4 fDeringingMin = fDeringingSamples[0]; + FfxFloat32x4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) { + + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2(FFX_MIN16_F4 fColor0, FFX_MIN16_F4 fColor1, FFX_MIN16_F4 fColor2, FFX_MIN16_F4 fColor3, FFX_MIN16_F t) +{ + FFX_MIN16_F fWeight0 = Lanczos2(FFX_MIN16_F(-1.f) - t); + FFX_MIN16_F fWeight1 = Lanczos2(FFX_MIN16_F(-0.f) - t); + FFX_MIN16_F fWeight2 = Lanczos2(FFX_MIN16_F(+1.f) - t); + FFX_MIN16_F fWeight3 = Lanczos2(FFX_MIN16_F(+2.f) - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} + +FFX_MIN16_F4 Lanczos2(FetchedBicubicSamplesMin16 Samples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Lanczos2(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Lanczos2(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FFX_MIN16_F4 fColorX2 = Lanczos2(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FFX_MIN16_F4 fColorX3 = Lanczos2(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Lanczos2(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FFX_MIN16_F4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FFX_MIN16_F4 fDeringingMin = fDeringingSamples[0]; + FFX_MIN16_F4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} +#endif //FFX_HALF + + +FfxFloat32x4 Lanczos2LUT(FetchedBicubicSamples Samples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Lanczos2_UseLUT(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FfxFloat32x4 fColorX1 = Lanczos2_UseLUT(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FfxFloat32x4 fColorX2 = Lanczos2_UseLUT(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FfxFloat32x4 fColorX3 = Lanczos2_UseLUT(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FfxFloat32x4 fColorXY = Lanczos2_UseLUT(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FfxFloat32x4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FfxFloat32x4 fDeringingMin = fDeringingSamples[0]; + FfxFloat32x4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) { + + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2LUT(FetchedBicubicSamplesMin16 Samples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Lanczos2_UseLUT(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Lanczos2_UseLUT(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FFX_MIN16_F4 fColorX2 = Lanczos2_UseLUT(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FFX_MIN16_F4 fColorX3 = Lanczos2_UseLUT(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Lanczos2_UseLUT(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FFX_MIN16_F4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FFX_MIN16_F4 fDeringingMin = fDeringingSamples[0]; + FFX_MIN16_F4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} +#endif //FFX_HALF + + + +FfxFloat32x4 Lanczos2Approx(FfxFloat32x4 fColor0, FfxFloat32x4 fColor1, FfxFloat32x4 fColor2, FfxFloat32x4 fColor3, FfxFloat32 t) +{ + FfxFloat32 fWeight0 = Lanczos2ApproxNoClamp(-1.f - t); + FfxFloat32 fWeight1 = Lanczos2ApproxNoClamp(-0.f - t); + FfxFloat32 fWeight2 = Lanczos2ApproxNoClamp(+1.f - t); + FfxFloat32 fWeight3 = Lanczos2ApproxNoClamp(+2.f - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2Approx(FFX_MIN16_F4 fColor0, FFX_MIN16_F4 fColor1, FFX_MIN16_F4 fColor2, FFX_MIN16_F4 fColor3, FFX_MIN16_F t) +{ + FFX_MIN16_F fWeight0 = Lanczos2ApproxNoClamp(FFX_MIN16_F(-1.f) - t); + FFX_MIN16_F fWeight1 = Lanczos2ApproxNoClamp(FFX_MIN16_F(-0.f) - t); + FFX_MIN16_F fWeight2 = Lanczos2ApproxNoClamp(FFX_MIN16_F(+1.f) - t); + FFX_MIN16_F fWeight3 = Lanczos2ApproxNoClamp(FFX_MIN16_F(+2.f) - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} +#endif //FFX_HALF + +FfxFloat32x4 Lanczos2Approx(FetchedBicubicSamples Samples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Lanczos2Approx(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FfxFloat32x4 fColorX1 = Lanczos2Approx(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FfxFloat32x4 fColorX2 = Lanczos2Approx(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FfxFloat32x4 fColorX3 = Lanczos2Approx(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FfxFloat32x4 fColorXY = Lanczos2Approx(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FfxFloat32x4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FfxFloat32x4 fDeringingMin = fDeringingSamples[0]; + FfxFloat32x4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2Approx(FetchedBicubicSamplesMin16 Samples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Lanczos2Approx(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Lanczos2Approx(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FFX_MIN16_F4 fColorX2 = Lanczos2Approx(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FFX_MIN16_F4 fColorX3 = Lanczos2Approx(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Lanczos2Approx(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FFX_MIN16_F4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FFX_MIN16_F4 fDeringingMin = fDeringingSamples[0]; + FFX_MIN16_F4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} +#endif + +// Clamp by offset direction. Assuming iPxSample is already in range and iPxOffset is compile time constant. +FfxInt32x2 ClampCoord(FfxInt32x2 iPxSample, FfxInt32x2 iPxOffset, FfxInt32x2 iTextureSize) +{ + FfxInt32x2 result = iPxSample + iPxOffset; + result.x = ffxMax(1, ffxMin(result.x, iTextureSize.x - 2)); + result.y = ffxMax(1, ffxMin(result.y, iTextureSize.y - 2)); + return result; +} +#if FFX_HALF +FFX_MIN16_I2 ClampCoord(FFX_MIN16_I2 iPxSample, FFX_MIN16_I2 iPxOffset, FFX_MIN16_I2 iTextureSize) +{ + FFX_MIN16_I2 result = iPxSample + iPxOffset; + result.x = ffxMax(FFX_MIN16_I(1), ffxMin(result.x, iTextureSize.x - FFX_MIN16_I(2))); + result.y = ffxMax(FFX_MIN16_I(1), ffxMin(result.y, iTextureSize.y - FFX_MIN16_I(2))); + return result; +} +#endif //FFX_HALF + + +#define DeclareCustomFetchBicubicSamplesWithType(SampleType, TextureType, AddrType, Name, LoadTexture) \ + SampleType Name(AddrType iPxSample, AddrType iTextureSize) \ + { \ + SampleType Samples; \ + \ + Samples.fColor00 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, -1), iTextureSize))); \ + Samples.fColor10 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, -1), iTextureSize))); \ + Samples.fColor20 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, -1), iTextureSize))); \ + Samples.fColor30 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, -1), iTextureSize))); \ + \ + Samples.fColor01 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, +0), iTextureSize))); \ + Samples.fColor11 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +0), iTextureSize))); \ + Samples.fColor21 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +0), iTextureSize))); \ + Samples.fColor31 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, +0), iTextureSize))); \ + \ + Samples.fColor02 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, +1), iTextureSize))); \ + Samples.fColor12 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +1), iTextureSize))); \ + Samples.fColor22 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +1), iTextureSize))); \ + Samples.fColor32 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, +1), iTextureSize))); \ + \ + Samples.fColor03 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, +2), iTextureSize))); \ + Samples.fColor13 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +2), iTextureSize))); \ + Samples.fColor23 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +2), iTextureSize))); \ + Samples.fColor33 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, +2), iTextureSize))); \ + \ + return Samples; \ + } + +#define DeclareCustomFetchBicubicSamples(Name, LoadTexture) \ + DeclareCustomFetchBicubicSamplesWithType(FetchedBicubicSamples, FfxFloat32x4, FfxInt32x2, Name, LoadTexture) + +#define DeclareCustomFetchBicubicSamplesMin16(Name, LoadTexture) \ + DeclareCustomFetchBicubicSamplesWithType(FetchedBicubicSamplesMin16, FFX_MIN16_F4, FfxInt32x2, Name, LoadTexture) + +#define DeclareCustomFetchBilinearSamplesWithType(SampleType, TextureType,AddrType, Name, LoadTexture) \ + SampleType Name(AddrType iPxSample, AddrType iTextureSize) \ + { \ + SampleType Samples; \ + Samples.fColor00 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +0), iTextureSize))); \ + Samples.fColor10 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +0), iTextureSize))); \ + Samples.fColor01 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +1), iTextureSize))); \ + Samples.fColor11 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +1), iTextureSize))); \ + return Samples; \ + } + +#define DeclareCustomFetchBilinearSamples(Name, LoadTexture) \ + DeclareCustomFetchBilinearSamplesWithType(FetchedBilinearSamples, FfxFloat32x4, FfxInt32x2, Name, LoadTexture) + +#define DeclareCustomFetchBilinearSamplesMin16(Name, LoadTexture) \ + DeclareCustomFetchBilinearSamplesWithType(FetchedBilinearSamplesMin16, FFX_MIN16_F4, FfxInt32x2, Name, LoadTexture) + +// BE CAREFUL: there is some precision issues and (3253, 125) leading to (3252.9989778, 125.001102) +// is common, so iPxSample can "jitter" +#define DeclareCustomTextureSample(Name, InterpolateSamples, FetchSamples) \ + FfxFloat32x4 Name(FfxFloat32x2 fUvSample, FfxInt32x2 iTextureSize) \ + { \ + FfxFloat32x2 fPxSample = (fUvSample * FfxFloat32x2(iTextureSize)) - FfxFloat32x2(0.5f, 0.5f); \ + FfxFloat32x2 fPxFrac = ffxFract(fPxSample); \ + /* Clamp base coords */ \ + fPxSample.x = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.x-1), fPxSample.x)); \ + fPxSample.y = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.y-1), fPxSample.y)); \ + /* */ \ + FfxInt32x2 iPxSample = FfxInt32x2(floor(fPxSample)); \ + FfxFloat32x4 fColorXY = FfxFloat32x4(InterpolateSamples(FetchSamples(iPxSample, iTextureSize), fPxFrac)); \ + return fColorXY; \ + } + +#define DeclareCustomTextureSampleMin16(Name, InterpolateSamples, FetchSamples) \ + FFX_MIN16_F4 Name(FfxFloat32x2 fUvSample, FfxInt32x2 iTextureSize) \ + { \ + FfxFloat32x2 fPxSample = (fUvSample * FfxFloat32x2(iTextureSize)) - FfxFloat32x2(0.5f, 0.5f); \ + FFX_MIN16_F2 fPxFrac = FFX_MIN16_F2(ffxFract(fPxSample)); \ + /* Clamp base coords */ \ + fPxSample.x = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.x), fPxSample.x)); \ + fPxSample.y = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.y), fPxSample.y)); \ + /* */ \ + FfxInt32x2 iPxSample = FfxInt32x2(floor(fPxSample)); \ + FFX_MIN16_F4 fColorXY = FFX_MIN16_F4(InterpolateSamples(FetchSamples(iPxSample, iTextureSize), fPxFrac)); \ + return fColorXY; \ + } + +#define FFX_FSR3UPSCALER_CONCAT_ID(x, y) x ## y +#define FFX_FSR3UPSCALER_CONCAT(x, y) FFX_FSR3UPSCALER_CONCAT_ID(x, y) +#define FFX_FSR3UPSCALER_SAMPLER_1D_0 Lanczos2 +#define FFX_FSR3UPSCALER_SAMPLER_1D_1 Lanczos2LUT +#define FFX_FSR3UPSCALER_SAMPLER_1D_2 Lanczos2Approx + +#define FFX_FSR3UPSCALER_GET_LANCZOS_SAMPLER1D(x) FFX_FSR3UPSCALER_CONCAT(FFX_FSR3UPSCALER_SAMPLER_1D_, x) + +#endif //!defined( FFX_FSR3UPSCALER_SAMPLE_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h new file mode 100644 index 000000000..2eb23aacd --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h @@ -0,0 +1,68 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FFX_STATIC const FfxInt32 s_MipLevelsToUse = 3; + +struct ShadingChangeLumaInfo +{ + FfxFloat32 fSamples[s_MipLevelsToUse]; +}; + +ShadingChangeLumaInfo ComputeShadingChangeLuma(FfxInt32x2 iPxPos, FfxFloat32x2 fUv, const FfxInt32x2 iCurrentSize) +{ + ShadingChangeLumaInfo info; + + const FfxFloat32x2 fMipUv = ClampUv(fUv, ShadingChangeRenderSize(), GetSPDMipDimensions(0)); + + FFX_UNROLL + for (FfxInt32 iMipLevel = iShadingChangeMipStart; iMipLevel < s_MipLevelsToUse; iMipLevel++) { + + const FfxFloat32x2 fSample = SampleSPDMipLevel(fMipUv, iMipLevel); + + info.fSamples[iMipLevel] = abs(fSample.x * fSample.y); + } + + return info; +} + +void ShadingChange(FfxInt32x2 iPxPos) +{ + if (IsOnScreen(FfxInt32x2(iPxPos), ShadingChangeRenderSize())) { + + const FfxFloat32x2 fUv = (iPxPos + 0.5f) / ShadingChangeRenderSize(); + const FfxFloat32x2 fUvJittered = fUv + Jitter() / RenderSize(); + + const ShadingChangeLumaInfo info = ComputeShadingChangeLuma(iPxPos, fUvJittered, ShadingChangeRenderSize()); + + const FfxFloat32 fScale = 1.0f + iShadingChangeMipStart / s_MipLevelsToUse; + FfxFloat32 fShadingChange = 0.0f; + FFX_UNROLL + for (int iMipLevel = iShadingChangeMipStart; iMipLevel < s_MipLevelsToUse; iMipLevel++) + { + if (info.fSamples[iMipLevel] > 0) { + fShadingChange = ffxMax(fShadingChange, info.fSamples[iMipLevel]) * fScale; + } + } + + StoreShadingChange(iPxPos, ffxSaturate(fShadingChange)); + } +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h new file mode 100644 index 000000000..63ca5d6d5 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h @@ -0,0 +1,297 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FFX_GROUPSHARED FfxUInt32 spdCounter; + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + SPD_IncreaseAtomicCounter(spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} + +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + SPD_ResetAtomicCounter(); +} + +#ifndef SPD_PACKED_ONLY +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FFX_STATIC const FfxInt32 DIFFERENCE = 0; +FFX_STATIC const FfxInt32 SIGN_SUM = 1; +FFX_STATIC const FfxInt32 MIP0_INDICATOR = 2; + +FfxFloat32x2 Sort2(FfxFloat32x2 v) +{ + return FfxFloat32x2(ffxMin(v.x, v.y), ffxMax(v.x, v.y)); +} + +struct SampleSet +{ + FfxFloat32 fSamples[SHADING_CHANGE_SET_SIZE]; +}; + +#define CompareSwap(i, j) \ +{ \ +FfxFloat32 fTmp = ffxMin(fSet.fSamples[i], fSet.fSamples[j]);\ +fSet.fSamples[j] = ffxMax(fSet.fSamples[i], fSet.fSamples[j]);\ +fSet.fSamples[i] = fTmp;\ +} + +#if SHADING_CHANGE_SET_SIZE == 5 +FFX_STATIC const FfxInt32x2 iSampleOffsets[5] = {FfxInt32x2(+0, +0), FfxInt32x2(-1, +0), FfxInt32x2(+1, +0), FfxInt32x2(+0, -1), FfxInt32x2(+0, +1)}; + +void SortSet(FFX_PARAMETER_INOUT SampleSet fSet) +{ + CompareSwap(0, 3); + CompareSwap(1, 4); + CompareSwap(0, 2); + CompareSwap(1, 3); + CompareSwap(0, 1); + CompareSwap(2, 4); + CompareSwap(1, 2); + CompareSwap(3, 4); + CompareSwap(2, 3); +} +#endif + +FfxFloat32 ComputeMinimumDifference(FfxInt32x2 iPxPos, SampleSet fSet0, SampleSet fSet1) +{ + FfxFloat32 fMinDiff = FSR3UPSCALER_FP16_MAX - 1; + FfxInt32 a = 0; + FfxInt32 b = 0; + + SortSet(fSet0); + SortSet(fSet1); + + const FfxFloat32 fMax = ffxMin(fSet0.fSamples[SHADING_CHANGE_SET_SIZE-1], fSet1.fSamples[SHADING_CHANGE_SET_SIZE-1]); + + if (fMax > FSR3UPSCALER_FP32_MIN) { + + FFX_UNROLL + for (FfxInt32 i = 0; i < SHADING_CHANGE_SET_SIZE && (fMinDiff < FSR3UPSCALER_FP16_MAX); i++) { + + FfxFloat32 fDiff = fSet0.fSamples[a] - fSet1.fSamples[b]; + + if (abs(fDiff) > FSR3UPSCALER_FP16_MIN) { + + fDiff = sign(fDiff) * (1.0f - MinDividedByMax(fSet0.fSamples[a], fSet1.fSamples[b])); + + fMinDiff = (abs(fDiff) < abs(fMinDiff)) ? fDiff : fMinDiff; + + a += FfxInt32(fSet0.fSamples[a] < fSet1.fSamples[b]); + b += FfxInt32(fSet0.fSamples[a] >= fSet1.fSamples[b]); + } + else + { + fMinDiff = FSR3UPSCALER_FP16_MAX; + } + } + } + + return fMinDiff * FfxFloat32(fMinDiff < (FSR3UPSCALER_FP16_MAX - 1)); +} + +SampleSet GetCurrentLumaBilinearSamples(FfxFloat32x2 fUv) +{ + const FfxFloat32x2 fUvJittered = fUv + Jitter() / RenderSize(); + const FfxInt32x2 iBasePos = FfxInt32x2(floor(fUvJittered * RenderSize())); + + SampleSet fSet; + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < SHADING_CHANGE_SET_SIZE; iSampleIndex++) { + const FfxInt32x2 iSamplePos = ClampLoad(iBasePos, iSampleOffsets[iSampleIndex], RenderSize()); + fSet.fSamples[iSampleIndex] = LoadCurrentLuma(iSamplePos) * Exposure(); + fSet.fSamples[iSampleIndex] = ffxPow(fSet.fSamples[iSampleIndex], fShadingChangeSamplePow); + fSet.fSamples[iSampleIndex] = ffxMax(fSet.fSamples[iSampleIndex], FSR3UPSCALER_EPSILON); + } + + return fSet; +} + +struct PreviousLumaBilinearSamplesData +{ + SampleSet fSet; + FfxBoolean bIsExistingSample; +}; + +PreviousLumaBilinearSamplesData GetPreviousLumaBilinearSamples(FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector) +{ + PreviousLumaBilinearSamplesData data; + + const FfxFloat32x2 fUvJittered = fUv + PreviousFrameJitter() / PreviousFrameRenderSize(); + const FfxFloat32x2 fReprojectedUv = fUvJittered + fMotionVector; + + data.bIsExistingSample = IsUvInside(fReprojectedUv); + + if (data.bIsExistingSample) { + + const FfxInt32x2 iBasePos = FfxInt32x2(floor(fReprojectedUv * PreviousFrameRenderSize())); + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < SHADING_CHANGE_SET_SIZE; iSampleIndex++) { + + const FfxInt32x2 iSamplePos = ClampLoad(iBasePos, iSampleOffsets[iSampleIndex], PreviousFrameRenderSize()); + data.fSet.fSamples[iSampleIndex] = LoadPreviousLuma(iSamplePos) * DeltaPreExposure() * Exposure(); + data.fSet.fSamples[iSampleIndex] = ffxPow(data.fSet.fSamples[iSampleIndex], fShadingChangeSamplePow); + data.fSet.fSamples[iSampleIndex] = ffxMax(data.fSet.fSamples[iSampleIndex], FSR3UPSCALER_EPSILON); + } + } + + return data; +} + +FfxFloat32 ComputeDiff(FfxInt32x2 iPxPos, FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector) +{ + FfxFloat32 fMinDiff = 0.0f; + + const SampleSet fCurrentSamples = GetCurrentLumaBilinearSamples(fUv); + const PreviousLumaBilinearSamplesData previousData = GetPreviousLumaBilinearSamples(fUv, fMotionVector); + + if (previousData.bIsExistingSample) { + fMinDiff = ComputeMinimumDifference(iPxPos, fCurrentSamples, previousData.fSet); + } + + return fMinDiff; +} + +FfxFloat32x4 SpdLoadSourceImage(FfxFloat32x2 iPxPos, FfxUInt32 slice) +{ + const FfxInt32x2 iPxSamplePos = ClampLoad(FfxInt32x2(iPxPos), FfxInt32x2(0, 0), FfxInt32x2(RenderSize())); + const FfxFloat32x2 fDilatedMotionVector = LoadDilatedMotionVector(iPxSamplePos); + const FfxFloat32x2 fUv = (iPxSamplePos + 0.5f) / RenderSize(); + + const FfxFloat32 fScaledAndSignedLumaDiff = ComputeDiff(iPxSamplePos, fUv, fDilatedMotionVector); + + FfxFloat32x4 fOutput = FfxFloat32x4(0.0f, 0.0f, 0.0f, 0.0f); + fOutput[DIFFERENCE] = fScaledAndSignedLumaDiff; + fOutput[SIGN_SUM] = (fScaledAndSignedLumaDiff != 0.0f) ? sign(fScaledAndSignedLumaDiff) : 0.0f; + fOutput[MIP0_INDICATOR] = 1.0f; + + return fOutput; +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return FfxFloat32x4(RWLoadPyramid(tex, 5), 0, 0); +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return (v0 + v1 + v2 + v3) * 0.25f; +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + if (index >= iShadingChangeMipStart) + { + StorePyramid(pix, outValue.xy, index); + } +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +#endif + +// define fetch and store functions Packed +#if FFX_HALF + +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateRG[16][16]; +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateBA[16][16]; + +FfxFloat16x4 SpdLoadSourceImageH(FfxFloat32x2 tex, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +FfxFloat16x4 SpdLoadH(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +void SpdStoreH(FfxInt32x2 p, FfxFloat16x4 value, FfxUInt32 mip, FfxUInt32 slice) +{ +} + +FfxFloat16x4 SpdLoadIntermediateH(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat16x4( + spdIntermediateRG[x][y].x, + spdIntermediateRG[x][y].y, + spdIntermediateBA[x][y].x, + spdIntermediateBA[x][y].y); +} + +void SpdStoreIntermediateH(FfxUInt32 x, FfxUInt32 y, FfxFloat16x4 value) +{ + spdIntermediateRG[x][y] = value.xy; + spdIntermediateBA[x][y] = value.zw; +} + +FfxFloat16x4 SpdReduce4H(FfxFloat16x4 v0, FfxFloat16x4 v1, FfxFloat16x4 v2, FfxFloat16x4 v3) +{ + return (v0 + v1 + v2 + v3) * FfxFloat16(0.25); +} +#endif + +#include "spd/ffx_spd.h" + +void ComputeShadingChangePyramid(FfxUInt32x3 WorkGroupId, FfxUInt32 LocalThreadIndex) +{ +#if FFX_HALF + SpdDownsampleH( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#else + SpdDownsample( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#endif +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h new file mode 100644 index 000000000..801a0a907 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h @@ -0,0 +1,644 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void Deringing(RectificationBox clippingBox, FFX_PARAMETER_INOUT FfxFloat32x3 fColor) +{ + fColor = clamp(fColor, clippingBox.aabbMin, clippingBox.aabbMax); +} + +#ifndef FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE +#define FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE 2 // Approximate +#endif + +FfxFloat32 GetUpsampleLanczosWeight(FfxFloat32x2 fSrcSampleOffset, FfxFloat32 fKernelWeight) +{ + FfxFloat32x2 fSrcSampleOffsetBiased = fSrcSampleOffset * fKernelWeight.xx; +#if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 0 // LANCZOS_TYPE_REFERENCE + FfxFloat32 fSampleWeight = Lanczos2(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 1 // LANCZOS_TYPE_LUT + FfxFloat32 fSampleWeight = Lanczos2_UseLUT(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + FfxFloat32 fSampleWeight = Lanczos2ApproxSq(dot(fSrcSampleOffsetBiased, fSrcSampleOffsetBiased)); +#else +#error "Invalid Lanczos type" +#endif + return fSampleWeight; +} + +#if FFX_HALF +FFX_MIN16_F GetUpsampleLanczosWeight(FFX_MIN16_F2 fSrcSampleOffset, FFX_MIN16_F fKernelWeight) +{ + FFX_MIN16_F2 fSrcSampleOffsetBiased = fSrcSampleOffset * fKernelWeight.xx; +#if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 0 // LANCZOS_TYPE_REFERENCE + FFX_MIN16_F fSampleWeight = Lanczos2(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 1 // LANCZOS_TYPE_LUT + FFX_MIN16_F fSampleWeight = Lanczos2_UseLUT(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + FFX_MIN16_F fSampleWeight = Lanczos2ApproxSq(dot(fSrcSampleOffsetBiased, fSrcSampleOffsetBiased)); + + // To Test: Save reciproqual sqrt compute + // FfxFloat32 fSampleWeight = Lanczos2Sq_UseLUT(dot(fSrcSampleOffsetBiased, fSrcSampleOffsetBiased)); +#else +#error "Invalid Lanczos type" +#endif + return fSampleWeight; +} +#endif + +FfxFloat32 ComputeMaxKernelWeight(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) { + + const FfxFloat32 fKernelSizeBias = 1.0f + (1.0f / FfxFloat32x2(DownscaleFactor()) - 1.0f).x; + + return ffxMin(FfxFloat32(1.99f), fKernelSizeBias); +} + +FfxFloat32x3 LoadPreparedColor(FfxInt32x2 iSamplePos) +{ + const FfxFloat32x3 fRgb = ffxMax(FfxFloat32x3(0, 0, 0), LoadInputColor(iSamplePos)) * Exposure(); + const FfxFloat32x3 fPreparedYCoCg = RGBToYCoCg(fRgb); + + return fPreparedYCoCg; +} + +#if FFX_HALF && (FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2) && defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) +#define FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS 1 +#else +#define FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS 0 +#endif + +#if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + +void LoadPreparedColorPairedRgb(FFX_PARAMETER_OUT FFX_MIN16_F2 r, + FFX_PARAMETER_OUT FFX_MIN16_F2 g, + FFX_PARAMETER_OUT FFX_MIN16_F2 b, + FfxInt32x2 iSamplePos0, + FfxInt32x2 iSamplePos1) +{ + const FFX_MIN16_F3 sample0 = FFX_MIN16_F3(LoadInputColor(iSamplePos0)); + const FFX_MIN16_F3 sample1 = FFX_MIN16_F3(LoadInputColor(iSamplePos1)); + + r = ffxMax(FFX_MIN16_F2(0, 0), FFX_MIN16_F2(sample0.r, sample1.r)); + g = ffxMax(FFX_MIN16_F2(0, 0), FFX_MIN16_F2(sample0.g, sample1.g)); + b = ffxMax(FFX_MIN16_F2(0, 0), FFX_MIN16_F2(sample0.b, sample1.b)); + + r = FFX_MIN16_F2(r * Exposure()); + g = FFX_MIN16_F2(g * Exposure()); + b = FFX_MIN16_F2(b * Exposure()); +} + +void TonemapPaired(FFX_PARAMETER_INOUT FFX_MIN16_F2 r, FFX_PARAMETER_INOUT FFX_MIN16_F2 g, FFX_PARAMETER_INOUT FFX_MIN16_F2 b) +{ + FFX_MIN16_F2 denomF16 = ffxMax(ffxMax(ffxMax(0.0, r), g), b) + FFX_MIN16_F2(1.0, 1.0); + + // NOTE: expect 2 x v_cvt_f32_f16 + FfxFloat32x2 denomF32 = FfxFloat32x2(denomF16); + // NOTE: expect 2 x v_rcp_f32 + FfxFloat32x2 normF32 = FfxFloat32x2(1.0, 1.0) / denomF32; + // NOTE: expect 2 x v_cvt_f16_f32 + FFX_MIN16_F2 normF16 = FFX_MIN16_F2(normF32); + + r *= normF16; + g *= normF16; + b *= normF16; +} + +void RGBToYCoCgPaired(FFX_PARAMETER_INOUT FFX_MIN16_F2 r, FFX_PARAMETER_INOUT FFX_MIN16_F2 g, FFX_PARAMETER_INOUT FFX_MIN16_F2 b) +{ + /** + * NOTE: given the following conversion + * + * fYCoCg = FfxFloat32x3( + * 0.25f * fRgb.r + 0.5f * fRgb.g + 0.25f * fRgb.b, + * 0.5f * fRgb.r - 0.5f * fRgb.b, + * -0.25f * fRgb.r + 0.5f * fRgb.g - 0.25f * fRgb.b); + * + * it's possible to notice that we can compute: + * RplusBdiv4 = 0.25 * (R + B) + * + * so everything else is computed in 3 instructions + * Y = G * 0.5 + RplusBdiv4 + * Co = 2 * RplusBdiv4 - G + * Cg = G * 0.5 - RplusBdiv4 + */ + + // NOTE: expect v_pk_add_f32 + v_pk_mul_f32 + FFX_MIN16_F2 RplusBdiv4 = (r + b) * 0.25; + FFX_MIN16_F2 G = g; + FFX_MIN16_F2 B = b; + + // NOTE: expect 3x v_pk_fma_f32 + r = G * 0.5 + RplusBdiv4; + g = RplusBdiv4 * 2.0 - B; + b = G * 0.5 - RplusBdiv4; +} + +FFX_MIN16_F2 Compute3x3SamplesMinMaxPaired(FFX_PARAMETER_IN FFX_MIN16_F2 sampleCenter, + FFX_PARAMETER_IN FFX_MIN16_F2 sample0, + FFX_PARAMETER_IN FFX_MIN16_F2 sample1, + FFX_PARAMETER_IN FFX_MIN16_F2 sample2, + FFX_PARAMETER_IN FFX_MIN16_F2 sample3) +{ + FFX_MIN16_F2 twoMinValues = ffxMin(ffxMin(sample0, sample1), ffxMin(sample2, sample3)); + FFX_MIN16_F2 twoMaxValues = ffxMax(ffxMax(sample0, sample1), ffxMax(sample2, sample3)); + + return FFX_MIN16_F2( + ffxMin3Half(twoMinValues.x, twoMinValues.y, sampleCenter.x), + ffxMax3Half(twoMaxValues.x, twoMaxValues.y, sampleCenter.x) + ); +} + + +FFX_MIN16_F2 Bool2ToFloat16x2(bool x, bool y) +{ + uint lo = x ? 0x00003c00 : 0x00000000; + uint hi = y ? 0x3c000000 : 0x00000000; + return FFX_MIN16_F2(__XB_AsHalf(lo).x, __XB_AsHalf(hi).y); +} + +struct PairedRectificationBoxAndAccumulatedColorAndWeight +{ + FFX_MIN16_F2 boxCenterR; + FFX_MIN16_F2 boxCenterG; + FFX_MIN16_F2 boxCenterB; + + FFX_MIN16_F2 boxVecR; + FFX_MIN16_F2 boxVecG; + FFX_MIN16_F2 boxVecB; + + FFX_MIN16_F2 fBoxCenterWeight; + + FFX_MIN16_F2 fColorR; + FFX_MIN16_F2 fColorG; + FFX_MIN16_F2 fColorB; + FFX_MIN16_F2 fWeight; + + FFX_MIN16_F fKernelBiasSq; + FFX_MIN16_F fRectificationCurveBias; + + void setKernelBiasAndRectificationCurveBias(FfxFloat32 kernelBias, FfxFloat32 rectificationCurveBias) + { + fKernelBiasSq = FFX_MIN16_F(kernelBias * kernelBias); + fRectificationCurveBias = FFX_MIN16_F(rectificationCurveBias); + } + + void initUpscaledColor(FFX_MIN16_F fSrcSampleOffsetSq, FFX_MIN16_F fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + #if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + const FFX_MIN16_F2 LanczosUpsampleWeight = FFX_MIN16_F2( + PairedLanczos2ApproxSq(fSrcSampleOffsetSq * fKernelBiasSq).x, + 0.0 + ); + #else + #error "Only LANCZOS_TYPE_APPROXIMATE is supported in paired version so far" + #endif + const FFX_MIN16_F2 fSampleWeight = fOnScreenWeight * LanczosUpsampleWeight; + + fColorR = sampleR * fSampleWeight; + fColorG = sampleG * fSampleWeight; + fColorB = sampleB * fSampleWeight; + fWeight = fSampleWeight; + } + + void initBox(FFX_MIN16_F fSrcSampleOffsetSq, FFX_MIN16_F fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + const FFX_MIN16_F2 fBoxSampleWeight = FFX_MIN16_F2( + exp(fRectificationCurveBias * fSrcSampleOffsetSq) * fOnScreenWeight, + 0.0 + ); + + FFX_MIN16_F2 weightedSampleR = sampleR * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleG = sampleG * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleB = sampleB * fBoxSampleWeight; + + boxCenterR = weightedSampleR; + boxCenterG = weightedSampleG; + boxCenterB = weightedSampleB; + + boxVecR = sampleR * weightedSampleR; + boxVecG = sampleG * weightedSampleG; + boxVecB = sampleB * weightedSampleB; + + fBoxCenterWeight = fBoxSampleWeight; + } + + void addUpscaledColorSample(FFX_MIN16_F2 fSrcSampleOffsetSq, FFX_MIN16_F2 fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + #if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + const FFX_MIN16_F2 LanczosUpsampleWeight = PairedLanczos2ApproxSq(fSrcSampleOffsetSq * fKernelBiasSq); + #else + #error "Only LANCZOS_TYPE_APPROXIMATE is supported in paired version so far" + #endif + const FFX_MIN16_F2 fSampleWeight = fOnScreenWeight * LanczosUpsampleWeight; + + fColorR += sampleR * fSampleWeight; + fColorG += sampleG * fSampleWeight; + fColorB += sampleB * fSampleWeight; + fWeight += fSampleWeight; + } + + void addBoxSample(FFX_MIN16_F2 fSrcSampleOffsetSq, FFX_MIN16_F2 fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + // NOTE: ideally expect here 2x v_fma_mix + 2x v_exp_f32 + 2x v_fma_mix + const FFX_MIN16_F2 fBoxSampleWeight = exp(fRectificationCurveBias * fSrcSampleOffsetSq) * fOnScreenWeight; + + FFX_MIN16_F2 weightedSampleR = sampleR * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleG = sampleG * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleB = sampleB * fBoxSampleWeight; + + boxCenterR += weightedSampleR; + boxCenterG += weightedSampleG; + boxCenterB += weightedSampleB; + + boxVecR += sampleR * weightedSampleR; + boxVecG += sampleG * weightedSampleG; + boxVecB += sampleB * weightedSampleB; + + fBoxCenterWeight += fBoxSampleWeight; + } + + void finalizeUpscaledColor(FFX_PARAMETER_OUT FfxFloat32x4 upscaledColorAndWeight) + { + upscaledColorAndWeight.r = fColorR.x + fColorR.y; + upscaledColorAndWeight.g = fColorG.x + fColorG.y; + upscaledColorAndWeight.b = fColorB.x + fColorB.y; + + upscaledColorAndWeight.a = fWeight.x + fWeight.y; + } + + void finalizeBox(FFX_PARAMETER_OUT FfxFloat32x2 boxCenterAndVecR, + FFX_PARAMETER_OUT FfxFloat32x2 boxCenterAndVecG, + FFX_PARAMETER_OUT FfxFloat32x2 boxCenterAndVecB, + FFX_PARAMETER_OUT FfxFloat32 boxCenterWeight) + { + boxCenterAndVecR = FfxFloat32x2(boxCenterR.x + boxCenterR.y, boxVecR.x + boxVecR.y); + boxCenterAndVecG = FfxFloat32x2(boxCenterG.x + boxCenterG.y, boxVecG.x + boxVecG.y); + boxCenterAndVecB = FfxFloat32x2(boxCenterB.x + boxCenterB.y, boxVecB.x + boxVecB.y); + + boxCenterWeight = fBoxCenterWeight.x + fBoxCenterWeight.y; + } +}; +#endif // #if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + +void ComputeUpsampledColorAndWeight(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + // We compute a sliced lanczos filter with 2 lobes (other slices are accumulated temporaly) + const FfxFloat32x2 fDstOutputPos = FfxFloat32x2(params.iPxHrPos) + FFX_BROADCAST_FLOAT32X2(0.5f); + const FfxFloat32x2 fSrcOutputPos = fDstOutputPos * DownscaleFactor(); + const FfxInt32x2 iSrcInputPos = FfxInt32x2(floor(fSrcOutputPos)); + const FfxFloat32x2 fSrcUnjitteredPos = (FfxFloat32x2(iSrcInputPos) + FfxFloat32x2(0.5f, 0.5f)) - Jitter(); // This is the un-jittered position of the sample at offset 0,0 + const FfxFloat32x2 fBaseSampleOffset = FfxFloat32x2(fSrcUnjitteredPos - fSrcOutputPos); + + FfxInt32x2 offsetTL; + offsetTL.x = (fSrcUnjitteredPos.x > fSrcOutputPos.x) ? FfxInt32(-2) : FfxInt32(-1); + offsetTL.y = (fSrcUnjitteredPos.y > fSrcOutputPos.y) ? FfxInt32(-2) : FfxInt32(-1); + + //Load samples + // If fSrcUnjitteredPos.y > fSrcOutputPos.y, indicates offsetTL.y = -2, sample offset Y will be [-2, 1], clipbox will be rows [1, 3]. + // Flip row# for sampling offset in this case, so first 0~2 rows in the sampled array can always be used for computing the clipbox. + // This reduces branch or cmove on sampled colors, but moving this overhead to sample position / weight calculation time which apply to less values. + const FfxBoolean bFlipRow = fSrcUnjitteredPos.y > fSrcOutputPos.y; + const FfxBoolean bFlipCol = fSrcUnjitteredPos.x > fSrcOutputPos.x; + const FfxFloat32x2 fOffsetTL = FfxFloat32x2(offsetTL); + + const FfxBoolean bIsInitialSample = (params.fAccumulation == 0.0f); + +#if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + // Unroll the loop to load samples on Scarlett to help the shader compiler + const FFX_MIN16_F2 fSampleOffsetX02 = __XB_AsHalf(bFlipCol ? __XB_AsUInt(FFX_MIN16_F2( 1, -1)) : __XB_AsUInt(FFX_MIN16_F2(-1, 1))); + const FFX_MIN16_F2 fSampleOffsetY02 = __XB_AsHalf(bFlipRow ? __XB_AsUInt(FFX_MIN16_F2( 1, -1)) : __XB_AsUInt(FFX_MIN16_F2(-1, 1))); + + typedef FfxInt32 FfxTexCoordI; + typedef FfxInt32x2 FfxTexCoordI2; + + const FfxTexCoordI2 iSrcSamplePosX01 = FfxTexCoordI2(iSrcInputPos.xx) + (bFlipCol ? FfxTexCoordI2( 1, 0) : FfxTexCoordI2(-1, 0)); + const FfxTexCoordI2 iSrcSamplePosX23 = FfxTexCoordI2(iSrcInputPos.xx) + (bFlipCol ? FfxTexCoordI2(-1, -2) : FfxTexCoordI2( 1, 2)); + + const FfxTexCoordI2 iSrcSamplePosY01 = FfxTexCoordI2(iSrcInputPos.yy) + (bFlipRow ? FfxTexCoordI2( 1, 0) : FfxTexCoordI2(-1, 0)); + const FfxTexCoordI2 iSrcSamplePosY23 = FfxTexCoordI2(iSrcInputPos.yy) + (bFlipRow ? FfxTexCoordI2(-1, -2) : FfxTexCoordI2( 1, 2)); + + const FfxTexCoordI2 renderSizeLastTexelCoord = FfxTexCoordI2(RenderSize()) - FfxTexCoordI2(1, 1); + + const FfxTexCoordI2 iSrcSamplePosX01Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosX01.x, 0, renderSizeLastTexelCoord.x), + __XB_Med3_I32(iSrcSamplePosX01.y, 0, renderSizeLastTexelCoord.x) + ); + + const FfxTexCoordI2 iSrcSamplePosX23Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosX23.x, 0, renderSizeLastTexelCoord.x), + __XB_Med3_I32(iSrcSamplePosX23.y, 0, renderSizeLastTexelCoord.x) + ); + + const FfxTexCoordI2 iSrcSamplePosY01Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosY01.x, 0, renderSizeLastTexelCoord.y), + __XB_Med3_I32(iSrcSamplePosY01.y, 0, renderSizeLastTexelCoord.y) + ); + + const FfxTexCoordI2 iSrcSamplePosY23Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosY23.x, 0, renderSizeLastTexelCoord.y), + __XB_Med3_I32(iSrcSamplePosY23.y, 0, renderSizeLastTexelCoord.y) + ); + + FFX_MIN16_F2 TopCornerR, BotCornerR, HorzR, VertR, CenterR; + FFX_MIN16_F2 TopCornerG, BotCornerG, HorzG, VertG, CenterG; + FFX_MIN16_F2 TopCornerB, BotCornerB, HorzB, VertB, CenterB; + + LoadPreparedColorPairedRgb(TopCornerR, TopCornerG, TopCornerB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.x, iSrcSamplePosY01Clamped.x), + FfxTexCoordI2(iSrcSamplePosX23Clamped.x, iSrcSamplePosY01Clamped.x) + ); + + LoadPreparedColorPairedRgb(BotCornerR, BotCornerG, BotCornerB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.x, iSrcSamplePosY23Clamped.x), + FfxTexCoordI2(iSrcSamplePosX23Clamped.x, iSrcSamplePosY23Clamped.x) + ); + + LoadPreparedColorPairedRgb(HorzR, HorzG, HorzB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.x, iSrcSamplePosY01Clamped.y), + FfxTexCoordI2(iSrcSamplePosX23Clamped.x, iSrcSamplePosY01Clamped.y) + ); + + LoadPreparedColorPairedRgb(VertR, VertG, VertB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY01Clamped.x), + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY23Clamped.x) + ); + + // NOTE: duplicated data + LoadPreparedColorPairedRgb(CenterR, CenterG, CenterB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY01Clamped.y), + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY01Clamped.y) + ); + + #if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + if (bIsInitialSample) + { + TonemapPaired(TopCornerR, TopCornerG, TopCornerB); + TonemapPaired(BotCornerR, BotCornerG, BotCornerB); + TonemapPaired(HorzR, HorzG, HorzB); + TonemapPaired(VertR, VertG, VertB); + TonemapPaired(CenterR, CenterG, CenterB); + } + #endif + + RGBToYCoCgPaired(TopCornerR, TopCornerG, TopCornerB); + RGBToYCoCgPaired(BotCornerR, BotCornerG, BotCornerB); + RGBToYCoCgPaired(HorzR, HorzG, HorzB); + RGBToYCoCgPaired(VertR, VertG, VertB); + RGBToYCoCgPaired(CenterR, CenterG, CenterB); + +#else + FfxFloat32x3 fSamples[9]; + FfxInt32 iSampleIndex = 0; + + FFX_UNROLL + for (FfxInt32 row = 0; row < 3; row++) { + FFX_UNROLL + for (FfxInt32 col = 0; col < 3; col++) { + const FfxInt32x2 iSampleColRow = FfxInt32x2(bFlipCol ? (3 - col) : col, bFlipRow ? (3 - row) : row); + const FfxInt32x2 iSrcSamplePos = FfxInt32x2(iSrcInputPos) + offsetTL + iSampleColRow; + const FfxInt32x2 iSampleCoord = ClampLoad(iSrcSamplePos, FfxInt32x2(0, 0), FfxInt32x2(RenderSize())); + + fSamples[iSampleIndex] = LoadPreparedColor(iSampleCoord); + + ++iSampleIndex; + } + } + +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + if (bIsInitialSample) + { + for (iSampleIndex = 0; iSampleIndex < 9; ++iSampleIndex) + { + //YCoCg -> RGB -> Tonemap -> YCoCg (Use RGB tonemapper to avoid color desaturation) + fSamples[iSampleIndex] = RGBToYCoCg(Tonemap(YCoCgToRGB(fSamples[iSampleIndex]))); + } + } +#endif + +#endif // #if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + + // Identify how much of each upsampled color to be used for this frame + const FfxFloat32 fKernelBiasMax = ComputeMaxKernelWeight(params, data); + const FfxFloat32 fKernelBiasMin = ffxMax(1.0f, ((1.0f + fKernelBiasMax) * 0.3f)); + + const FfxFloat32 fKernelBiasWeight = + ffxMin(1.0f - params.fDisocclusion * 0.5f, + ffxMin(1.0f - params.fShadingChange, + ffxSaturate(data.fHistoryWeight * 5.0f) + )); + + const FfxFloat32 fKernelBias = ffxLerp(fKernelBiasMin, fKernelBiasMax, fKernelBiasWeight); + +#if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + // Unroll the loop to load samples on Scarlett to help the shader compiler + const bool coordX0OnScreen = iSrcSamplePosX01.x == iSrcSamplePosX01Clamped.x; + const bool coordX1OnScreen = iSrcSamplePosX01.y == iSrcSamplePosX01Clamped.y; + const bool coordX2OnScreen = iSrcSamplePosX23.x == iSrcSamplePosX23Clamped.x; + + const bool coordY0OnScreen = iSrcSamplePosY01.x == iSrcSamplePosY01Clamped.x; + const bool coordY1OnScreen = iSrcSamplePosY01.y == iSrcSamplePosY01Clamped.y; + const bool coordY2OnScreen = iSrcSamplePosY23.x == iSrcSamplePosY23Clamped.x; + + const FFX_MIN16_F2 fBaseSampleOffsetHalf = FFX_MIN16_F2(fBaseSampleOffset); + + const FFX_MIN16_F2 fSrcSampleOffsetX_02 = fBaseSampleOffsetHalf.xx + fSampleOffsetX02; + const FFX_MIN16_F2 fSrcSampleOffsetY_02 = fBaseSampleOffsetHalf.yy + fSampleOffsetY02; + + const FFX_MIN16_F2 fSrcSampleOffsetXSq_02 = fSrcSampleOffsetX_02 * fSrcSampleOffsetX_02; + const FFX_MIN16_F2 fSrcSampleOffsetYSq_02 = fSrcSampleOffsetY_02 * fSrcSampleOffsetY_02; + const FFX_MIN16_F2 fSrcSampleOffsetXYSq_11 = fBaseSampleOffsetHalf * fBaseSampleOffsetHalf; + + const FfxFloat32 fRectificationCurveBias = -2.3f; + PairedRectificationBoxAndAccumulatedColorAndWeight pairedBox; + pairedBox.setKernelBiasAndRectificationCurveBias(fKernelBias, fRectificationCurveBias); + + // init by o o o + // o x o + // o o o + pairedBox.initBox( + fSrcSampleOffsetXYSq_11.x + fSrcSampleOffsetXYSq_11.y, + Bool2ToFloat16x2(coordX1OnScreen && coordY1OnScreen, false).x, + CenterR, CenterG, CenterB + ); + + // add remaining two samples from 1st row x o x + // o * o + // o o o + pairedBox.addBoxSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.xx, + Bool2ToFloat16x2(coordX0OnScreen && coordY0OnScreen, coordX2OnScreen && coordY0OnScreen), + TopCornerR, TopCornerG, TopCornerB + ); + + // add two samples from 2nd row * o * + // o * o + // x o x + pairedBox.addBoxSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY2OnScreen, coordX2OnScreen && coordY2OnScreen), + BotCornerR, BotCornerG, BotCornerB + ); + + // add two samples from 3rd row * o * + // x * x + // * o * + pairedBox.addBoxSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetXYSq_11.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY1OnScreen, coordX2OnScreen && coordY1OnScreen), + HorzR, HorzG, HorzB + ); + + // add remaining samples * x * + // * * * + // * x * + pairedBox.addBoxSample( + fSrcSampleOffsetXYSq_11.xx + fSrcSampleOffsetYSq_02, + Bool2ToFloat16x2(coordX1OnScreen && coordY0OnScreen, coordX1OnScreen && coordY2OnScreen), + VertR, VertG, VertB + ); + + FfxFloat32x2 boxCenterAndVecR, boxCenterAndVecG, boxCenterAndVecB; + FfxFloat32 boxCenterWeight; + pairedBox.finalizeBox(boxCenterAndVecR, boxCenterAndVecG, boxCenterAndVecB, boxCenterWeight); + + if (!bIsInitialSample) + { + pairedBox.initUpscaledColor( + fSrcSampleOffsetXYSq_11.x + fSrcSampleOffsetXYSq_11.y, + Bool2ToFloat16x2(coordX1OnScreen && coordY1OnScreen, false).x, + CenterR, CenterG, CenterB + ); + + // add remaining two samples from 1st row x o x + // o * o + // o o o + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.xx, + Bool2ToFloat16x2(coordX0OnScreen && coordY0OnScreen, coordX2OnScreen && coordY0OnScreen), + TopCornerR, TopCornerG, TopCornerB + ); + + // add two samples from 2nd row * o * + // o * o + // x o x + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY2OnScreen, coordX2OnScreen && coordY2OnScreen), + BotCornerR, BotCornerG, BotCornerB + ); + + // add two samples from 3rd row * o * + // x * x + // * o * + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetXYSq_11.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY1OnScreen, coordX2OnScreen && coordY1OnScreen), + HorzR, HorzG, HorzB + ); + + // add remaining samples * x * + // * * * + // * x * + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXYSq_11.xx + fSrcSampleOffsetYSq_02, + Bool2ToFloat16x2(coordX1OnScreen && coordY0OnScreen, coordX1OnScreen && coordY2OnScreen), + VertR, VertG, VertB + ); + + FfxFloat32x4 upscaledColorAndWeight = 0.0; + pairedBox.finalizeUpscaledColor(upscaledColorAndWeight); + + data.fUpsampledColor = FfxFloat32x3(upscaledColorAndWeight.rgb); + data.fUpsampledWeight = FfxFloat32(upscaledColorAndWeight.w); + } + + FFX_MIN16_F2 aabbMinMaxR = Compute3x3SamplesMinMaxPaired(CenterR, TopCornerR, BotCornerR, HorzR, VertR); + FFX_MIN16_F2 aabbMinMaxG = Compute3x3SamplesMinMaxPaired(CenterG, TopCornerG, BotCornerG, HorzG, VertG); + FFX_MIN16_F2 aabbMinMaxB = Compute3x3SamplesMinMaxPaired(CenterB, TopCornerB, BotCornerB, HorzB, VertB); + + data.clippingBox.boxCenter = FfxFloat32x3(boxCenterAndVecR.x, boxCenterAndVecG.x, boxCenterAndVecB.x); + data.clippingBox.boxVec = FfxFloat32x3(boxCenterAndVecR.y, boxCenterAndVecG.y, boxCenterAndVecB.y); + data.clippingBox.aabbMin = FfxFloat32x3(aabbMinMaxR.x, aabbMinMaxG.x, aabbMinMaxB.x); + data.clippingBox.aabbMax = FfxFloat32x3(aabbMinMaxR.y, aabbMinMaxG.y, aabbMinMaxB.y); + data.clippingBox.fBoxCenterWeight = FfxFloat32(boxCenterWeight); +#else + + iSampleIndex = 0; + + FFX_UNROLL + for (FfxInt32 row = 0; row < 3; row++) + { + FFX_UNROLL + for (FfxInt32 col = 0; col < 3; col++) + { + const FfxInt32x2 sampleColRow = FfxInt32x2(bFlipCol ? (3 - col) : col, bFlipRow ? (3 - row) : row); + const FfxFloat32x2 fOffset = fOffsetTL + FfxFloat32x2(sampleColRow); + const FfxFloat32x2 fSrcSampleOffset = fBaseSampleOffset + fOffset; + + const FfxInt32x2 iSrcSamplePos = FfxInt32x2(iSrcInputPos) + FfxInt32x2(offsetTL) + sampleColRow; + const FfxFloat32 fOnScreenFactor = FfxFloat32(IsOnScreen(FfxInt32x2(iSrcSamplePos), FfxInt32x2(RenderSize()))); + + if (!bIsInitialSample) + { + const FfxFloat32 fSampleWeight = fOnScreenFactor * FfxFloat32(GetUpsampleLanczosWeight(fSrcSampleOffset, fKernelBias)); + + data.fUpsampledColor += fSamples[iSampleIndex] * fSampleWeight; + data.fUpsampledWeight += fSampleWeight; + } + + // Update rectification box + { + const FfxFloat32 fRectificationCurveBias = -2.3f; + const FfxFloat32 fSrcSampleOffsetSq = dot(fSrcSampleOffset, fSrcSampleOffset); + const FfxFloat32 fBoxSampleWeight = exp(fRectificationCurveBias * fSrcSampleOffsetSq) * fOnScreenFactor; + + const FfxBoolean bInitialSample = (row == 0) && (col == 0); + RectificationBoxAddSample(bInitialSample, data.clippingBox, fSamples[iSampleIndex], fBoxSampleWeight); + } + ++iSampleIndex; + } + } + +#endif // #if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + + RectificationBoxComputeVarianceBoxData(data.clippingBox); + + data.fUpsampledWeight *= FfxFloat32(data.fUpsampledWeight > FSR3UPSCALER_EPSILON); + + if (data.fUpsampledWeight > FSR3UPSCALER_EPSILON) { + // Normalize for deringing (we need to compare colors) + data.fUpsampledColor = data.fUpsampledColor / data.fUpsampledWeight; + data.fUpsampledWeight *= fAverageLanczosWeightPerFrame; + + Deringing(data.clippingBox, data.fUpsampledColor); + } + + // Initial samples using tonemapped upsampling + if (bIsInitialSample) { +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + data.fUpsampledColor = RGBToYCoCg(InverseTonemap(YCoCgToRGB(data.clippingBox.boxCenter))); +#else + data.fUpsampledColor = data.clippingBox.boxCenter; +#endif + data.fUpsampledWeight = 1.0f; + data.fHistoryWeight = 0.0f; + } +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt new file mode 100644 index 000000000..5e4c27333 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt @@ -0,0 +1,55 @@ +# This file is part of the FidelityFX SDK. +# +# Copyright (C) 2024 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files(the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions : +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +set(OPTICALFLOW_BASE_ARGS + -reflection -deps=gcc -DFFX_GPU=1) + +set(OPTICALFLOW_PERMUTATION_ARGS + -DFFX_OPTICALFLOW_OPTION_HDR_COLOR_INPUT={0,1} + ) + +set(OPTICALFLOW_INCLUDE_ARGS + "${FFX_GPU_PATH}" + "${FFX_GPU_PATH}/opticalflow") + +if (NOT OPTICALFLOW_SHADER_EXT) + set(OPTICALFLOW_SHADER_EXT *) +endif() + +file(GLOB OPTICALFLOW_SHADERS + "shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.${OPTICALFLOW_SHADER_EXT}" +) + +# compile all the shaders +compile_shaders_with_depfile( + "${FFX_SC_EXECUTABLE}" + "${OPTICALFLOW_BASE_ARGS}" "${OPTICALFLOW_API_BASE_ARGS}" "${OPTICALFLOW_PERMUTATION_ARGS}" "${OPTICALFLOW_INCLUDE_ARGS}" + "${OPTICALFLOW_SHADERS}" "${FFX_PASS_SHADER_OUTPUT_PATH}" OPTICALFLOW_PERMUTATION_OUTPUTS) + +# add the header files they generate to the main list of dependencies +add_shader_output("${OPTICALFLOW_PERMUTATION_OUTPUTS}") diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h new file mode 100644 index 000000000..da315ec31 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h @@ -0,0 +1,578 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_CALLBACKS_HLSL_H +#define FFX_OPTICALFLOW_CALLBACKS_HLSL_H + +#include "opticalflow/ffx_opticalflow_resources.h" + +// no msad4 in glsl +#define FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION 0 +#define FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS 1 +#define FFX_OPTICALFLOW_USE_HEURISTICS 1 +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#define FFX_LOCAL_SEARCH_FALLBACK 1 + +// perf optimization for h/w not supporting accelerated msad4() +//#if !defined(FFX_PREFER_WAVE64) && defined(FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION) +//#undef FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION +//#endif + +#if defined(FFX_GPU) +#include "ffx_core.h" +#endif // #if defined(FFX_GPU) + +#if defined(FFX_GPU) +#ifndef FFX_PREFER_WAVE64 +#define FFX_PREFER_WAVE64 +#endif // #if defined(FFX_GPU) + + +#include "opticalflow/ffx_opticalflow_common.h" + + +#if defined(FFX_OPTICALFLOW_BIND_CB_COMMON) + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_CB_COMMON, std140) uniform cbOF_t + { + FfxInt32x2 iInputLumaResolution; + FfxUInt32 uOpticalFlowPyramidLevel; + FfxUInt32 uOpticalFlowPyramidLevelCount; + + FfxUInt32 iFrameIndex; + FfxUInt32 backbufferTransferFunction; + FfxFloat32x2 minMaxLuminance; + } cbOF; + +FfxInt32x2 DisplaySize() +{ + return cbOF.iInputLumaResolution; +} + +FfxUInt32 FrameIndex() +{ + return cbOF.iFrameIndex; +} + +FfxUInt32 BackbufferTransferFunction() +{ + return cbOF.backbufferTransferFunction; +} + +FfxFloat32x2 MinMaxLuminance() +{ + return cbOF.minMaxLuminance; +} + +FfxBoolean CrossedSceneChangeThreshold(FfxFloat32 sceneChangeValue) +{ + return sceneChangeValue > 0.45f; +} + +FfxUInt32 OpticalFlowPyramidLevel() +{ + return cbOF.uOpticalFlowPyramidLevel; +} + +FfxUInt32 OpticalFlowPyramidLevelCount() +{ + return cbOF.uOpticalFlowPyramidLevelCount; +} + +FfxInt32x2 OpticalFlowHistogramMaxVelocity() +{ + const FfxInt32 searchRadius = 8; + FfxInt32 scale = FfxInt32(1) << (OpticalFlowPyramidLevelCount() - 1 - OpticalFlowPyramidLevel()); + FfxInt32 maxVelocity = searchRadius * scale; + return FfxInt32x2(maxVelocity, maxVelocity); +} +#endif //FFX_OPTICALFLOW_BIND_CB_COMMON + +#if defined(FFX_OPTICALFLOW_BIND_CB_SPD) + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_CB_SPD, std140) uniform cbOF_SPD_t + { + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + FfxUInt32 numWorkGroupOpticalFlowInputPyramid; + FfxUInt32 pad0_; + FfxUInt32 pad1_; + FfxUInt32 pad2_; + } cbOF_SPD; + +uint NumWorkGroups() +{ + return cbOF_SPD.numWorkGroupOpticalFlowInputPyramid; +} +#endif // defined(FFX_OPTICALFLOW_BIND_CB_SPD) + + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR) uniform texture2D r_input_color; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS) uniform texture2D r_input_motion_vectors; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) uniform utexture2D r_optical_flow_input; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) uniform utexture2D r_optical_flow_previous_input; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW) uniform itexture2D r_optical_flow; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS) uniform itexture2D r_optical_flow_previous; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO) uniform utexture2D r_optical_flow_additional_info; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS) uniform utexture2D r_optical_flow_additional_info_previous; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM) uniform utexture2D r_optical_flow_histogram; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) uniform utexture2D r_optical_flow_global_motion_search; + #endif + + // UAV declarations + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT, r8ui) uniform uimage2D rw_optical_flow_input; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1, r8ui) uniform uimage2D rw_optical_flow_input_level_1; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2, r8ui) uniform uimage2D rw_optical_flow_input_level_2; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3, r8ui) uniform uimage2D rw_optical_flow_input_level_3; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4, r8ui) uniform uimage2D rw_optical_flow_input_level_4; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5, r8ui) uniform uimage2D rw_optical_flow_input_level_5; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6, r8ui) uniform uimage2D rw_optical_flow_input_level_6; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW, rg16i) uniform iimage2D rw_optical_flow; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL, rg16i) uniform iimage2D rw_optical_flow_next_level; + #endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO + // RWTexture2D rw_optical_flow_additional_info : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO, r32ui) uniform uimage2D rw_optical_flow_additional_info; + //#endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL + // RWTexture2D rw_optical_flow_additional_info_next_level : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL, r32ui) uniform uimage2D rw_optical_flow_additional_info_next_level; + //#endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM + // RWTexture2D rw_optical_flow_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM, r32ui) uniform uimage2D rw_optical_flow_histogram; + //#endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + // globallycoherent RWTexture2D rw_optical_flow_global_motion_search: FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH, r32ui) coherent uniform uimage2D rw_optical_flow_global_motion_search; + //#endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM, r32ui) uniform uimage2D rw_optical_flow_scd_histogram; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM, r32f) uniform image2D rw_optical_flow_scd_previous_histogram; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP, r32ui) uniform uimage2D rw_optical_flow_scd_temp; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT, r32ui) uniform uimage2D rw_optical_flow_scd_output; + #endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR) +FfxFloat32x4 LoadInputColor(FfxUInt32x2 iPxHistory) +{ + return texelFetch(r_input_color, FfxInt32x2(iPxHistory), 0); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS) +FfxFloat32x2 LoadGameMotionVector(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 positionScale = FfxFloat32x2(RenderSize()) / DisplaySize(); + return texelFetch(r_input_motion_vectors, FfxInt32x2(iPxPos * positionScale), 0).xy * motionVectorScale / positionScale; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +void StoreOpticalFlowInput(FfxInt32x2 iPxPos, FfxUInt32 fLuma) +{ + imageStore(rw_optical_flow_input, iPxPos, FfxUInt32x4(fLuma, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadOpticalFlowInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, texelFetch(r_optical_flow_input, iPxPos, 0).x); +#else + return texelFetch(r_optical_flow_input, iPxPos, 0).x; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadRwOpticalFlowInput(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_optical_flow_input, iPxPos).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadOpticalFlowPreviousInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, texelFetch(r_optical_flow_previous_input, iPxPos, 0).x); +#else + return texelFetch(r_optical_flow_previous_input, iPxPos, 0).x; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW) +FfxInt32x2 LoadOpticalFlow(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +FfxInt32x2 LoadRwOpticalFlow(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_optical_flow, iPxPos).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS) +FfxInt32x2 LoadPreviousOpticalFlow(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow_previous, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +void StoreOpticalFlow(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + imageStore(rw_optical_flow, iPxPos, FfxInt32x4(motionVector, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL) +void StoreOpticalFlowNextLevel(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + imageStore(rw_optical_flow_next_level, iPxPos, FfxInt32x4(motionVector, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow_additional_info, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadRwOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_optical_flow_additional_info, iPxPos).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS) +FfxUInt32x2 LoadPreviousOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow_additional_info_previous, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +void StoreOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + imageStore(rw_optical_flow_additional_info, iPxPos, FfxUInt32x4(additionalInfo, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL) +void StoreOpticalFlowNextLevelAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + imageStore(rw_optical_flow_additional_info_next_level, iPxPos, FfxUInt32x4(additionalInfo, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM) +FfxUInt32 LoadOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + return texelFetch(r_optical_flow_histogram, iBucketId, 0).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM) +void AtomicIncrementOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + imageAtomicAdd(rw_optical_flow_histogram, iBucketId, 1); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(texelFetch(r_optical_flow_global_motion_search, FfxInt32x2(0, 0), 0).x); + FfxInt32 vy = FfxInt32(texelFetch(r_optical_flow_global_motion_search, FfxInt32x2(1, 0), 0).x); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadRwGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(imageLoad(rw_optical_flow_global_motion_search, FfxInt32x2(0, 0)).x); + FfxInt32 vy = FfxInt32(imageLoad(rw_optical_flow_global_motion_search, FfxInt32x2(1, 0)).x); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 LoadGlobalMotionValue(FfxInt32 index) +{ + return imageLoad(rw_optical_flow_global_motion_search, FfxInt32x2(index, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +void StoreGlobalMotionValue(FfxInt32 index, FfxUInt32 value) +{ + imageStore(rw_optical_flow_global_motion_search, FfxInt32x2(index, 0), FfxUInt32x4(value, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 AtomicIncrementGlobalMotionValue(FfxInt32 index) +{ + return imageAtomicAdd(rw_optical_flow_global_motion_search, FfxInt32x2(index, 0), 1); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +FfxUInt32 LoadRwSCDHistogram(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_histogram, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void StoreSCDHistogram(FfxInt32 iIndex, FfxUInt32 value) +{ + imageStore(rw_optical_flow_scd_histogram, FfxInt32x2(iIndex, 0), FfxUInt32x4(value, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void AtomicIncrementSCDHistogram(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + imageAtomicAdd(rw_optical_flow_scd_histogram, FfxInt32x2(iIndex, 0), valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +FfxFloat32 LoadRwSCDPreviousHistogram(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_previous_histogram, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +void StoreSCDPreviousHistogram(FfxInt32 iIndex, FfxFloat32 value) +{ + imageStore(rw_optical_flow_scd_previous_histogram, FfxInt32x2(iIndex, 0), FfxFloat32x4(value, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +FfxUInt32 LoadRwSCDTemp(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_temp, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void AtomicIncrementSCDTemp(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + imageAtomicAdd(rw_optical_flow_scd_temp, FfxInt32x2(iIndex, 0), valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void ResetSCDTemp() +{ + imageStore(rw_optical_flow_scd_temp, FfxInt32x2(0, 0), FfxUInt32x4(0, 0, 0, 0)); + imageStore(rw_optical_flow_scd_temp, FfxInt32x2(1, 0), FfxUInt32x4(0, 0, 0, 0)); + imageStore(rw_optical_flow_scd_temp, FfxInt32x2(2, 0), FfxUInt32x4(0, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 LoadRwSCDOutput(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_output, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +void StoreSCDOutput(FfxInt32 iIndex, FfxUInt32 value) +{ + imageStore(rw_optical_flow_scd_output, FfxInt32x2(iIndex, 0), FfxUInt32x4(value, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 AtomicIncrementSCDOutput(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + return imageAtomicAdd(rw_optical_flow_scd_output, FfxInt32x2(iIndex, 0), valueToAdd); +} +#endif + +//#if defined(FFX_OPTICALFLOW_BIND_UAV_DEBUG_VISUALIZATION) +//void StoreDebugVisualization(FfxUInt32x2 iPxPos, FfxFloat32x3 fColor) +//{ +// imageStore(rw_debug_visualization, iPxPos, FfxFloat32x4(fColor, 1.f)); +//} +//#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxFloat32 GetSceneChangeValue() +{ + if (FrameIndex() <= 5) + return 1.0; + else + return ffxAsFloat(LoadRwSCDOutput(SCD_OUTPUT_SCENE_CHANGE_SLOT)); +} + +FfxBoolean IsSceneChanged() +{ + if (FrameIndex() <= 5) + { + return true; + } + else + { + return (LoadRwSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT) & 0xfu) != 0; + } +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadFirstImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadSecondImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + + +void SPD_SetMipmap(FfxInt32x2 iPxPos, FfxUInt32 index, FfxFloat32 value) +{ + FfxUInt32x4 value4 = FfxUInt32x4(value, 0.0, 0.0, 0.0); + switch (index) + { + case 0: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + imageStore(rw_optical_flow_input_level_1, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + break; + case 1: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + imageStore(rw_optical_flow_input_level_2, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + break; + case 2: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + imageStore(rw_optical_flow_input_level_3, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + break; + case 3: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + imageStore(rw_optical_flow_input_level_4, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + break; + case 4: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + imageStore(rw_optical_flow_input_level_5, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + break; + case 5: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + imageStore(rw_optical_flow_input_level_6, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + break; + } +} + +#endif // #if defined(FFX_GPU) + +#endif // FFX_OPTICALFLOW_CALLBACKS_HLSL_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h new file mode 100644 index 000000000..bd1d48493 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h @@ -0,0 +1,634 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_CALLBACKS_HLSL_H +#define FFX_OPTICALFLOW_CALLBACKS_HLSL_H + +#if defined(FFX_GPU) +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic push +#pragma dxc diagnostic ignored "-Wambig-lit-shift" +#endif //__hlsl_dx_compiler +#include "ffx_core.h" +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic pop +#endif //__hlsl_dx_compiler + +#define FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION 1 +#define FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS 1 +#define FFX_OPTICALFLOW_USE_HEURISTICS 1 +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#define FFX_LOCAL_SEARCH_FALLBACK 1 + +// perf optimization for h/w not supporting accelerated msad4() +#if !defined(FFX_PREFER_WAVE64) && defined(FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION) +#undef FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION +#endif + +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_PREFER_WAVE64 +#define FFX_PREFER_WAVE64 +#endif + + +#pragma warning(disable: 3205) // conversion from larger type to smaller + +#define DECLARE_SRV_REGISTER(regIndex) t##regIndex +#define DECLARE_UAV_REGISTER(regIndex) u##regIndex +#define DECLARE_CB_REGISTER(regIndex) b##regIndex +#define FFX_OPTICALFLOW_DECLARE_SRV(regIndex) register(DECLARE_SRV_REGISTER(regIndex)) +#define FFX_OPTICALFLOW_DECLARE_UAV(regIndex) register(DECLARE_UAV_REGISTER(regIndex)) +#define FFX_OPTICALFLOW_DECLARE_CB(regIndex) register(DECLARE_CB_REGISTER(regIndex)) + +#if defined(FFX_OPTICALFLOW_BIND_CB_COMMON) + cbuffer cbOF : FFX_OPTICALFLOW_DECLARE_CB(FFX_OPTICALFLOW_BIND_CB_COMMON) + { + FfxInt32x2 iInputLumaResolution; + FfxUInt32 uOpticalFlowPyramidLevel; + FfxUInt32 uOpticalFlowPyramidLevelCount; + + FfxUInt32 iFrameIndex; + FfxUInt32 backbufferTransferFunction; + FfxFloat32x2 minMaxLuminance; + }; +#define FFX_OPTICALFLOW_CONSTANT_BUFFER_1_SIZE 8 + +#endif //FFX_OPTICALFLOW_BIND_CB_COMMON + +#if defined(FFX_OPTICALFLOW_BIND_CB_SPD) +cbuffer cbOF_SPD : FFX_OPTICALFLOW_DECLARE_CB(FFX_OPTICALFLOW_BIND_CB_SPD) { + + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + FfxUInt32 numWorkGroupOpticalFlowInputPyramid; + FfxUInt32 pad0_; + FfxUInt32 pad1_; + FfxUInt32 pad2_; +}; + +FfxUInt32 NumWorkGroups() +{ + return numWorkGroupOpticalFlowInputPyramid; +} +#endif //FFX_OPTICALFLOW_BIND_CB_SPD + +#define FFX_OPTICALFLOW_CONSTANT_BUFFER_2_SIZE 8 + +#define FFX_OPTICALFLOW_DESCRIPTOR_COUNT 32 + +#define FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(p) FFX_OPTICALFLOW_ROOTSIG_STR(p) +#define FFX_OPTICALFLOW_ROOTSIG_STR(p) #p +#define FFX_OPTICALFLOW_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "CBV(b0), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_POINT, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK), " \ + "StaticSampler(s1, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] + +#define FFX_OPTICALFLOW_CB2_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "CBV(b0), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_POINT, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK), " \ + "StaticSampler(s1, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] +#if defined(FFX_OPTICALFLOW_EMBED_ROOTSIG) +#define FFX_OPTICALFLOW_EMBED_ROOTSIG_CONTENT FFX_OPTICALFLOW_ROOTSIG +#define FFX_OPTICALFLOW_EMBED_CB2_ROOTSIG_CONTENT FFX_OPTICALFLOW_CB2_ROOTSIG +#else +#define FFX_OPTICALFLOW_EMBED_ROOTSIG_CONTENT +#define FFX_OPTICALFLOW_EMBED_CB2_ROOTSIG_CONTENT +#endif // #if FFX_OPTICALFLOW_EMBED_ROOTSIG + +FfxInt32x2 DisplaySize() +{ + return iInputLumaResolution; +} + +FfxUInt32 FrameIndex() +{ + return iFrameIndex; +} + +FfxUInt32 BackbufferTransferFunction() +{ + return backbufferTransferFunction; +} + +FfxFloat32x2 MinMaxLuminance() +{ + return minMaxLuminance; +} + +FfxBoolean CrossedSceneChangeThreshold(FfxFloat32 sceneChangeValue) +{ + return sceneChangeValue > 0.45f; +} + +FfxUInt32 OpticalFlowPyramidLevel() +{ + return uOpticalFlowPyramidLevel; +} + +FfxUInt32 OpticalFlowPyramidLevelCount() +{ + return uOpticalFlowPyramidLevelCount; +} + +FfxInt32x2 OpticalFlowHistogramMaxVelocity() +{ + const FfxInt32 searchRadius = 8; + FfxInt32 scale = FfxInt32(1) << (OpticalFlowPyramidLevelCount() - 1 - OpticalFlowPyramidLevel()); + FfxInt32 maxVelocity = searchRadius * scale; + return FfxInt32x2(maxVelocity, maxVelocity); +} + + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR + Texture2D r_input_color : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS + Texture2D r_input_motion_vectors : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT + Texture2D r_optical_flow_input : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT + Texture2D r_optical_flow_previous_input : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW + Texture2D r_optical_flow : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS + Texture2D r_optical_flow_previous : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO + Texture2D r_optical_flow_additional_info : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS + Texture2D r_optical_flow_additional_info_previous : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM + Texture2D r_optical_flow_histogram : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + Texture2D r_optical_flow_global_motion_search : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH); + #endif + + // UAV declarations + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT + RWTexture2D rw_optical_flow_input : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + globallycoherent RWTexture2D rw_optical_flow_input_level_1 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + globallycoherent RWTexture2D rw_optical_flow_input_level_2 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + globallycoherent RWTexture2D rw_optical_flow_input_level_3 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + globallycoherent RWTexture2D rw_optical_flow_input_level_4 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + globallycoherent RWTexture2D rw_optical_flow_input_level_5 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + globallycoherent RWTexture2D rw_optical_flow_input_level_6 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW + RWTexture2D rw_optical_flow : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL + RWTexture2D rw_optical_flow_next_level : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO + RWTexture2D rw_optical_flow_additional_info : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL + RWTexture2D rw_optical_flow_additional_info_next_level : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM + RWTexture2D rw_optical_flow_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + globallycoherent RWTexture2D rw_optical_flow_global_motion_search: FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM + RWTexture2D rw_optical_flow_scd_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM + RWTexture2D rw_optical_flow_scd_previous_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP + RWTexture2D rw_optical_flow_scd_temp : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT + RWTexture2D rw_optical_flow_scd_output : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT); + #endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR) +FfxFloat32x4 LoadInputColor(FfxUInt32x2 iPxHistory) +{ + return r_input_color[iPxHistory]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS) +FfxFloat32x2 LoadGameMotionVector(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 positionScale = FfxFloat32x2(RenderSize()) / DisplaySize(); + return r_input_motion_vectors[iPxPos * positionScale] * motionVectorScale / positionScale; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +void StoreOpticalFlowInput(FfxInt32x2 iPxPos, FfxUInt32 fLuma) +{ + rw_optical_flow_input[iPxPos] = fLuma; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadOpticalFlowInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, r_optical_flow_input[iPxPos]); +#else + return r_optical_flow_input[iPxPos]; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadRwOpticalFlowInput(FfxInt32x2 iPxPos) +{ + return rw_optical_flow_input[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadOpticalFlowPreviousInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, r_optical_flow_previous_input[iPxPos]); +#else + return r_optical_flow_previous_input[iPxPos]; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW) +FfxInt32x2 LoadOpticalFlow(FfxInt32x2 iPxPos) +{ + return r_optical_flow[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +FfxInt32x2 LoadRwOpticalFlow(FfxInt32x2 iPxPos) +{ + return rw_optical_flow[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS) +FfxInt32x2 LoadPreviousOpticalFlow(FfxInt32x2 iPxPos) +{ + return r_optical_flow_previous[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +void StoreOpticalFlow(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + rw_optical_flow[iPxPos] = motionVector; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL) +void StoreOpticalFlowNextLevel(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + rw_optical_flow_next_level[iPxPos] = motionVector; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return r_optical_flow_additional_info[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadRwOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return rw_optical_flow_additional_info[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS) +FfxUInt32x2 LoadPreviousOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return r_optical_flow_additional_info_previous[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +void StoreOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + rw_optical_flow_additional_info[iPxPos] = additionalInfo; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL) +void StoreOpticalFlowNextLevelAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + rw_optical_flow_additional_info_next_level[iPxPos] = additionalInfo; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM) +FfxUInt32 LoadOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + return r_optical_flow_histogram[iBucketId]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM) +void AtomicIncrementOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + InterlockedAdd(rw_optical_flow_histogram[iBucketId], 1); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(r_optical_flow_global_motion_search[FfxInt32x2(0, 0)]); + FfxInt32 vy = FfxInt32(r_optical_flow_global_motion_search[FfxInt32x2(1, 0)]); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadRwGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(rw_optical_flow_global_motion_search[FfxInt32x2(0, 0)]); + FfxInt32 vy = FfxInt32(rw_optical_flow_global_motion_search[FfxInt32x2(1, 0)]); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 LoadGlobalMotionValue(FfxInt32 index) +{ + return rw_optical_flow_global_motion_search[FfxInt32x2(index, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +void StoreGlobalMotionValue(FfxInt32 index, FfxUInt32 value) +{ + rw_optical_flow_global_motion_search[FfxInt32x2(index, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 AtomicIncrementGlobalMotionValue(FfxInt32 index) +{ + FfxUInt32 initialValue; + InterlockedAdd(rw_optical_flow_global_motion_search[FfxInt32x2(index, 0)], 1, initialValue); + return initialValue; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +FfxUInt32 LoadRwSCDHistogram(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_histogram[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void StoreSCDHistogram(FfxInt32 iIndex, FfxUInt32 value) +{ + rw_optical_flow_scd_histogram[FfxInt32x2(iIndex, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void AtomicIncrementSCDHistogram(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + InterlockedAdd(rw_optical_flow_scd_histogram[FfxInt32x2(iIndex, 0)], valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +FfxFloat32 LoadRwSCDPreviousHistogram(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_previous_histogram[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +void StoreSCDPreviousHistogram(FfxInt32 iIndex, FfxFloat32 value) +{ + rw_optical_flow_scd_previous_histogram[FfxInt32x2(iIndex, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +FfxUInt32 LoadRwSCDTemp(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_temp[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void AtomicIncrementSCDTemp(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + InterlockedAdd(rw_optical_flow_scd_temp[FfxInt32x2(iIndex, 0)], valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void ResetSCDTemp() +{ + rw_optical_flow_scd_temp[FfxInt32x2(0, 0)] = 0; + rw_optical_flow_scd_temp[FfxInt32x2(1, 0)] = 0; + rw_optical_flow_scd_temp[FfxInt32x2(2, 0)] = 0; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 LoadRwSCDOutput(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_output[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +void StoreSCDOutput(FfxInt32 iIndex, FfxUInt32 value) +{ + rw_optical_flow_scd_output[FfxInt32x2(iIndex, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 AtomicIncrementSCDOutput(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + FfxUInt32 initialValue; + InterlockedAdd(rw_optical_flow_scd_output[FfxInt32x2(iIndex, 0)], valueToAdd, initialValue); + return initialValue; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_DEBUG_VISUALIZATION) +void StoreDebugVisualization(FfxUInt32x2 iPxPos, FfxFloat32x3 fColor) +{ + rw_debug_visualization[iPxPos] = FfxFloat32x4(fColor, 1.f); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxFloat32 GetSceneChangeValue() +{ + if (FrameIndex() <= 5) + return 1.0; + else + return ffxAsFloat(LoadRwSCDOutput(SCD_OUTPUT_SCENE_CHANGE_SLOT)); +} + +FfxBoolean IsSceneChanged() +{ + if (FrameIndex() <= 5) + { + return 1.0; + } + else + { + return (LoadRwSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT) & 0xfu) != 0; + } +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadFirstImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadSecondImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + + +void SPD_SetMipmap(int2 iPxPos, int index, float value) +{ + switch (index) + { + case 0: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + rw_optical_flow_input_level_1[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + break; + case 1: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + rw_optical_flow_input_level_2[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + break; + case 2: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + rw_optical_flow_input_level_3[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + break; + case 3: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + rw_optical_flow_input_level_4[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + break; + case 4: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + rw_optical_flow_input_level_5[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + break; + case 5: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + rw_optical_flow_input_level_6[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + break; + } +} + +#endif // #if defined(FFX_GPU) + +#endif // FFX_OPTICALFLOW_CALLBACKS_HLSL_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h new file mode 100644 index 000000000..907e7ac79 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h @@ -0,0 +1,99 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if !defined(FFX_OPTICALFLOW_COMMON_H) +#define FFX_OPTICALFLOW_COMMON_H + +#if defined(FFX_GPU) + +#define SCD_OUTPUT_SCENE_CHANGE_SLOT 0 +#define SCD_OUTPUT_HISTORY_BITS_SLOT 1 +#define SCD_OUTPUT_COMPLETED_WORKGROUPS_SLOT 2 + + +#define ffxClamp(x, a, b) (ffxMax(a, ffxMin(b, x))) + + +FfxUInt32 GetPackedLuma(FfxInt32 width, FfxInt32 x, FfxUInt32 luma0, FfxUInt32 luma1, FfxUInt32 luma2, FfxUInt32 luma3) +{ + FfxUInt32 packedLuma = luma0 | (luma1 << 8) | (luma2 << 16) | (luma3 << 24); + + if (x < 0) + { + FfxUInt32 outOfScreenFiller = packedLuma & 0xffu; + if (x <= -1) + packedLuma = (packedLuma << 8) | outOfScreenFiller; + if (x <= -2) + packedLuma = (packedLuma << 8) | outOfScreenFiller; + if (x <= -3) + packedLuma = (packedLuma << 8) | outOfScreenFiller; + } + else if (x > width - 4) + { + FfxUInt32 outOfScreenFiller = packedLuma & 0xff000000u; + if (x >= width - 3) + packedLuma = (packedLuma >> 8) | outOfScreenFiller; + if (x >= width - 2) + packedLuma = (packedLuma >> 8) | outOfScreenFiller; + if (x >= width - 1) + packedLuma = (packedLuma >> 8) | outOfScreenFiller; + } + return packedLuma; +} + +FfxUInt32 Sad(FfxUInt32 a, FfxUInt32 b) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return msad4(a, FfxUInt32x2(b, 0), FfxUInt32x4(0, 0, 0, 0)).x; +#else + return abs(FfxInt32((a >> 0) & 0xffu) - FfxInt32((b >> 0) & 0xffu)) + + abs(FfxInt32((a >> 8) & 0xffu) - FfxInt32((b >> 8) & 0xffu)) + + abs(FfxInt32((a >> 16) & 0xffu) - FfxInt32((b >> 16) & 0xffu)) + + abs(FfxInt32((a >> 24) & 0xffu) - FfxInt32((b >> 24) & 0xffu)); +#endif +} + +FfxUInt32x4 QSad(FfxUInt32 a0, FfxUInt32 a1, FfxUInt32 b) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return msad4(b, FfxUInt32x2(a0, a1), FfxUInt32x4(0, 0, 0, 0)); +#else + FfxUInt32x4 sad; + sad.x = Sad(a0, b); + + a0 = (a0 >> 8) | ((a1 & 0xffu) << 24); + a1 >>= 8; + sad.y = Sad(a0, b); + + a0 = (a0 >> 8) | ((a1 & 0xffu) << 24); + a1 >>= 8; + sad.z = Sad(a0, b); + + a0 = (a0 >> 8) | ((a1 & 0xffu) << 24); + sad.w = Sad(a0, b); + return sad; +#endif +} + +#endif // #if defined(FFX_GPU) + +#endif //!defined(FFX_OPTICALFLOW_COMMON_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h new file mode 100644 index 000000000..b83710c95 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h @@ -0,0 +1,107 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_COMPUTE_LUMINANCE_PYRAMID_H +#define FFX_OPTICALFLOW_COMPUTE_LUMINANCE_PYRAMID_H + +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +void SPD_IncreaseAtomicCounter(inout FfxUInt32 spdCounter) +{ +} + +void SPD_ResetAtomicCounter() +{ +} + +FfxFloat32x4 SpdLoadSourceImage(FfxFloat32x2 tex, FfxUInt32 slice) +{ + FfxFloat32 luma = LoadRwOpticalFlowInput(FfxInt32x2(tex)); + return FfxFloat32x4(luma, 0, 0, 0); +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return FfxFloat32x4(0, 0, 0, 0); +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + SPD_SetMipmap(pix, index, outValue.r); +} + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return 0; +} + +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + SPD_ResetAtomicCounter(); +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return (v0 + v1 + v2 + v3) * 0.25; +} + +#ifdef FFX_HALF +#undef FFX_HALF +#endif + +// https://github.com/GPUOpen-Effects/FidelityFX-SPD/blob/master/docs/FidelityFX_SPD.pdf +#include "spd/ffx_spd.h" + +void ComputeOpticalFlowInputPyramid(FfxInt32x2 iGroupId, FfxInt32 iLocalIndex) +{ + SpdDownsample( + FfxUInt32x2(iGroupId.xy), + FfxUInt32(iLocalIndex), + 6, // mip levels to generate + FfxUInt32(NumWorkGroups()), + 1 // single slice + ); +} + +#endif // FFX_OPTICALFLOW_COMPUTE_LUMINANCE_PYRAMID_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h new file mode 100644 index 000000000..9c1b522b6 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h @@ -0,0 +1,279 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_COMPUTE_OPTICAL_FLOW_V5_H +#define FFX_OPTICALFLOW_COMPUTE_OPTICAL_FLOW_V5_H + +#define CompareSize (4 * 2) +#define BlockSizeY 8 +#define BlockSizeX 8 +#define ThreadCount (4 * 16) +#define SearchRadiusX (8) +#define SearchRadiusY (8) +#define BlockCount 2 + +#define SearchBufferSizeX ((CompareSize + SearchRadiusX*2)/4) +#define SearchBufferSizeY (CompareSize + SearchRadiusY*2) + +FFX_GROUPSHARED FfxUInt32 pixels[CompareSize][CompareSize / 4]; +FFX_GROUPSHARED FfxUInt32 searchBuffer[1][SearchBufferSizeY * SearchBufferSizeX]; +#define bankBreaker 1 +FFX_GROUPSHARED FfxUInt32 sadMapBuffer[4][SearchRadiusY * 2][(SearchRadiusX * 2) / 4 + bankBreaker]; + +#define MaxWaves 2 +FFX_GROUPSHARED FfxUInt32 sWaveSad[MaxWaves]; +FFX_GROUPSHARED FfxUInt32 sWaveMin[MaxWaves]; + +FfxUInt32 BlockSad64(FfxUInt32 blockSadSum, FfxInt32 iLocalIndex, FfxInt32 iLaneToBlockId, FfxInt32 block) +{ + if (iLaneToBlockId != block) + { + blockSadSum = 0u; + } + blockSadSum = ffxWaveSum(blockSadSum); + + if (ffxWaveLaneCount() == 32) + { + FfxInt32 waveId = iLocalIndex >> 5u; + if (ffxWaveIsFirstLane()) + { + sWaveSad[waveId] = blockSadSum; + } + FFX_GROUP_MEMORY_BARRIER; + blockSadSum += sWaveSad[waveId ^ 1]; + } + + return blockSadSum; +} + +FfxUInt32 SadMapMinReduction256(FfxInt32x2 iSearchId, FfxInt32 iLocalIndex) +{ + FfxUInt32 min01 = ffxMin(sadMapBuffer[0][iSearchId.y][iSearchId.x], sadMapBuffer[1][iSearchId.y][iSearchId.x]); + FfxUInt32 min23 = ffxMin(sadMapBuffer[2][iSearchId.y][iSearchId.x], sadMapBuffer[3][iSearchId.y][iSearchId.x]); + FfxUInt32 min0123 = ffxMin(min01, min23); + min0123 = ffxWaveMin(min0123); + + if (ffxWaveLaneCount() == 32) + { + FfxInt32 waveId = iLocalIndex >> 5u; + + if (ffxWaveIsFirstLane()) + { + sWaveMin[waveId] = min0123; + } + FFX_GROUP_MEMORY_BARRIER; + min0123 = ffxMin(min0123, sWaveMin[waveId ^ 1]); + } + + return min0123; +} + +void LoadSearchBuffer(FfxInt32 iLocalIndex, FfxInt32x2 iPxPosShifted) +{ + FfxInt32 baseX = (iPxPosShifted.x - SearchRadiusX); + FfxInt32 baseY = (iPxPosShifted.y - SearchRadiusY); + + for (FfxInt32 id = iLocalIndex; id < SearchBufferSizeX * SearchBufferSizeY; id += ThreadCount) + { + FfxInt32 idx = id % SearchBufferSizeX; + FfxInt32 idy = id / SearchBufferSizeX; + FfxInt32 x = baseX + idx * 4; + FfxInt32 y = baseY + idy; + searchBuffer[0][id] = LoadSecondImagePackedLuma(FfxInt32x2(x, y)); + } + FFX_GROUP_MEMORY_BARRIER; +} + +FfxUInt32x4 CalculateQSads2(FfxInt32x2 iSearchId) +{ + FfxUInt32x4 sad = ffxBroadcast4(0u); + +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + + FfxInt32 idx = iSearchId.y * 6 + iSearchId.x; + + sad = msad4(pixels[0][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[0][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[1][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[1][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[2][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[2][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[3][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[3][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[4][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[4][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[5][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[5][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[6][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[6][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[7][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[7][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + +#else + for (FfxInt32 dy = 0; dy < CompareSize; dy++) + { + FfxInt32 rowOffset = (iSearchId.y + dy) * SearchBufferSizeX; + FfxUInt32 a0 = searchBuffer[0][rowOffset + iSearchId.x]; + FfxUInt32 a1 = searchBuffer[0][rowOffset + iSearchId.x + 1]; + FfxUInt32 a2 = searchBuffer[0][rowOffset + iSearchId.x + 2]; + sad += QSad(a0, a1, pixels[dy][0]); + sad += QSad(a1, a2, pixels[dy][1]); + } +#endif + + return sad; +} + +FfxUInt32x2 abs_2(FfxInt32x2 val) +{ + FfxInt32x2 tmp = val; + FfxInt32x2 mask = tmp >> 31; + FfxUInt32x2 res = (tmp + mask) ^ mask; + return res; +} + +FfxUInt32 EncodeSearchCoord(FfxInt32x2 coord) +{ +#if FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 + FfxUInt32x2 absCoord = FfxUInt32x2(abs_2(coord - 8)); + return FfxUInt32(absCoord.y << 12) | FfxUInt32(absCoord.x << 8) | FfxUInt32(coord.y << 4) | FfxUInt32(coord.x); +#else //FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 + return FfxUInt32(coord.y << 8) | FfxUInt32(coord.x); +#endif //FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 +} + +FfxInt32x2 DecodeSearchCoord(FfxUInt32 bits) +{ +#if FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 + FfxInt32 dx = FfxInt32(bits & 0xfu) - SearchRadiusX; + FfxInt32 dy = FfxInt32((bits >> 4) & 0xfu) - SearchRadiusY; + + return FfxInt32x2(dx, dy); +#else + FfxInt32 dx = FfxInt32(bits & 0xffu) - SearchRadiusX; + FfxInt32 dy = FfxInt32((bits >> 8) & 0xffu) - SearchRadiusY; + + return FfxInt32x2(dx, dy); +#endif +} + +void PrepareSadMap(FfxInt32x2 iSearchId, FfxUInt32x4 qsad) +{ + sadMapBuffer[0][iSearchId.y][iSearchId.x] = (qsad.x << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 0, iSearchId.y)); + sadMapBuffer[1][iSearchId.y][iSearchId.x] = (qsad.y << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 1, iSearchId.y)); + sadMapBuffer[2][iSearchId.y][iSearchId.x] = (qsad.z << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 2, iSearchId.y)); + sadMapBuffer[3][iSearchId.y][iSearchId.x] = (qsad.w << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 3, iSearchId.y)); + FFX_GROUP_MEMORY_BARRIER; +} + + +uint ABfe(uint src, uint off, uint bits) { uint mask = (1u << bits) - 1u; return (src >> off) & mask; } +uint ABfi(uint src, uint ins, uint mask) { return (ins & mask) | (src & (~mask)); } +uint ABfiM(uint src, uint ins, uint bits) { uint mask = (1u << bits) - 1u; return (ins & mask) | (src & (~mask)); } +void MapThreads(in FfxInt32x2 iGroupId, in FfxInt32 iLocalIndex, + out FfxInt32x2 iSearchId, out FfxInt32x2 iPxPos, out FfxInt32 iLaneToBlockId) +{ + iSearchId = FfxInt32x2(ABfe(iLocalIndex, 0u, 2u), ABfe(iLocalIndex, 2u, 4u)); + iLaneToBlockId = FfxInt32(ABfe(iLocalIndex, 1u, 1u) | (ABfe(iLocalIndex, 5u, 1u) << 1u)); + iPxPos = (iGroupId << 4u) + iSearchId * FfxInt32x2(4, 1); +} + +void ComputeOpticalFlowAdvanced(FfxInt32x2 iGlobalId, FfxInt32x2 iLocalId, FfxInt32x2 iGroupId, FfxInt32 iLocalIndex) +{ + FfxInt32x2 iSearchId; + FfxInt32x2 iPxPos; + FfxInt32 iLaneToBlockId; + MapThreads(iGroupId, iLocalIndex, iSearchId, iPxPos, iLaneToBlockId); + + FfxInt32x2 currentOFPos = iPxPos >> 3u; + + if (IsSceneChanged()) + { + if ((iSearchId.y & 0x7) == 0 && (iSearchId.x & 0x1) == 0) + { + StoreOpticalFlow(currentOFPos, FfxInt32x2(0, 0)); + } + + return; + } + + const FfxBoolean bUsePredictionFromPreviousLevel = (OpticalFlowPyramidLevel() != OpticalFlowPyramidLevelCount() - 1); + + FfxUInt32 packedLuma_4blocks = LoadFirstImagePackedLuma(iPxPos); + +#if FFX_LOCAL_SEARCH_FALLBACK == 1 + FfxUInt32 prevPackedLuma_4blocks = LoadSecondImagePackedLuma(iPxPos); + FfxUInt32 sad_4blocks = Sad(packedLuma_4blocks, prevPackedLuma_4blocks); +#endif //FFX_LOCAL_SEARCH_FALLBACK + + FfxInt32x2 ofGroupOffset = iGroupId << 1u; + FfxInt32x2 pixelGroupOffset = iGroupId << 4u; + + FfxInt32x2 blockId; + for (blockId.y = 0; blockId.y < BlockCount; blockId.y++) + { + for (blockId.x = 0; blockId.x < BlockCount; blockId.x++) + { + FfxInt32x2 currentVector = LoadRwOpticalFlow(ofGroupOffset + blockId); + if (!bUsePredictionFromPreviousLevel) + { + currentVector = FfxInt32x2(0, 0); + } + + if (iLaneToBlockId == blockId.y * 2 + blockId.x) + { + pixels[iSearchId.y & 0x7][iSearchId.x & 0x1] = packedLuma_4blocks; + } + + LoadSearchBuffer(iLocalIndex, pixelGroupOffset + blockId * 8 + currentVector); + + FfxUInt32x4 qsad = CalculateQSads2(iSearchId); + + PrepareSadMap(iSearchId, qsad); + FfxUInt32 minSad = SadMapMinReduction256(iSearchId, iLocalIndex); + + FfxInt32x2 minSadCoord = DecodeSearchCoord(minSad); + FfxInt32x2 newVector = currentVector + minSadCoord; + +#if FFX_LOCAL_SEARCH_FALLBACK == 1 + FfxUInt32 blockSadSum = BlockSad64(sad_4blocks, iLocalIndex, iLaneToBlockId, blockId.x + blockId.y * 2); + if (OpticalFlowPyramidLevel() == 0 && blockSadSum <= (minSad >> 16u)) + { + newVector = FfxInt32x2(0, 0); + } +#endif //FFX_LOCAL_SEARCH_FALLBACK + + { + StoreOpticalFlow(ofGroupOffset + blockId, newVector); + } + } + } +} + +#endif // FFX_OPTICALFLOW_COMPUTE_OPTICAL_FLOW_V5_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h new file mode 100644 index 000000000..7f473f657 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h @@ -0,0 +1,159 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_COMPUTE_SCD_DIVERGENCE_H +#define FFX_OPTICALFLOW_COMPUTE_SCD_DIVERGENCE_H + +FFX_GROUPSHARED FfxFloat32 sourceHistogram[256]; +FFX_GROUPSHARED FfxFloat32 filteredHistogram[256]; +FFX_GROUPSHARED FfxFloat32 tempBuffer[256]; +FFX_GROUPSHARED FfxFloat32x2 tempBuffer2[256]; + +void ComputeSCDHistogramsDivergence(FfxInt32x3 iGlobalId, FfxInt32x2 iLocalId, FfxInt32 iLocalIndex, FfxInt32x2 iGroupId, FfxInt32x2 iGroupSize) +{ + FFX_STATIC const FfxFloat32 Factor = 1000000.0; + FFX_STATIC const FfxInt32 WhereToStop = 3*9 - 1; + FFX_STATIC const FfxInt32 HistogramCount = 3 * 3; + + FFX_STATIC const FfxFloat32 Kernel[] = { + 0.0088122291, 0.027143577, 0.065114059, 0.12164907, 0.17699835, 0.20056541 + }; + + sourceHistogram[iLocalIndex] = FfxFloat32(LoadRwSCDHistogram(iGlobalId.x)); + FFX_GROUP_MEMORY_BARRIER; + + const FfxInt32 kernelShift = -5; + const FfxInt32 indexToRead = iLocalIndex + kernelShift; + + FfxFloat32 val = 0.0; + val += Kernel[0] * sourceHistogram[ffxClamp(indexToRead + 0, 0, 255)]; + val += Kernel[1] * sourceHistogram[ffxClamp(indexToRead + 1, 0, 255)]; + val += Kernel[2] * sourceHistogram[ffxClamp(indexToRead + 2, 0, 255)]; + val += Kernel[3] * sourceHistogram[ffxClamp(indexToRead + 3, 0, 255)]; + val += Kernel[4] * sourceHistogram[ffxClamp(indexToRead + 4, 0, 255)]; + val += Kernel[5] * sourceHistogram[ffxClamp(indexToRead + 5, 0, 255)]; + val += Kernel[4] * sourceHistogram[ffxClamp(indexToRead + 6, 0, 255)]; + val += Kernel[3] * sourceHistogram[ffxClamp(indexToRead + 7, 0, 255)]; + val += Kernel[2] * sourceHistogram[ffxClamp(indexToRead + 8, 0, 255)]; + val += Kernel[1] * sourceHistogram[ffxClamp(indexToRead + 9, 0, 255)]; + val += Kernel[0] * sourceHistogram[ffxClamp(indexToRead + 10, 0, 255)]; + + val += 1.0; + + if (iGlobalId.y == 0) + { + if (iLocalIndex == 0) + filteredHistogram[255] = 1.0; + else + filteredHistogram[iLocalIndex - 1] = val; + } + else if (iGlobalId.y == 1) + { + filteredHistogram[iLocalIndex] = val; + } + else if (iGlobalId.y == 2) + { + if (iLocalIndex == 255) + filteredHistogram[0] = 1.0; + else + filteredHistogram[iLocalIndex + 1] = val; + } + FFX_GROUP_MEMORY_BARRIER; + + tempBuffer[iLocalIndex] = filteredHistogram[iLocalIndex]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 128) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 128]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 64) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 64]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 32) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 32]; + if (iLocalIndex < 16) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 16]; + if (iLocalIndex < 8 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 8]; + if (iLocalIndex < 4 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 4]; + if (iLocalIndex < 2 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 2]; + if (iLocalIndex < 1 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 1]; + FFX_GROUP_MEMORY_BARRIER; + + filteredHistogram[iLocalIndex] /= tempBuffer[0]; + + FfxFloat32 currentFilteredHistogramsValue = filteredHistogram[iLocalIndex]; + FfxFloat32 previousHistogramsValue = LoadRwSCDPreviousHistogram(iGlobalId.x); + + tempBuffer2[iLocalIndex] = FfxFloat32x2( + currentFilteredHistogramsValue * log(currentFilteredHistogramsValue / previousHistogramsValue), + previousHistogramsValue * log(previousHistogramsValue / currentFilteredHistogramsValue) + ); + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 128) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 128]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 64) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 64]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 32) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 32]; + if (iLocalIndex < 16) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 16]; + if (iLocalIndex < 8 ) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 8]; + if (iLocalIndex < 4 ) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 4]; + if (iLocalIndex < 2 ) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 2]; + + if (iLocalIndex == 0) + { + FfxFloat32x2 sum = tempBuffer2[0] + tempBuffer2[1]; + + FfxFloat32 resFloat = 1 - exp(-(abs(sum.x) + abs(sum.y))); + FfxUInt32 resUInt = FfxUInt32((resFloat / FfxFloat32(HistogramCount)) * Factor); + AtomicIncrementSCDTemp(iGlobalId.y, resUInt); + + FfxUInt32 oldFinishedGroupCount = AtomicIncrementSCDOutput(SCD_OUTPUT_COMPLETED_WORKGROUPS_SLOT, 1); + if (oldFinishedGroupCount == WhereToStop) + { + FfxUInt32 res0 = LoadRwSCDTemp(0); + FfxUInt32 res1 = LoadRwSCDTemp(1); + FfxUInt32 res2 = LoadRwSCDTemp(2); + FfxFloat32 sceneChangeValue = ffxMin(res0, ffxMin(res1, res2)) / Factor; + + FfxUInt32 history = LoadRwSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT) << 1; + if (CrossedSceneChangeThreshold(sceneChangeValue)) + { + history |= 1; + } + StoreSCDOutput(SCD_OUTPUT_SCENE_CHANGE_SLOT, ffxAsUInt32(sceneChangeValue)); + StoreSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT, history); + StoreSCDOutput(SCD_OUTPUT_COMPLETED_WORKGROUPS_SLOT, 0); + + ResetSCDTemp(); + } + } + + if (iGlobalId.y == 1) + { + StoreSCDPreviousHistogram(iGlobalId.x, currentFilteredHistogramsValue); + + StoreSCDHistogram(iGlobalId.x, 0); + } +} + +#endif // FFX_OPTICALFLOW_COMPUTE_SCD_DIVERGENCE_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h new file mode 100644 index 000000000..8ebf0beb1 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h @@ -0,0 +1,58 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_FILTER_OPTICAL_FLOW_V5_H +#define FFX_OPTICALFLOW_FILTER_OPTICAL_FLOW_V5_H + +void FilterOpticalFlow(FfxInt32x2 iGlobalId, FfxInt32x2 iLocalId, FfxInt32x2 iGroupId, FfxInt32 iLocalIndex) +{ + FfxInt32x2 tmpMV[9]; + FfxInt32 idx = 0; + for (FfxInt32 xx = -1; xx < 2; xx++) + { + for (FfxInt32 yy = -1; yy < 2; yy++) + { + + tmpMV[idx] = LoadPreviousOpticalFlow(iGlobalId + FfxInt32x2(xx, yy)); + idx++; + } + } + + FfxUInt32 ret = 0xFFFFFFFF; + for (FfxInt32 i = 0; i < 9; ++i) + { + FfxUInt32 tmp = 0; + for (FfxInt32 j = 0; j < 9; ++j) + { + FfxInt32x2 delta = tmpMV[i] - tmpMV[j]; + tmp = delta.x * delta.x + (delta.y * delta.y + tmp); + } + + ret = min(((tmp) << 4) | i, ret); + } + + FfxUInt32 minIdx = ret & 0xF; + + StoreOpticalFlow(iGlobalId, tmpMV[minIdx]); +} + +#endif // FFX_OPTICALFLOW_FILTER_OPTICAL_FLOW_V5_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h new file mode 100644 index 000000000..aead43868 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h @@ -0,0 +1,92 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_GENERATE_SCD_HISTOGRAM_H +#define FFX_OPTICALFLOW_GENERATE_SCD_HISTOGRAM_H + +#define LBASE 10 + +FFX_GROUPSHARED FfxUInt32 scdBuffer[256 * LBASE]; + +void GenerateSceneChangeDetectionHistogram(FfxInt32x3 iGlobalId, FfxInt32x2 iLocalId, FfxInt32 iLocalIndex, FfxInt32x2 iGroupId, FfxInt32x2 iGroupSize) +{ + FFX_STATIC const FfxUInt32 HistogramsPerDim = 3; + + FfxUInt32 divX = DisplaySize().x / HistogramsPerDim; + FfxUInt32 divY = DisplaySize().y / HistogramsPerDim; + + FfxUInt32 nx = iGlobalId.z % HistogramsPerDim; + FfxUInt32 ny = iGlobalId.z / HistogramsPerDim; + FfxUInt32 startX = divX * nx; + FfxUInt32 startY = divY * ny; + FfxUInt32 stopX = startX + divX; + FfxUInt32 stopY = startY + divY; + + const FfxUInt32 bufferOffset = iLocalIndex * LBASE; + + for (FfxInt32 i = 0; i < LBASE; i++) + { + scdBuffer[bufferOffset + i] = 0; + } + FFX_GROUP_MEMORY_BARRIER; + + FfxInt32x2 coord = FfxInt32x2(startX + (4 * iGlobalId.x), startY + iGlobalId.y); + if (coord.x < stopX) + { + for (; coord.y < stopY; coord.y += 128) + { + FfxUInt32x4 color = FfxUInt32x4( + LoadOpticalFlowInput(coord + FfxInt32x2(0, 0)), + LoadOpticalFlowInput(coord + FfxInt32x2(1, 0)), + LoadOpticalFlowInput(coord + FfxInt32x2(2, 0)), + LoadOpticalFlowInput(coord + FfxInt32x2(3, 0)) + ); + color *= LBASE; + + FfxUInt32 scramblingOffset = iLocalIndex % LBASE; + +#if defined(FFX_HLSL) + InterlockedAdd(scdBuffer[color.x + scramblingOffset], 1); + InterlockedAdd(scdBuffer[color.y + scramblingOffset], 1); + InterlockedAdd(scdBuffer[color.z + scramblingOffset], 1); + InterlockedAdd(scdBuffer[color.w + scramblingOffset], 1); +#elif defined(FFX_GLSL) + atomicAdd(scdBuffer[color.x + scramblingOffset], 1); + atomicAdd(scdBuffer[color.y + scramblingOffset], 1); + atomicAdd(scdBuffer[color.z + scramblingOffset], 1); + atomicAdd(scdBuffer[color.w + scramblingOffset], 1); +#endif + } + } + FFX_GROUP_MEMORY_BARRIER; + + FfxUInt32 value = 0; + for (FfxInt32 i = 0; i < LBASE; i++) + { + value += scdBuffer[bufferOffset + i]; + } + + FfxUInt32 histogramStart = (iGroupSize.x * iGroupSize.y) * iGlobalId.z; + AtomicIncrementSCDHistogram(FfxInt32(histogramStart + iLocalIndex), value); +} + +#endif // FFX_OPTICALFLOW_GENERATE_SCD_HISTOGRAM_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h new file mode 100644 index 000000000..57fd8a74b --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h @@ -0,0 +1,106 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_PREPARE_LUMA_H +#define FFX_OPTICALFLOW_PREPARE_LUMA_H + +FfxFloat32 LuminanceToPerceivedLuminance(FfxFloat32 fLuminance) +{ + FfxFloat32 fPercievedLuminance = 0; + if (fLuminance <= 216.0f / 24389.0f) { + fPercievedLuminance = fLuminance * (24389.0f / 27.0f); + } + else { + fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; + } + + return fPercievedLuminance * 0.01f; +} + +FfxFloat32 LinearLdrToLuminance(FfxFloat32x3 linearRec709RGB) +{ + FfxFloat32 fY = 0.2126 * linearRec709RGB.x + 0.7152 * linearRec709RGB.y + 0.0722 * linearRec709RGB.z; + return fY; +} + +FfxFloat32 LinearRec2020ToLuminance(FfxFloat32x3 linearRec2020RGB) +{ + FfxFloat32 fY = 0.2627 * linearRec2020RGB.x + 0.678 * linearRec2020RGB.y + 0.0593 * linearRec2020RGB.z; + return fY; +} + +FfxFloat32 PQCorrectedHdrToLuminance(FfxFloat32x3 pq, FfxFloat32 maxLuminance) +{ + FfxFloat32 fY = LinearRec2020ToLuminance(ffxLinearFromPQ(pq) * (10000.0f / maxLuminance)); + return fY; +} + +FfxFloat32x3 ffxscRGBToLinear(FfxFloat32x3 value, FfxFloat32 minLuminance, FfxFloat32 maxLuminance) +{ + FfxFloat32x3 p = value - ffxBroadcast3(minLuminance / 80.0f); + return p / ffxBroadcast3((maxLuminance - minLuminance) / 80.0f); +} + +FfxFloat32 SCRGBCorrectedHdrToLuminance(FfxFloat32x3 scRGB, FfxFloat32 minLuminance, FfxFloat32 maxLuminance) +{ + FfxFloat32 fY = LinearLdrToLuminance(ffxscRGBToLinear(scRGB, minLuminance, maxLuminance)); + return fY; +} + +void PrepareLuma(FfxInt32x2 iGlobalId, FfxInt32 iLocalIndex) +{ +#define PixelsPerThreadX 2 +#define PixelsPerThreadY 2 +#pragma unroll + for (FfxInt32 y = 0; y < PixelsPerThreadY; y++) + { +#pragma unroll + for (FfxInt32 x = 0; x < PixelsPerThreadX; x++) + { + FfxInt32x2 pos = iGlobalId * FfxInt32x2(PixelsPerThreadX, PixelsPerThreadY) + FfxInt32x2(x, y); + FfxInt32x2 iPxHrPos = pos; + FfxFloat32 fY = 0.0; + + FfxFloat32x3 inputColor = LoadInputColor(iPxHrPos).rgb; + + FfxUInt32 backbufferTransferFunction = BackbufferTransferFunction(); + if (backbufferTransferFunction == 0) + { + fY = LinearLdrToLuminance(inputColor); + } + else if (backbufferTransferFunction == 1) + { + fY = PQCorrectedHdrToLuminance(inputColor, MinMaxLuminance()[1]); + fY = LuminanceToPerceivedLuminance(fY); + } + else if (backbufferTransferFunction == 2) + { + fY = SCRGBCorrectedHdrToLuminance(inputColor, MinMaxLuminance()[0], MinMaxLuminance()[1]); + fY = LuminanceToPerceivedLuminance(fY); + } + + StoreOpticalFlowInput(pos, FfxUInt32(fY * 255)); + } + } +} + +#endif // FFX_OPTICALFLOW_PREPARE_LUMA_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h new file mode 100644 index 000000000..4676af409 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h @@ -0,0 +1,74 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_RESOURCES_H +#define FFX_OPTICALFLOW_RESOURCES_H + +#if defined(FFX_CPU) || defined(FFX_GPU) + +#define FFX_OF_RESOURCE_IDENTIFIER_NULL 0 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1 1 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_1 2 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_2 3 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_3 4 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_4 5 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_5 6 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_6 7 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2 8 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_1 9 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_2 10 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_3 11 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_4 12 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_5 13 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_6 14 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1 15 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_1 16 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_2 17 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_3 18 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_4 19 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_5 20 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_6 21 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2 22 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_1 23 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_2 24 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_3 25 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_4 26 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_5 27 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_6 28 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCD_HISTOGRAM 29 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM 30 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCD_TEMP 31 + +#define FFX_OF_RESOURCE_IDENTIFIER_COUNT 32 + +#define FFX_OPTICALFLOW_CONSTANTBUFFER_IDENTIFIER 0 +#define FFX_OPTICALFLOW_CONSTANTBUFFER_IDENTIFIER_SPD 1 +#define FFX_OPTICALFLOW_CONSTANTBUFFER_COUNT 2 + +#endif // #if defined(FFX_CPU) || defined(FFX_GPU) + +#endif //!defined( FFX_OPTICALFLOW_RESOURCES_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h new file mode 100644 index 000000000..16238f4e6 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h @@ -0,0 +1,99 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_SCALE_OPTICAL_FLOW_ADVANCED_V5_H +#define FFX_OPTICALFLOW_SCALE_OPTICAL_FLOW_ADVANCED_V5_H + +#define WG_WIDTH FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define WG_HEIGHT FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define WG_DEPTH FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +FFX_GROUPSHARED FfxInt32x2 nearestVectors[4][WG_HEIGHT][WG_WIDTH]; +FFX_GROUPSHARED FfxUInt32 localRegion[4][WG_HEIGHT][WG_WIDTH]; +FFX_GROUPSHARED FfxUInt32 sads[4][WG_HEIGHT][WG_WIDTH]; + +void ScaleOpticalFlowAdvanced(FfxInt32x3 iGlobalId, FfxInt32x3 iLocalId) +{ + if (IsSceneChanged()) + { + StoreOpticalFlowNextLevel(iGlobalId.xy, FfxInt32x2(0, 0)); + + return; + } + + int xOffset = (iLocalId.z % 2) - 1 + iGlobalId.x % 2; + int yOffset = (iLocalId.z / 2) - 1 + iGlobalId.y % 2; + + FfxInt32x2 srcOFPos = FfxInt32x2( + (iGlobalId.x / 2) + xOffset, + (iGlobalId.y / 2) + yOffset + ); + + FfxInt32x2 nearestVector = LoadOpticalFlow(srcOFPos); + nearestVectors[iLocalId.z][iLocalId.y][iLocalId.x] = nearestVector * 2; + + int maxY = 4; + for (int n = iLocalId.z; n < maxY; n += WG_DEPTH) + { + { + FfxInt32x2 lumaPos = FfxInt32x2((iGlobalId.x) * 4, iGlobalId.y * maxY + n); + FfxUInt32 firstPixel = LoadFirstImagePackedLuma(lumaPos); + localRegion[n][iLocalId.y][iLocalId.x] = firstPixel; + } + } + FFX_GROUP_MEMORY_BARRIER; + + uint sad = 0; + for (int n = 0; n < maxY; n++) + { + { + FfxInt32x2 lumaPos = FfxInt32x2((iGlobalId.x) * 4, (iGlobalId.y * maxY + n)) + nearestVector; + FfxUInt32 secondPixel = LoadSecondImagePackedLuma(lumaPos); + sad += Sad(localRegion[n][iLocalId.y][iLocalId.x], secondPixel); + } + } + sads[iLocalId.z][iLocalId.y][iLocalId.x] = sad; + + FFX_GROUP_MEMORY_BARRIER; + + { + if (iLocalId.z == 0) + { + uint bestSad = 0xffffffff; + uint bestId = 0; + + for (int n = 0; n < 4; n++) + { + if ((sads[n][iLocalId.y][iLocalId.x]) < bestSad) + { + bestSad = sads[n][iLocalId.y][iLocalId.x]; + bestId = n; + } + } + + FfxInt32x2 outputVector = nearestVectors[bestId][iLocalId.y][iLocalId.x]; + + StoreOpticalFlowNextLevel(iGlobalId.xy, outputVector); + } + } +} + +#endif // FFX_OPTICALFLOW_SCALE_OPTICAL_FLOW_ADVANCED_V5_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h new file mode 100644 index 000000000..c3ee50f02 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h @@ -0,0 +1,1014 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup FfxGPUSpd FidelityFX SPD +/// FidelityFX Single Pass Downsampler 2.0 GPU documentation +/// +/// @ingroup FfxGPUEffects + +/// Setup required constant values for SPD (CPU). +/// +/// @param [out] dispatchThreadGroupCountXY CPU side: dispatch thread group count xy. z is number of slices of the input texture +/// @param [out] workGroupOffset GPU side: pass in as constant +/// @param [out] numWorkGroupsAndMips GPU side: pass in as constant +/// @param [in] rectInfo left, top, width, height +/// @param [in] mips optional: if -1, calculate based on rect width and height +/// +/// @ingroup FfxGPUSpd +#if defined(FFX_CPU) +FFX_STATIC void ffxSpdSetup(FfxUInt32x2 dispatchThreadGroupCountXY, + FfxUInt32x2 workGroupOffset, + FfxUInt32x2 numWorkGroupsAndMips, + FfxUInt32x4 rectInfo, + FfxInt32 mips) +{ + // determines the offset of the first tile to downsample based on + // left (rectInfo[0]) and top (rectInfo[1]) of the subregion. + workGroupOffset[0] = rectInfo[0] / 64; + workGroupOffset[1] = rectInfo[1] / 64; + + FfxUInt32 endIndexX = (rectInfo[0] + rectInfo[2] - 1) / 64; // rectInfo[0] = left, rectInfo[2] = width + FfxUInt32 endIndexY = (rectInfo[1] + rectInfo[3] - 1) / 64; // rectInfo[1] = top, rectInfo[3] = height + + // we only need to dispatch as many thread groups as tiles we need to downsample + // number of tiles per slice depends on the subregion to downsample + dispatchThreadGroupCountXY[0] = endIndexX + 1 - workGroupOffset[0]; + dispatchThreadGroupCountXY[1] = endIndexY + 1 - workGroupOffset[1]; + + // number of thread groups per slice + numWorkGroupsAndMips[0] = (dispatchThreadGroupCountXY[0]) * (dispatchThreadGroupCountXY[1]); + + if (mips >= 0) + { + numWorkGroupsAndMips[1] = FfxUInt32(mips); + } + else + { + // calculate based on rect width and height + FfxUInt32 resolution = ffxMax(rectInfo[2], rectInfo[3]); + numWorkGroupsAndMips[1] = FfxUInt32((ffxMin(floor(log2(FfxFloat32(resolution))), FfxFloat32(12)))); + } +} + +/// Setup required constant values for SPD (CPU). +/// +/// @param [out] dispatchThreadGroupCountXY CPU side: dispatch thread group count xy. z is number of slices of the input texture +/// @param [out] workGroupOffset GPU side: pass in as constant +/// @param [out] numWorkGroupsAndMips GPU side: pass in as constant +/// @param [in] rectInfo left, top, width, height +/// +/// @ingroup FfxGPUSpd +FFX_STATIC void ffxSpdSetup(FfxUInt32x2 dispatchThreadGroupCountXY, + FfxUInt32x2 workGroupOffset, + FfxUInt32x2 numWorkGroupsAndMips, + FfxUInt32x4 rectInfo) +{ + ffxSpdSetup(dispatchThreadGroupCountXY, workGroupOffset, numWorkGroupsAndMips, rectInfo, -1); +} +#endif // #if defined(FFX_CPU) + + +//============================================================================================================================== +// NON-PACKED VERSION +//============================================================================================================================== +#if defined(FFX_GPU) +#if defined(FFX_SPD_PACKED_ONLY) +// Avoid compiler errors by including default implementations of these callbacks. +FfxFloat32x4 SpdLoadSourceImage(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} +void SpdStore(FfxInt32x2 p, FfxFloat32x4 value, FfxUInt32 mip, FfxUInt32 slice) +{ +} +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ +} +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} +#endif // #if FFX_SPD_PACKED_ONLY + +//_____________________________________________________________/\_______________________________________________________________ +#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) +#extension GL_KHR_shader_subgroup_quad:require +#endif + +void ffxSpdWorkgroupShuffleBarrier() +{ + FFX_GROUP_MEMORY_BARRIER; +} + +// Only last active workgroup should proceed +bool SpdExitWorkgroup(FfxUInt32 numWorkGroups, FfxUInt32 localInvocationIndex, FfxUInt32 slice) +{ + // global atomic counter + if (localInvocationIndex == 0) + { + SpdIncreaseAtomicCounter(slice); + } + + ffxSpdWorkgroupShuffleBarrier(); + return (SpdGetAtomicCounter() != (numWorkGroups - 1)); +} + +// User defined: FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3); +FfxFloat32x4 SpdReduceQuad(FfxFloat32x4 v) +{ +#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + + FfxFloat32x4 v0 = v; + FfxFloat32x4 v1 = subgroupQuadSwapHorizontal(v); + FfxFloat32x4 v2 = subgroupQuadSwapVertical(v); + FfxFloat32x4 v3 = subgroupQuadSwapDiagonal(v); + return SpdReduce4(v0, v1, v2, v3); + +#elif defined(FFX_HLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + + // requires SM6.0 + FfxFloat32x4 v0 = v; + FfxFloat32x4 v1 = QuadReadAcrossX(v); + FfxFloat32x4 v2 = QuadReadAcrossY(v); + FfxFloat32x4 v3 = QuadReadAcrossDiagonal(v); + return SpdReduce4(v0, v1, v2, v3); +/* + // if SM6.0 is not available, you can use the AMD shader intrinsics + // the AMD shader intrinsics are available in AMD GPU Services (AGS) library: + // https://gpuopen.com/amd-gpu-services-ags-library/ + // works for DX11 + FfxFloat32x4 v0 = v; + FfxFloat32x4 v1; + v1.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + FfxFloat32x4 v2; + v2.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + FfxFloat32x4 v3; + v3.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + return SpdReduce4(v0, v1, v2, v3); + */ +#endif + return v; +} + +FfxFloat32x4 SpdReduceIntermediate(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3) +{ + FfxFloat32x4 v0 = SpdLoadIntermediate(i0.x, i0.y); + FfxFloat32x4 v1 = SpdLoadIntermediate(i1.x, i1.y); + FfxFloat32x4 v2 = SpdLoadIntermediate(i2.x, i2.y); + FfxFloat32x4 v3 = SpdLoadIntermediate(i3.x, i3.y); + return SpdReduce4(v0, v1, v2, v3); +} + +FfxFloat32x4 SpdReduceLoad4(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat32x4 v0 = SpdLoad(FfxInt32x2(i0), slice); + FfxFloat32x4 v1 = SpdLoad(FfxInt32x2(i1), slice); + FfxFloat32x4 v2 = SpdLoad(FfxInt32x2(i2), slice); + FfxFloat32x4 v3 = SpdLoad(FfxInt32x2(i3), slice); + return SpdReduce4(v0, v1, v2, v3); +} + +FfxFloat32x4 SpdReduceLoad4(FfxUInt32x2 base, FfxUInt32 slice) +{ + return SpdReduceLoad4(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +} + +FfxFloat32x4 SpdReduceLoadSourceImage4(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat32x4 v0 = SpdLoadSourceImage(FfxInt32x2(i0), slice); + FfxFloat32x4 v1 = SpdLoadSourceImage(FfxInt32x2(i1), slice); + FfxFloat32x4 v2 = SpdLoadSourceImage(FfxInt32x2(i2), slice); + FfxFloat32x4 v3 = SpdLoadSourceImage(FfxInt32x2(i3), slice); + return SpdReduce4(v0, v1, v2, v3); +} + +FfxFloat32x4 SpdReduceLoadSourceImage(FfxUInt32x2 base, FfxUInt32 slice) +{ +#if defined(SPD_LINEAR_SAMPLER) + return SpdLoadSourceImage(FfxInt32x2(base), slice); +#else + return SpdReduceLoadSourceImage4(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +#endif +} + +void SpdDownsampleMips_0_1_Intrinsics(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ + FfxFloat32x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[3], 0, slice); + + if (mip <= 1) + return; + + v[0] = SpdReduceQuad(v[0]); + v[1] = SpdReduceQuad(v[1]); + v[2] = SpdReduceQuad(v[2]); + v[3] = SpdReduceQuad(v[3]); + + if ((localInvocationIndex % 4) == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2), v[0], 1, slice); + SpdStoreIntermediate(x / 2, y / 2, v[0]); + + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2), v[1], 1, slice); + SpdStoreIntermediate(x / 2 + 8, y / 2, v[1]); + + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2 + 8), v[2], 1, slice); + SpdStoreIntermediate(x / 2, y / 2 + 8, v[2]); + + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2 + 8), v[3], 1, slice); + SpdStoreIntermediate(x / 2 + 8, y / 2 + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1_LDS(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ + FfxFloat32x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[3], 0, slice); + + if (mip <= 1) + return; + + for (FfxUInt32 i = 0; i < 4; i++) + { + SpdStoreIntermediate(x, y, v[i]); + ffxSpdWorkgroupShuffleBarrier(); + if (localInvocationIndex < 64) + { + v[i] = SpdReduceIntermediate(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x + (i % 2) * 8, y + (i / 2) * 8), v[i], 1, slice); + } + ffxSpdWorkgroupShuffleBarrier(); + } + + if (localInvocationIndex < 64) + { + SpdStoreIntermediate(x + 0, y + 0, v[0]); + SpdStoreIntermediate(x + 8, y + 0, v[1]); + SpdStoreIntermediate(x + 0, y + 8, v[2]); + SpdStoreIntermediate(x + 8, y + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + SpdDownsampleMips_0_1_LDS(x, y, workGroupID, localInvocationIndex, mip, slice); +#else + SpdDownsampleMips_0_1_Intrinsics(x, y, workGroupID, localInvocationIndex, mip, slice); +#endif +} + + +void SpdDownsampleMip_2(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 64) + { + FfxFloat32x4 v = SpdReduceIntermediate(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStore(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS, try to reduce bank conflicts + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 x + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // ... + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + SpdStoreIntermediate(x * 2 + y % 2, y * 2, v); + } +#else + FfxFloat32x4 v = SpdLoadIntermediate(x, y); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediate(x + (y / 2) % 2, y, v); + } +#endif +} + +void SpdDownsampleMip_3(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 16) + { + // x 0 x 0 + // 0 0 0 0 + // 0 x 0 x + // 0 0 0 0 + FfxFloat32x4 v = + SpdReduceIntermediate(FfxUInt32x2(x * 4 + 0 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 2 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 0 + 1, y * 4 + 2), FfxUInt32x2(x * 4 + 2 + 1, y * 4 + 2)); + SpdStore(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 + // ... + // 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 + // ... + // 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x + // ... + SpdStoreIntermediate(x * 4 + y, y * 4, v); + } +#else + if (localInvocationIndex < 64) + { + FfxFloat32x4 v = SpdLoadIntermediate(x * 2 + y % 2, y * 2); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediate(x * 2 + y / 2, y * 2, v); + } + } +#endif +} + +void SpdDownsampleMip_4(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 4) + { + // x 0 0 0 x 0 0 0 + // ... + // 0 x 0 0 0 x 0 0 + FfxFloat32x4 v = SpdReduceIntermediate(FfxUInt32x2(x * 8 + 0 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 4 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 0 + 1 + y * 2, y * 8 + 4), + FfxUInt32x2(x * 8 + 4 + 1 + y * 2, y * 8 + 4)); + SpdStore(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x x x x 0 ... + // 0 ... + SpdStoreIntermediate(x + y * 2, 0, v); + } +#else + if (localInvocationIndex < 16) + { + FfxFloat32x4 v = SpdLoadIntermediate(x * 4 + y, y * 4); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediate(x / 2 + y, 0, v); + } + } +#endif +} + +void SpdDownsampleMip_5(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 1) + { + // x x x x 0 ... + // 0 ... + FfxFloat32x4 v = SpdReduceIntermediate(FfxUInt32x2(0, 0), FfxUInt32x2(1, 0), FfxUInt32x2(2, 0), FfxUInt32x2(3, 0)); + SpdStore(FfxInt32x2(workGroupID.xy), v, mip, slice); + } +#else + if (localInvocationIndex < 4) + { + FfxFloat32x4 v = SpdLoadIntermediate(localInvocationIndex, 0); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy), v, mip, slice); + } + } +#endif +} + +void SpdDownsampleMips_6_7(FfxUInt32 x, FfxUInt32 y, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxInt32x2 tex = FfxInt32x2(x * 4 + 0, y * 4 + 0); + FfxInt32x2 pix = FfxInt32x2(x * 2 + 0, y * 2 + 0); + FfxFloat32x4 v0 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v0, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 0); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 0); + FfxFloat32x4 v1 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v1, 6, slice); + + tex = FfxInt32x2(x * 4 + 0, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 0, y * 2 + 1); + FfxFloat32x4 v2 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v2, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 1); + FfxFloat32x4 v3 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v3, 6, slice); + + if (mips <= 7) + return; + // no barrier needed, working on values only from the same thread + + FfxFloat32x4 v = SpdReduce4(v0, v1, v2, v3); + SpdStore(FfxInt32x2(x, y), v, 7, slice); + SpdStoreIntermediate(x, y, v); +} + +void SpdDownsampleNextFour(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 baseMip, FfxUInt32 mips, FfxUInt32 slice) +{ + if (mips <= baseMip) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_2(x, y, workGroupID, localInvocationIndex, baseMip, slice); + + if (mips <= baseMip + 1) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_3(x, y, workGroupID, localInvocationIndex, baseMip + 1, slice); + + if (mips <= baseMip + 2) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_4(x, y, workGroupID, localInvocationIndex, baseMip + 2, slice); + + if (mips <= baseMip + 3) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_5(workGroupID, localInvocationIndex, baseMip + 3, slice); +} + +/// Downsamples a 64x64 tile based on the work group id. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// +/// @ingroup FfxGPUSpd +void SpdDownsample(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice) +{ + // compute MIP level 0 and 1 + FfxUInt32x2 sub_xy = ffxRemapForWaveReduction(localInvocationIndex % 64); + FfxUInt32 x = sub_xy.x + 8 * ((localInvocationIndex >> 6) % 2); + FfxUInt32 y = sub_xy.y + 8 * ((localInvocationIndex >> 7)); + SpdDownsampleMips_0_1(x, y, workGroupID, localInvocationIndex, mips, slice); + + // compute MIP level 2, 3, 4, 5 + SpdDownsampleNextFour(x, y, workGroupID, localInvocationIndex, 2, mips, slice); + + if (mips <= 6) + return; + + // increase the global atomic counter for the given slice and check if it's the last remaining thread group: + // terminate if not, continue if yes. + if (SpdExitWorkgroup(numWorkGroups, localInvocationIndex, slice)) + return; + + // reset the global atomic counter back to 0 for the next spd dispatch + SpdResetAtomicCounter(slice); + + // After mip 5 there is only a single workgroup left that downsamples the remaining up to 64x64 texels. + // compute MIP level 6 and 7 + SpdDownsampleMips_6_7(x, y, mips, slice); + + // compute MIP level 8, 9, 10, 11 + SpdDownsampleNextFour(x, y, FfxUInt32x2(0, 0), localInvocationIndex, 8, mips, slice); +} +/// Downsamples a 64x64 tile based on the work group id and work group offset. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// @param [in] workGroupOffset the work group offset. it's (0,0) in case the entire input texture is downsampled. +/// +/// @ingroup FfxGPUSpd +void SpdDownsample(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice, FfxUInt32x2 workGroupOffset) +{ + SpdDownsample(workGroupID + workGroupOffset, localInvocationIndex, mips, numWorkGroups, slice); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +//============================================================================================================================== +// PACKED VERSION +//============================================================================================================================== + +#if FFX_HALF + +#if defined(FFX_GLSL) +#extension GL_EXT_shader_subgroup_extended_types_float16:require +#endif + +FfxFloat16x4 SpdReduceQuadH(FfxFloat16x4 v) +{ +#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + FfxFloat16x4 v0 = v; + FfxFloat16x4 v1 = subgroupQuadSwapHorizontal(v); + FfxFloat16x4 v2 = subgroupQuadSwapVertical(v); + FfxFloat16x4 v3 = subgroupQuadSwapDiagonal(v); + return SpdReduce4H(v0, v1, v2, v3); +#elif defined(FFX_HLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + // requires SM6.0 + FfxFloat16x4 v0 = v; + FfxFloat16x4 v1 = QuadReadAcrossX(v); + FfxFloat16x4 v2 = QuadReadAcrossY(v); + FfxFloat16x4 v3 = QuadReadAcrossDiagonal(v); + return SpdReduce4H(v0, v1, v2, v3); +/* + // if SM6.0 is not available, you can use the AMD shader intrinsics + // the AMD shader intrinsics are available in AMD GPU Services (AGS) library: + // https://gpuopen.com/amd-gpu-services-ags-library/ + // works for DX11 + FfxFloat16x4 v0 = v; + FfxFloat16x4 v1; + v1.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + FfxFloat16x4 v2; + v2.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + FfxFloat16x4 v3; + v3.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + return SpdReduce4H(v0, v1, v2, v3); + */ +#endif + return FfxFloat16x4(0.0, 0.0, 0.0, 0.0); +} + +FfxFloat16x4 SpdReduceIntermediateH(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3) +{ + FfxFloat16x4 v0 = SpdLoadIntermediateH(i0.x, i0.y); + FfxFloat16x4 v1 = SpdLoadIntermediateH(i1.x, i1.y); + FfxFloat16x4 v2 = SpdLoadIntermediateH(i2.x, i2.y); + FfxFloat16x4 v3 = SpdLoadIntermediateH(i3.x, i3.y); + return SpdReduce4H(v0, v1, v2, v3); +} + +FfxFloat16x4 SpdReduceLoad4H(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat16x4 v0 = SpdLoadH(FfxInt32x2(i0), slice); + FfxFloat16x4 v1 = SpdLoadH(FfxInt32x2(i1), slice); + FfxFloat16x4 v2 = SpdLoadH(FfxInt32x2(i2), slice); + FfxFloat16x4 v3 = SpdLoadH(FfxInt32x2(i3), slice); + return SpdReduce4H(v0, v1, v2, v3); +} + +FfxFloat16x4 SpdReduceLoad4H(FfxUInt32x2 base, FfxUInt32 slice) +{ + return SpdReduceLoad4H(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +} + +FfxFloat16x4 SpdReduceLoadSourceImage4H(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat16x4 v0 = SpdLoadSourceImageH(FfxInt32x2(i0), slice); + FfxFloat16x4 v1 = SpdLoadSourceImageH(FfxInt32x2(i1), slice); + FfxFloat16x4 v2 = SpdLoadSourceImageH(FfxInt32x2(i2), slice); + FfxFloat16x4 v3 = SpdLoadSourceImageH(FfxInt32x2(i3), slice); + return SpdReduce4H(v0, v1, v2, v3); +} + +FfxFloat16x4 SpdReduceLoadSourceImageH(FfxUInt32x2 base, FfxUInt32 slice) +{ +#if defined(SPD_LINEAR_SAMPLER) + return SpdLoadSourceImageH(FfxInt32x2(base), slice); +#else + return SpdReduceLoadSourceImage4H(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +#endif +} + +void SpdDownsampleMips_0_1_IntrinsicsH(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxFloat16x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[3], 0, slice); + + if (mips <= 1) + return; + + v[0] = SpdReduceQuadH(v[0]); + v[1] = SpdReduceQuadH(v[1]); + v[2] = SpdReduceQuadH(v[2]); + v[3] = SpdReduceQuadH(v[3]); + + if ((localInvocationIndex % 4) == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2), v[0], 1, slice); + SpdStoreIntermediateH(x / 2, y / 2, v[0]); + + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2), v[1], 1, slice); + SpdStoreIntermediateH(x / 2 + 8, y / 2, v[1]); + + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2 + 8), v[2], 1, slice); + SpdStoreIntermediateH(x / 2, y / 2 + 8, v[2]); + + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2 + 8), v[3], 1, slice); + SpdStoreIntermediateH(x / 2 + 8, y / 2 + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1_LDSH(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxFloat16x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[3], 0, slice); + + if (mips <= 1) + return; + + for (FfxInt32 i = 0; i < 4; i++) + { + SpdStoreIntermediateH(x, y, v[i]); + ffxSpdWorkgroupShuffleBarrier(); + if (localInvocationIndex < 64) + { + v[i] = SpdReduceIntermediateH(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x + (i % 2) * 8, y + (i / 2) * 8), v[i], 1, slice); + } + ffxSpdWorkgroupShuffleBarrier(); + } + + if (localInvocationIndex < 64) + { + SpdStoreIntermediateH(x + 0, y + 0, v[0]); + SpdStoreIntermediateH(x + 8, y + 0, v[1]); + SpdStoreIntermediateH(x + 0, y + 8, v[2]); + SpdStoreIntermediateH(x + 8, y + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + SpdDownsampleMips_0_1_LDSH(x, y, workGroupID, localInvocationIndex, mips, slice); +#else + SpdDownsampleMips_0_1_IntrinsicsH(x, y, workGroupID, localInvocationIndex, mips, slice); +#endif +} + + +void SpdDownsampleMip_2H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 64) + { + FfxFloat16x4 v = SpdReduceIntermediateH(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS, try to reduce bank conflicts + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 x + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // ... + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + SpdStoreIntermediateH(x * 2 + y % 2, y * 2, v); + } +#else + FfxFloat16x4 v = SpdLoadIntermediateH(x, y); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediateH(x + (y / 2) % 2, y, v); + } +#endif +} + +void SpdDownsampleMip_3H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 16) + { + // x 0 x 0 + // 0 0 0 0 + // 0 x 0 x + // 0 0 0 0 + FfxFloat16x4 v = + SpdReduceIntermediateH(FfxUInt32x2(x * 4 + 0 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 2 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 0 + 1, y * 4 + 2), FfxUInt32x2(x * 4 + 2 + 1, y * 4 + 2)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 + // ... + // 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 + // ... + // 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x + // ... + SpdStoreIntermediateH(x * 4 + y, y * 4, v); + } +#else + if (localInvocationIndex < 64) + { + FfxFloat16x4 v = SpdLoadIntermediateH(x * 2 + y % 2, y * 2); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediateH(x * 2 + y / 2, y * 2, v); + } + } +#endif +} + +void SpdDownsampleMip_4H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 4) + { + // x 0 0 0 x 0 0 0 + // ... + // 0 x 0 0 0 x 0 0 + FfxFloat16x4 v = SpdReduceIntermediateH(FfxUInt32x2(x * 8 + 0 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 4 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 0 + 1 + y * 2, y * 8 + 4), + FfxUInt32x2(x * 8 + 4 + 1 + y * 2, y * 8 + 4)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x x x x 0 ... + // 0 ... + SpdStoreIntermediateH(x + y * 2, 0, v); + } +#else + if (localInvocationIndex < 16) + { + FfxFloat16x4 v = SpdLoadIntermediateH(x * 4 + y, y * 4); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediateH(x / 2 + y, 0, v); + } + } +#endif +} + +void SpdDownsampleMip_5H(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 1) + { + // x x x x 0 ... + // 0 ... + FfxFloat16x4 v = SpdReduceIntermediateH(FfxUInt32x2(0, 0), FfxUInt32x2(1, 0), FfxUInt32x2(2, 0), FfxUInt32x2(3, 0)); + SpdStoreH(FfxInt32x2(workGroupID.xy), v, mip, slice); + } +#else + if (localInvocationIndex < 4) + { + FfxFloat16x4 v = SpdLoadIntermediateH(localInvocationIndex, 0); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy), v, mip, slice); + } + } +#endif +} + +void SpdDownsampleMips_6_7H(FfxUInt32 x, FfxUInt32 y, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxInt32x2 tex = FfxInt32x2(x * 4 + 0, y * 4 + 0); + FfxInt32x2 pix = FfxInt32x2(x * 2 + 0, y * 2 + 0); + FfxFloat16x4 v0 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v0, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 0); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 0); + FfxFloat16x4 v1 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v1, 6, slice); + + tex = FfxInt32x2(x * 4 + 0, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 0, y * 2 + 1); + FfxFloat16x4 v2 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v2, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 1); + FfxFloat16x4 v3 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v3, 6, slice); + + if (mips < 8) + return; + // no barrier needed, working on values only from the same thread + + FfxFloat16x4 v = SpdReduce4H(v0, v1, v2, v3); + SpdStoreH(FfxInt32x2(x, y), v, 7, slice); + SpdStoreIntermediateH(x, y, v); +} + +void SpdDownsampleNextFourH(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 baseMip, FfxUInt32 mips, FfxUInt32 slice) +{ + if (mips <= baseMip) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_2H(x, y, workGroupID, localInvocationIndex, baseMip, slice); + + if (mips <= baseMip + 1) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_3H(x, y, workGroupID, localInvocationIndex, baseMip + 1, slice); + + if (mips <= baseMip + 2) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_4H(x, y, workGroupID, localInvocationIndex, baseMip + 2, slice); + + if (mips <= baseMip + 3) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_5H(workGroupID, localInvocationIndex, baseMip + 3, slice); +} + +/// Downsamples a 64x64 tile based on the work group id and work group offset. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// Uses half types. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// +/// @ingroup FfxGPUSpd +void SpdDownsampleH(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice) +{ + FfxUInt32x2 sub_xy = ffxRemapForWaveReduction(localInvocationIndex % 64); + FfxUInt32 x = sub_xy.x + 8 * ((localInvocationIndex >> 6) % 2); + FfxUInt32 y = sub_xy.y + 8 * ((localInvocationIndex >> 7)); + + // compute MIP level 0 and 1 + SpdDownsampleMips_0_1H(x, y, workGroupID, localInvocationIndex, mips, slice); + + // compute MIP level 2, 3, 4, 5 + SpdDownsampleNextFourH(x, y, workGroupID, localInvocationIndex, 2, mips, slice); + + if (mips < 7) + return; + + // increase the global atomic counter for the given slice and check if it's the last remaining thread group: + // terminate if not, continue if yes. + if (SpdExitWorkgroup(numWorkGroups, localInvocationIndex, slice)) + return; + + // reset the global atomic counter back to 0 for the next spd dispatch + SpdResetAtomicCounter(slice); + + // After mip 5 there is only a single workgroup left that downsamples the remaining up to 64x64 texels. + // compute MIP level 6 and 7 + SpdDownsampleMips_6_7H(x, y, mips, slice); + + // compute MIP level 8, 9, 10, 11 + SpdDownsampleNextFourH(x, y, FfxUInt32x2(0, 0), localInvocationIndex, 8, mips, slice); +} + +/// Downsamples a 64x64 tile based on the work group id and work group offset. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// Uses half types. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// @param [in] workGroupOffset the work group offset. it's (0,0) in case the entire input texture is downsampled. +/// +/// @ingroup FfxGPUSpd +void SpdDownsampleH(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice, FfxUInt32x2 workGroupOffset) +{ + SpdDownsampleH(workGroupID + workGroupOffset, localInvocationIndex, mips, numWorkGroups, slice); +} + +#endif // #if FFX_HALF +#endif // #if defined(FFX_GPU) diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl new file mode 100644 index 000000000..5ece11aee --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl @@ -0,0 +1,75 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1 4 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3 6 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4 7 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5 8 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6 9 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7 10 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8 11 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9 12 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10 13 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11 14 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12 15 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 16 +#define FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID 17 + +#ifdef FFX_HALF + #undef FFX_HALF + #define FFX_HALF 0 +#endif + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeFrameinterpolationGameVectorFieldInpaintingPyramid(FfxInt32x3(gl_WorkGroupID), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl new file mode 100644 index 000000000..cdb7bde4d --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl @@ -0,0 +1,74 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT 0 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS 1 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2 4 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4 6 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5 7 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6 8 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7 9 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8 10 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9 11 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10 12 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11 13 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12 14 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 15 +#define FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID 16 + +#ifdef FFX_HALF + #undef FFX_HALF + #define FFX_HALF 0 +#endif + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeFrameinterpolationInpaintingPyramid(FfxInt32x3(gl_WorkGroupID), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl new file mode 100644 index 000000000..a089510fc --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK 4 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER 5 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 6 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 7 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 8 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT 9 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 10 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_debug_view.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeDebugView(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl new file mode 100644 index 000000000..40bb73561 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl @@ -0,0 +1,61 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME 4 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 5 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 6 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK 7 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 8 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeDisocclusionMask(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl new file mode 100644 index 000000000..1071d629a --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 4 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y 6 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 7 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeGameFieldMvs(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl new file mode 100644 index 000000000..facfca25c --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 3 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT 7 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 8 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_inpainting.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeInpainting(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl new file mode 100644 index 000000000..0de21e29c --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 4 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 6 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 7 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 8 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeOpticalFlowVectorField(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl new file mode 100644 index 000000000..733bd396e --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE 4 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 5 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK 6 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 7 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS 8 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT 9 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 10 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeFrameinterpolation(ivec2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl new file mode 100644 index 000000000..d29bddd1a --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl @@ -0,0 +1,58 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH 1 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH 4 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 5 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + ReconstructAndDilate(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl new file mode 100644 index 000000000..3608a62ef --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl @@ -0,0 +1,58 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 3 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME 4 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 5 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + reconstructPreviousDepth(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl new file mode 100644 index 000000000..eaf18634f --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION 0 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X 1 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 4 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS 6 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 7 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_setup.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + setupFrameinterpolationResources(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl new file mode 100644 index 000000000..3b9357553 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl @@ -0,0 +1,75 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_upscaled_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 0 +#define FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS 1 +#if FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 2 +#else +#define FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS 2 +#endif +#define FSR3UPSCALER_BIND_SRV_INTERNAL_UPSCALED 3 +#define FSR3UPSCALER_BIND_SRV_LANCZOS_LUT 4 +#define FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1 5 + +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 6 +#define FSR3UPSCALER_BIND_SRV_LUMA_INSTABILITY 7 +#define FSR3UPSCALER_BIND_SRV_INPUT_COLOR 8 + +#define FSR3UPSCALER_BIND_UAV_INTERNAL_UPSCALED 9 +#define FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT 10 +#define FSR3UPSCALER_BIND_UAV_NEW_LOCKS 11 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_sample.h" +#include "fsr3upscaler/ffx_fsr3upscaler_upsample.h" +#include "fsr3upscaler/ffx_fsr3upscaler_reproject.h" +#include "fsr3upscaler/ffx_fsr3upscaler_accumulate.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + Accumulate(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl new file mode 100644 index 000000000..6d5db88e1 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl @@ -0,0 +1,62 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 0 +#define FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS 1 +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 2 +#define FSR3UPSCALER_BIND_SRV_FRAME_INFO 3 +#define FSR3UPSCALER_BIND_SRV_LUMA_HISTORY 4 +#define FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1 5 +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 6 + +#define FSR3UPSCALER_BIND_UAV_LUMA_HISTORY 7 +#define FSR3UPSCALER_BIND_UAV_LUMA_INSTABILITY 8 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 9 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_luma_instability.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + LumaInstability(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl new file mode 100644 index 000000000..29f4c8f8d --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 0 +#define FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH 1 + +#define FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC 2 +#define FSR3UPSCALER_BIND_UAV_FRAME_INFO 3 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0 4 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1 5 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2 6 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3 7 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4 8 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5 9 +#define FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH_MIP1 10 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 11 +#define FSR3UPSCALER_BIND_CB_SPD 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + ComputeAutoExposure(gl_WorkGroupID, gl_LocalInvocationIndex); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl new file mode 100644 index 000000000..6e3c57223 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl @@ -0,0 +1,61 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS 0 +#define FSR3UPSCALER_BIND_SRV_INPUT_DEPTH 1 +#define FSR3UPSCALER_BIND_SRV_INPUT_COLOR 2 + +#define FSR3UPSCALER_BIND_UAV_DILATED_MOTION_VECTORS 3 +#define FSR3UPSCALER_BIND_UAV_DILATED_DEPTH 4 +#define FSR3UPSCALER_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH 5 +#define FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH 6 +#define FSR3UPSCALER_BIND_UAV_CURRENT_LUMA 7 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 8 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + PrepareInputs(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl new file mode 100644 index 000000000..e09d5d36d --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH 0 +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 1 +#define FSR3UPSCALER_BIND_SRV_DILATED_DEPTH 2 +#define FSR3UPSCALER_BIND_SRV_REACTIVE_MASK 3 +#define FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK 4 +#define FSR3UPSCALER_BIND_SRV_ACCUMULATION 5 +#define FSR3UPSCALER_BIND_SRV_SHADING_CHANGE 6 +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 7 +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 8 + +#define FSR3UPSCALER_BIND_UAV_DILATED_REACTIVE_MASKS 9 +#define FSR3UPSCALER_BIND_UAV_NEW_LOCKS 10 +#define FSR3UPSCALER_BIND_UAV_ACCUMULATION 11 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + PrepareReactivity(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl new file mode 100644 index 000000000..112c2e5fb --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl @@ -0,0 +1,59 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_upscaled_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 0 +#define FSR3UPSCALER_BIND_SRV_RCAS_INPUT 1 + +#define FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT 2 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 3 +#define FSR3UPSCALER_BIND_CB_RCAS 4 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_rcas.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 64 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + RCAS(gl_LocalInvocationID.xyz, gl_WorkGroupID.xyz, gl_GlobalInvocationID.xyz); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl new file mode 100644 index 000000000..539728f0a --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl @@ -0,0 +1,55 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_SPD_MIPS 0 + +#define FSR3UPSCALER_BIND_UAV_SHADING_CHANGE 1 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 2 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_shading_change.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + ShadingChange(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl new file mode 100644 index 000000000..5e02d3da9 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl @@ -0,0 +1,67 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 0 +#define FSR3UPSCALER_BIND_SRV_PREVIOUS_LUMA 1 +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 2 +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 3 + + +#define FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC 4 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0 5 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1 6 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2 7 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3 8 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4 9 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5 10 + + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 11 +#define FSR3UPSCALER_BIND_CB_SPD 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + ComputeShadingChangePyramid(gl_WorkGroupID, gl_LocalInvocationIndex); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl new file mode 100644 index 000000000..7713dcdda --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 1 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 2 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 3 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 4 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 5 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 6 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 7 +#define FFX_OPTICALFLOW_BIND_CB_SPD 8 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" +#include "opticalflow/ffx_opticalflow_compute_luminance_pyramid.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + ComputeOpticalFlowInputPyramid(FfxInt32x2(gl_WorkGroupID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl new file mode 100644 index 000000000..8844c2ae9 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl @@ -0,0 +1,66 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_WAVE 1 +#extension GL_KHR_shader_subgroup_basic : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT 1 + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW 2 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT 3 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 4 + + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_BLOCK_SIZE +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#endif // #ifndef FFX_OPTICALFLOW_BLOCK_SIZE +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 64 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH + +#include "opticalflow/ffx_opticalflow_compute_optical_flow_v5.h" + +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + ComputeOpticalFlowAdvanced(FfxInt32x2(gl_GlobalInvocationID.xy), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32x2(gl_WorkGroupID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl new file mode 100644 index 000000000..0df8d985f --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl @@ -0,0 +1,57 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM 1 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP 2 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT 3 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 4 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" +#include "opticalflow/ffx_opticalflow_compute_scd_divergence.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + FfxInt32x2 iGroupSize = FfxInt32x2(FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT); + ComputeSCDHistogramsDivergence(FfxInt32x3(gl_GlobalInvocationID.xyz), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32(gl_LocalInvocationIndex), FfxInt32x2(gl_WorkGroupID.xy), iGroupSize); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl new file mode 100644 index 000000000..01bb11a45 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl @@ -0,0 +1,57 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS 0 + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW 1 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 2 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 16 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH + +#include "opticalflow/ffx_opticalflow_filter_optical_flow_v5.h" + +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + FilterOpticalFlow(FfxInt32x2(gl_GlobalInvocationID.xy), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32x2(gl_WorkGroupID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl new file mode 100644 index 000000000..0462ef15b --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl @@ -0,0 +1,55 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM 1 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 2 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" +#include "opticalflow/ffx_opticalflow_generate_scd_histogram.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 32 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + FfxInt32x2 iGroupSize = FfxInt32x2(FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT); + GenerateSceneChangeDetectionHistogram(FfxInt32x3(gl_GlobalInvocationID.xyz), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32(gl_LocalInvocationIndex), FfxInt32x2(gl_WorkGroupID.xy), iGroupSize); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl new file mode 100644 index 000000000..bb37011ef --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl @@ -0,0 +1,55 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT 1 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 2 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 16 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 16 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +#include "opticalflow/ffx_opticalflow_prepare_luma.h" + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + PrepareLuma(FfxInt32x2(gl_GlobalInvocationID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl new file mode 100644 index 000000000..70142c25f --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl @@ -0,0 +1,66 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT 1 +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW 2 + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL 3 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT 4 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 5 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_BLOCK_SIZE +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#endif // #ifndef FFX_OPTICALFLOW_BLOCK_SIZE + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH + +#include "opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h" + +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + ScaleOpticalFlowAdvanced(FfxInt32x3(gl_GlobalInvocationID.xyz), FfxInt32x3(gl_LocalInvocationID.xyz)); +} From 7012e6d78ee1a27e3f6d35e7672105807da7c5c9 Mon Sep 17 00:00:00 2001 From: notquiteog <104785131+notquiteog@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:06:59 -0600 Subject: [PATCH 2/4] feat(vk): AMD FSR 3.1 upscaling in the gameplay upscale's place FSR 3.1's upscaler (FidelityFX SDK 1.1.4's passes, vendored and compiled in the commit before) takes the gameplay upscale network's dispatch, the same dispatch NVIDIA DLSS takes (#841), found the same way: AMD's seven compute passes, one pass of ours before them that prepares their inputs and one after that writes the picture into the network's output. Nothing of AMD's is linked or loaded, so it is in every build. Reached with RX_VK_FSR=1 here; the menu row follows. Its inputs are #841's where they exist on current main, in one file (vk_fsr3_inputs.cpp) so they can move onto the shared temporal inputs of #1008 by changing that file alone: - jitter: #841's camera jitter (nx2/oot_jitter.py), now lifted into every build, not only builds with NVIDIA's SDK. It stays zero unless DLSS or FSR 3.1 draws: rx_option HOS_OPT_DLSS_JITTER_* gives the host DLSS's size, or FSR's. FSR reads the offset back from the camera's uniform buffer as vk_dlss.cpp does, with dlss_math.h's functions. - camera: the same uniform buffer and checks as dlss_note_scene_draw. The near plane, far plane and field of view come from its projection (fsr3_math.h): no camera hook in the game. The scene's projection is near 0.1, far 1000, 45 degrees, depth 0 at the near plane; FSR's passes are compiled for reversed depth, so FSR's depth copy is 1 - d. - motion: the camera's, from the depth, with dlss_prep.comp's math (shaders/fsr3_prep.comp). #841's actor motion is inside vk_dlss.cpp behind HOOKSHOT_NGX; FSR gets it when #1008 moves it out. - colour: the network's input (its sqrt encoding), and the picture is squared back into the network's output by dlss_out.comp, as for DLSS. dlss_mode() no longer clamps a value past DLAA onto DLAA: 3 is FSR 3.1. Co-Authored-By: Claude Opus 5.5 --- gpu/vk/fsr3_math.h | 59 ++ gpu/vk/shaders/fsr3_prep.comp | 48 ++ gpu/vk/shaders/fsr3_prep_comp_spv.h | 157 ++++++ gpu/vk/upscaler_rows.h | 6 +- gpu/vk/vk_dlss.cpp | 5 +- gpu/vk/vk_draw.cpp | 32 +- gpu/vk/vk_fsr3.cpp | 818 ++++++++++++++++++++++++++++ gpu/vk/vk_fsr3.h | 68 +++ gpu/vk/vk_fsr3_inputs.cpp | 356 ++++++++++++ gpu/vk/vk_fsr3_inputs.h | 66 +++ gpu/vk/vk_replay.cpp | 13 +- nx2/lift.py | 5 +- nx2/make_game.py | 2 - nx2/oot_jitter.py | 22 +- tests/test_fsr3_math.cpp | 88 +++ tests/test_fsr3_math.py | 48 ++ tests/test_make_game_ngx.py | 14 +- 17 files changed, 1769 insertions(+), 38 deletions(-) create mode 100644 gpu/vk/fsr3_math.h create mode 100644 gpu/vk/shaders/fsr3_prep.comp create mode 100644 gpu/vk/shaders/fsr3_prep_comp_spv.h create mode 100644 gpu/vk/vk_fsr3.cpp create mode 100644 gpu/vk/vk_fsr3.h create mode 100644 gpu/vk/vk_fsr3_inputs.cpp create mode 100644 gpu/vk/vk_fsr3_inputs.h create mode 100644 tests/test_fsr3_math.cpp create mode 100644 tests/test_fsr3_math.py diff --git a/gpu/vk/fsr3_math.h b/gpu/vk/fsr3_math.h new file mode 100644 index 000000000..207326af7 --- /dev/null +++ b/gpu/vk/fsr3_math.h @@ -0,0 +1,59 @@ +// (hookshot) AMD FSR 3.1's camera, from the scene's own projection: plain functions, no Vulkan. tests/test_fsr3_math.cpp +// checks them. +// +// FSR 3.1's passes (the upscaler's and frame interpolation's) turn a depth into a view distance with four factors, +// device_to_view_depth (the SDK's setupDeviceDepthToViewSpaceDepthParams), and frame interpolation scales its disocclusion +// test by the tangent of half the field of view. The SDK builds them from a near plane, a far plane and a field of view; the +// projection the scene was drawn with has all three in it, so they are read from there instead (the camera's uniform buffer, +// gpu/vk/vk_fsr3_inputs.cpp: the same buffer NVIDIA DLSS reads its camera from), and no hook into the game is needed. +#pragma once + +#include +#include + +namespace mkwvk::fsr3_math { + +struct Camera { + /// view distance = [1] / (device depth - [0]); view x = [2] * ndc x * distance, y = [3] * ndc y * distance. For the + /// depth FSR is given, which is reversed (1 at the near plane: the passes are compiled with INVERTED_DEPTH) + float device_to_view_depth[4]{}; + float tan_half_fov_x = 0.0f; ///< frame interpolation's fTanHalfFOV (the SDK's: horizontal, from the render aspect) + float fov_y = 0.0f; ///< radians + float near_plane = 0.0f, far_plane = 0.0f; ///< far: FLT_MAX for an infinite projection + /// The game's own depth runs the other way (0 at the near plane): FSR's copy is 1 - it (vk_fsr3_inputs.cpp) + bool flip_depth = false; +}; + +/// The camera of a perspective projection p (row major, clip = p * view position, its w row 0 0 -1 0, as the game fills its +/// views' uniform buffers), whose clip depth is NVN's -1 to 1, so the depth buffer holds (ndc z + 1) / 2 (shaders/ +/// dlss_prep.comp reads it the same way). With a view distance v (> 0 in front of the camera), ndc z = -p22 + p23 / v, so the +/// stored depth is d = a + b / v with a = (1 - p22) / 2 and b = p23 / 2: reversed when b > 0. False for a projection that is +/// not one (no perspective, no depth range, a degenerate field of view) +inline bool camera_from_projection(const float p[16], Camera& c) { + c = Camera{}; + if (p[12] != 0.0f || p[13] != 0.0f || p[14] != -1.0f || p[15] != 0.0f) return false; + if (!(p[0] > 0.0f) || !(p[5] > 0.0f) || !std::isfinite(p[0]) || !std::isfinite(p[5])) return false; + double a = (1.0 - (double)p[10]) * 0.5, b = (double)p[11] * 0.5; + if (!std::isfinite(a) || !std::isfinite(b) || std::fabs(b) < 1e-12) return false; + c.flip_depth = b < 0.0; + if (c.flip_depth) a = 1.0 - a, b = -b; // (FSR's copy: 1 - d = (1 - a) - b / v) + // (an infinite projection has a = 0, which puts the far plane at device depth 0 exactly: the SDK's own factor there is + // -FLT_EPSILON, so distances stay finite and positive) + if (a > -FLT_EPSILON) a = -FLT_EPSILON; + c.device_to_view_depth[0] = (float)a; + c.device_to_view_depth[1] = (float)b; + c.device_to_view_depth[2] = 1.0f / p[0]; // (the SDK's 1 / (cot(fov / 2) / aspect)) + c.device_to_view_depth[3] = 1.0f / p[5]; // (1 / cot(fov / 2)) + c.tan_half_fov_x = 1.0f / p[0]; + c.fov_y = 2.0f * std::atan(1.0f / p[5]); + c.near_plane = (float)(b / (1.0 - a)); + c.far_plane = a <= -1e-6 ? (float)(-b / a) : FLT_MAX; + return c.near_plane > 0.0f && std::isfinite(c.near_plane); +} + +/// FSR's view distance for a device depth (as its shaders compute it: GetViewSpaceDepth), for the test +inline float view_distance(const Camera& c, float device_depth) { + return c.device_to_view_depth[1] / (device_depth - c.device_to_view_depth[0]); +} + +} // namespace mkwvk::fsr3_math diff --git a/gpu/vk/shaders/fsr3_prep.comp b/gpu/vk/shaders/fsr3_prep.comp new file mode 100644 index 000000000..0e358518f --- /dev/null +++ b/gpu/vk/shaders/fsr3_prep.comp @@ -0,0 +1,48 @@ +#version 450 +// (hookshot) AMD FSR 3.1's inputs for OoT's gameplay upscale (vk_fsr3_inputs.cpp), at the render size, in one pass. The +// same inputs, from the same math, as NVIDIA DLSS's (dlss_prep.comp, #841), so the two upscalers see one picture: +// - colour: the network's input as it samples it (the square root of the scene's tonemapped colour, its perceptual +// encoding), clamped to 0..1; a NaN is 0, as one would stay in FSR's history for good. vk_fsr3.cpp's output pass squares +// FSR's picture back, as the network's own output does +// - depth: the scene's depth, reversed when the game's is not (pc.flags bit 1), which is the depth the vendored passes were +// compiled for (FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH, FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH) +// - motion: where each pixel was in the frame before, in render pixels (x right, y down), the jitter taken off: the depth +// taken back to clip space and through pc.reproject (this frame's jittered clip space to the frame before's without its +// jitter: dlss_math.h). The camera's motion only, as #841's before its actor motion: what moves by itself gets the motion +// of what is behind it. pc.flags bit 0: motion (none on the first frame of a history) +// The game's clip space: depth from -1 to 1 (NVN's default), y up, the picture's rows top down. +layout(local_size_x = 8, local_size_y = 8) in; +layout(binding = 0) uniform sampler2D scene; +layout(binding = 1) uniform sampler2D scene_depth; +layout(binding = 2, rgba16f) uniform writeonly image2D color; +layout(binding = 3, r32f) uniform writeonly image2D depth; +layout(binding = 4, rg16f) uniform writeonly image2D motion; +layout(push_constant, row_major) uniform P { + mat4 reproject; // (this frame's jittered clip space to the frame before's without its jitter) + vec2 jitter; // (this frame's jitter in clip space: taken off, so the motion has none) + ivec2 size; + int flags; +} pc; +void main() { + const ivec2 g = ivec2(gl_GlobalInvocationID.xy); + if (any(greaterThanEqual(g, pc.size))) return; + const vec2 size = vec2(pc.size); + const vec2 uv = (vec2(g) + 0.5) / size; + vec3 c = textureLod(scene, uv, 0.0).rgb; + c = mix(c, vec3(0.0), isnan(c)); + imageStore(color, g, vec4(clamp(c, 0.0, 1.0), 1.0)); + const float d = textureLod(scene_depth, uv, 0.0).r; + imageStore(depth, g, vec4((pc.flags & 2) != 0 ? 1.0 - d : d)); + vec2 mv = vec2(0.0); + if ((pc.flags & 1) != 0 && d >= 0.0 && d <= 1.0) { + const vec4 clip = vec4(uv.x * 2.0 - 1.0, 1.0 - uv.y * 2.0, d * 2.0 - 1.0, 1.0); + const vec4 before = pc.reproject * clip; + if (before.w > 1e-6) { + const vec2 then = before.xy / before.w; + const vec2 now = clip.xy - pc.jitter; + const vec2 px = vec2(then.x - now.x, now.y - then.y) * 0.5 * size; + if (all(lessThan(abs(px), vec2(16384.0)))) mv = px; + } + } + imageStore(motion, g, vec4(mv, 0.0, 0.0)); +} diff --git a/gpu/vk/shaders/fsr3_prep_comp_spv.h b/gpu/vk/shaders/fsr3_prep_comp_spv.h new file mode 100644 index 000000000..869e73d5f --- /dev/null +++ b/gpu/vk/shaders/fsr3_prep_comp_spv.h @@ -0,0 +1,157 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_PREP_COMP_SPV[] = { + 0x07230203,0x00010600,0x0008000b,0x000000cc,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000c000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d, + 0x00000019,0x00000038,0x00000046,0x00000054,0x0000005c,0x000000c3,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000009,0x00000067,0x00080005,0x0000000d, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,0x00000017, + 0x00000050,0x00060006,0x00000017,0x00000000,0x72706572,0x63656a6f,0x00000074,0x00050006, + 0x00000017,0x00000001,0x7474696a,0x00007265,0x00050006,0x00000017,0x00000002,0x657a6973, + 0x00000000,0x00050006,0x00000017,0x00000003,0x67616c66,0x00000073,0x00030005,0x00000019, + 0x00006370,0x00040005,0x00000026,0x657a6973,0x00000000,0x00030005,0x0000002a,0x00007675, + 0x00030005,0x00000034,0x00000063,0x00040005,0x00000038,0x6e656373,0x00000065,0x00040005, + 0x00000046,0x6f6c6f63,0x00000072,0x00030005,0x00000053,0x00000064,0x00050005,0x00000054, + 0x6e656373,0x65645f65,0x00687470,0x00040005,0x0000005c,0x74706564,0x00000068,0x00030005, + 0x0000006f,0x0000766d,0x00040005,0x0000007f,0x70696c63,0x00000000,0x00040005,0x0000008e, + 0x6f666562,0x00006572,0x00040005,0x0000009b,0x6e656874,0x00000000,0x00030005,0x000000a2, + 0x00776f6e,0x00030005,0x000000a9,0x00007870,0x00040005,0x000000c3,0x69746f6d,0x00006e6f, + 0x00040047,0x0000000d,0x0000000b,0x0000001c,0x00030047,0x00000017,0x00000002,0x00040048, + 0x00000017,0x00000000,0x00000004,0x00050048,0x00000017,0x00000000,0x00000007,0x00000010, + 0x00050048,0x00000017,0x00000000,0x00000023,0x00000000,0x00050048,0x00000017,0x00000001, + 0x00000023,0x00000040,0x00050048,0x00000017,0x00000002,0x00000023,0x00000048,0x00050048, + 0x00000017,0x00000003,0x00000023,0x00000050,0x00040047,0x00000038,0x00000021,0x00000000, + 0x00040047,0x00000038,0x00000022,0x00000000,0x00030047,0x00000046,0x00000019,0x00040047, + 0x00000046,0x00000021,0x00000002,0x00040047,0x00000046,0x00000022,0x00000000,0x00040047, + 0x00000054,0x00000021,0x00000001,0x00040047,0x00000054,0x00000022,0x00000000,0x00030047, + 0x0000005c,0x00000019,0x00040047,0x0000005c,0x00000021,0x00000003,0x00040047,0x0000005c, + 0x00000022,0x00000000,0x00030047,0x000000c3,0x00000019,0x00040047,0x000000c3,0x00000021, + 0x00000004,0x00040047,0x000000c3,0x00000022,0x00000000,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040017,0x00000007, + 0x00000006,0x00000002,0x00040020,0x00000008,0x00000007,0x00000007,0x00040015,0x0000000a, + 0x00000020,0x00000000,0x00040017,0x0000000b,0x0000000a,0x00000003,0x00040020,0x0000000c, + 0x00000001,0x0000000b,0x0004003b,0x0000000c,0x0000000d,0x00000001,0x00040017,0x0000000e, + 0x0000000a,0x00000002,0x00030016,0x00000013,0x00000020,0x00040017,0x00000014,0x00000013, + 0x00000004,0x00040018,0x00000015,0x00000014,0x00000004,0x00040017,0x00000016,0x00000013, + 0x00000002,0x0006001e,0x00000017,0x00000015,0x00000016,0x00000007,0x00000006,0x00040020, + 0x00000018,0x00000009,0x00000017,0x0004003b,0x00000018,0x00000019,0x00000009,0x0004002b, + 0x00000006,0x0000001a,0x00000002,0x00040020,0x0000001b,0x00000009,0x00000007,0x00020014, + 0x0000001e,0x00040017,0x0000001f,0x0000001e,0x00000002,0x00040020,0x00000025,0x00000007, + 0x00000016,0x0004002b,0x00000013,0x0000002d,0x3f000000,0x00040017,0x00000032,0x00000013, + 0x00000003,0x00040020,0x00000033,0x00000007,0x00000032,0x00090019,0x00000035,0x00000013, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x0003001b,0x00000036, + 0x00000035,0x00040020,0x00000037,0x00000000,0x00000036,0x0004003b,0x00000037,0x00000038, + 0x00000000,0x0004002b,0x00000013,0x0000003b,0x00000000,0x0006002c,0x00000032,0x0000003f, + 0x0000003b,0x0000003b,0x0000003b,0x00040017,0x00000041,0x0000001e,0x00000003,0x00090019, + 0x00000044,0x00000013,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000002, + 0x00040020,0x00000045,0x00000000,0x00000044,0x0004003b,0x00000045,0x00000046,0x00000000, + 0x0004002b,0x00000013,0x0000004a,0x3f800000,0x00040020,0x00000052,0x00000007,0x00000013, + 0x0004003b,0x00000037,0x00000054,0x00000000,0x0004002b,0x0000000a,0x00000058,0x00000000, + 0x00090019,0x0000005a,0x00000013,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000003,0x00040020,0x0000005b,0x00000000,0x0000005a,0x0004003b,0x0000005b,0x0000005c, + 0x00000000,0x0004002b,0x00000006,0x0000005f,0x00000003,0x00040020,0x00000060,0x00000009, + 0x00000006,0x0004002b,0x00000006,0x00000064,0x00000000,0x0005002c,0x00000016,0x00000070, + 0x0000003b,0x0000003b,0x0004002b,0x00000006,0x00000073,0x00000001,0x00040020,0x0000007e, + 0x00000007,0x00000014,0x0004002b,0x00000013,0x00000082,0x40000000,0x0004002b,0x0000000a, + 0x00000085,0x00000001,0x00040020,0x0000008f,0x00000009,0x00000015,0x0004002b,0x0000000a, + 0x00000094,0x00000003,0x0004002b,0x00000013,0x00000097,0x358637bd,0x00040020,0x000000a5, + 0x00000009,0x00000016,0x0004002b,0x00000013,0x000000ba,0x46800000,0x0005002c,0x00000016, + 0x000000bb,0x000000ba,0x000000ba,0x00090019,0x000000c1,0x00000013,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000007,0x00040020,0x000000c2,0x00000000,0x000000c1, + 0x0004003b,0x000000c2,0x000000c3,0x00000000,0x0004002b,0x0000000a,0x000000ca,0x00000008, + 0x0006002c,0x0000000b,0x000000cb,0x000000ca,0x000000ca,0x00000085,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008,0x00000009, + 0x00000007,0x0004003b,0x00000025,0x00000026,0x00000007,0x0004003b,0x00000025,0x0000002a, + 0x00000007,0x0004003b,0x00000033,0x00000034,0x00000007,0x0004003b,0x00000052,0x00000053, + 0x00000007,0x0004003b,0x00000052,0x00000066,0x00000007,0x0004003b,0x00000025,0x0000006f, + 0x00000007,0x0004003b,0x0000007e,0x0000007f,0x00000007,0x0004003b,0x0000007e,0x0000008e, + 0x00000007,0x0004003b,0x00000025,0x0000009b,0x00000007,0x0004003b,0x00000025,0x000000a2, + 0x00000007,0x0004003b,0x00000025,0x000000a9,0x00000007,0x0004003d,0x0000000b,0x0000000f, + 0x0000000d,0x0007004f,0x0000000e,0x00000010,0x0000000f,0x0000000f,0x00000000,0x00000001, + 0x0004007c,0x00000007,0x00000011,0x00000010,0x0003003e,0x00000009,0x00000011,0x0004003d, + 0x00000007,0x00000012,0x00000009,0x00050041,0x0000001b,0x0000001c,0x00000019,0x0000001a, + 0x0004003d,0x00000007,0x0000001d,0x0000001c,0x000500af,0x0000001f,0x00000020,0x00000012, + 0x0000001d,0x0004009a,0x0000001e,0x00000021,0x00000020,0x000300f7,0x00000023,0x00000000, + 0x000400fa,0x00000021,0x00000022,0x00000023,0x000200f8,0x00000022,0x000100fd,0x000200f8, + 0x00000023,0x00050041,0x0000001b,0x00000027,0x00000019,0x0000001a,0x0004003d,0x00000007, + 0x00000028,0x00000027,0x0004006f,0x00000016,0x00000029,0x00000028,0x0003003e,0x00000026, + 0x00000029,0x0004003d,0x00000007,0x0000002b,0x00000009,0x0004006f,0x00000016,0x0000002c, + 0x0000002b,0x00050050,0x00000016,0x0000002e,0x0000002d,0x0000002d,0x00050081,0x00000016, + 0x0000002f,0x0000002c,0x0000002e,0x0004003d,0x00000016,0x00000030,0x00000026,0x00050088, + 0x00000016,0x00000031,0x0000002f,0x00000030,0x0003003e,0x0000002a,0x00000031,0x0004003d, + 0x00000036,0x00000039,0x00000038,0x0004003d,0x00000016,0x0000003a,0x0000002a,0x00070058, + 0x00000014,0x0000003c,0x00000039,0x0000003a,0x00000002,0x0000003b,0x0008004f,0x00000032, + 0x0000003d,0x0000003c,0x0000003c,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000034, + 0x0000003d,0x0004003d,0x00000032,0x0000003e,0x00000034,0x0004003d,0x00000032,0x00000040, + 0x00000034,0x0004009c,0x00000041,0x00000042,0x00000040,0x000600a9,0x00000032,0x00000043, + 0x00000042,0x0000003f,0x0000003e,0x0003003e,0x00000034,0x00000043,0x0004003d,0x00000044, + 0x00000047,0x00000046,0x0004003d,0x00000007,0x00000048,0x00000009,0x0004003d,0x00000032, + 0x00000049,0x00000034,0x00060050,0x00000032,0x0000004b,0x0000003b,0x0000003b,0x0000003b, + 0x00060050,0x00000032,0x0000004c,0x0000004a,0x0000004a,0x0000004a,0x0008000c,0x00000032, + 0x0000004d,0x00000001,0x0000002b,0x00000049,0x0000004b,0x0000004c,0x00050051,0x00000013, + 0x0000004e,0x0000004d,0x00000000,0x00050051,0x00000013,0x0000004f,0x0000004d,0x00000001, + 0x00050051,0x00000013,0x00000050,0x0000004d,0x00000002,0x00070050,0x00000014,0x00000051, + 0x0000004e,0x0000004f,0x00000050,0x0000004a,0x00040063,0x00000047,0x00000048,0x00000051, + 0x0004003d,0x00000036,0x00000055,0x00000054,0x0004003d,0x00000016,0x00000056,0x0000002a, + 0x00070058,0x00000014,0x00000057,0x00000055,0x00000056,0x00000002,0x0000003b,0x00050051, + 0x00000013,0x00000059,0x00000057,0x00000000,0x0003003e,0x00000053,0x00000059,0x0004003d, + 0x0000005a,0x0000005d,0x0000005c,0x0004003d,0x00000007,0x0000005e,0x00000009,0x00050041, + 0x00000060,0x00000061,0x00000019,0x0000005f,0x0004003d,0x00000006,0x00000062,0x00000061, + 0x000500c7,0x00000006,0x00000063,0x00000062,0x0000001a,0x000500ab,0x0000001e,0x00000065, + 0x00000063,0x00000064,0x000300f7,0x00000068,0x00000000,0x000400fa,0x00000065,0x00000067, + 0x0000006b,0x000200f8,0x00000067,0x0004003d,0x00000013,0x00000069,0x00000053,0x00050083, + 0x00000013,0x0000006a,0x0000004a,0x00000069,0x0003003e,0x00000066,0x0000006a,0x000200f9, + 0x00000068,0x000200f8,0x0000006b,0x0004003d,0x00000013,0x0000006c,0x00000053,0x0003003e, + 0x00000066,0x0000006c,0x000200f9,0x00000068,0x000200f8,0x00000068,0x0004003d,0x00000013, + 0x0000006d,0x00000066,0x00070050,0x00000014,0x0000006e,0x0000006d,0x0000006d,0x0000006d, + 0x0000006d,0x00040063,0x0000005d,0x0000005e,0x0000006e,0x0003003e,0x0000006f,0x00000070, + 0x00050041,0x00000060,0x00000071,0x00000019,0x0000005f,0x0004003d,0x00000006,0x00000072, + 0x00000071,0x000500c7,0x00000006,0x00000074,0x00000072,0x00000073,0x000500ab,0x0000001e, + 0x00000075,0x00000074,0x00000064,0x0004003d,0x00000013,0x00000076,0x00000053,0x000500be, + 0x0000001e,0x00000077,0x00000076,0x0000003b,0x000500a7,0x0000001e,0x00000078,0x00000075, + 0x00000077,0x0004003d,0x00000013,0x00000079,0x00000053,0x000500bc,0x0000001e,0x0000007a, + 0x00000079,0x0000004a,0x000500a7,0x0000001e,0x0000007b,0x00000078,0x0000007a,0x000300f7, + 0x0000007d,0x00000000,0x000400fa,0x0000007b,0x0000007c,0x0000007d,0x000200f8,0x0000007c, + 0x00050041,0x00000052,0x00000080,0x0000002a,0x00000058,0x0004003d,0x00000013,0x00000081, + 0x00000080,0x00050085,0x00000013,0x00000083,0x00000081,0x00000082,0x00050083,0x00000013, + 0x00000084,0x00000083,0x0000004a,0x00050041,0x00000052,0x00000086,0x0000002a,0x00000085, + 0x0004003d,0x00000013,0x00000087,0x00000086,0x00050085,0x00000013,0x00000088,0x00000087, + 0x00000082,0x00050083,0x00000013,0x00000089,0x0000004a,0x00000088,0x0004003d,0x00000013, + 0x0000008a,0x00000053,0x00050085,0x00000013,0x0000008b,0x0000008a,0x00000082,0x00050083, + 0x00000013,0x0000008c,0x0000008b,0x0000004a,0x00070050,0x00000014,0x0000008d,0x00000084, + 0x00000089,0x0000008c,0x0000004a,0x0003003e,0x0000007f,0x0000008d,0x00050041,0x0000008f, + 0x00000090,0x00000019,0x00000064,0x0004003d,0x00000015,0x00000091,0x00000090,0x0004003d, + 0x00000014,0x00000092,0x0000007f,0x00050091,0x00000014,0x00000093,0x00000091,0x00000092, + 0x0003003e,0x0000008e,0x00000093,0x00050041,0x00000052,0x00000095,0x0000008e,0x00000094, + 0x0004003d,0x00000013,0x00000096,0x00000095,0x000500ba,0x0000001e,0x00000098,0x00000096, + 0x00000097,0x000300f7,0x0000009a,0x00000000,0x000400fa,0x00000098,0x00000099,0x0000009a, + 0x000200f8,0x00000099,0x0004003d,0x00000014,0x0000009c,0x0000008e,0x0007004f,0x00000016, + 0x0000009d,0x0000009c,0x0000009c,0x00000000,0x00000001,0x00050041,0x00000052,0x0000009e, + 0x0000008e,0x00000094,0x0004003d,0x00000013,0x0000009f,0x0000009e,0x00050050,0x00000016, + 0x000000a0,0x0000009f,0x0000009f,0x00050088,0x00000016,0x000000a1,0x0000009d,0x000000a0, + 0x0003003e,0x0000009b,0x000000a1,0x0004003d,0x00000014,0x000000a3,0x0000007f,0x0007004f, + 0x00000016,0x000000a4,0x000000a3,0x000000a3,0x00000000,0x00000001,0x00050041,0x000000a5, + 0x000000a6,0x00000019,0x00000073,0x0004003d,0x00000016,0x000000a7,0x000000a6,0x00050083, + 0x00000016,0x000000a8,0x000000a4,0x000000a7,0x0003003e,0x000000a2,0x000000a8,0x00050041, + 0x00000052,0x000000aa,0x0000009b,0x00000058,0x0004003d,0x00000013,0x000000ab,0x000000aa, + 0x00050041,0x00000052,0x000000ac,0x000000a2,0x00000058,0x0004003d,0x00000013,0x000000ad, + 0x000000ac,0x00050083,0x00000013,0x000000ae,0x000000ab,0x000000ad,0x00050041,0x00000052, + 0x000000af,0x000000a2,0x00000085,0x0004003d,0x00000013,0x000000b0,0x000000af,0x00050041, + 0x00000052,0x000000b1,0x0000009b,0x00000085,0x0004003d,0x00000013,0x000000b2,0x000000b1, + 0x00050083,0x00000013,0x000000b3,0x000000b0,0x000000b2,0x00050050,0x00000016,0x000000b4, + 0x000000ae,0x000000b3,0x0005008e,0x00000016,0x000000b5,0x000000b4,0x0000002d,0x0004003d, + 0x00000016,0x000000b6,0x00000026,0x00050085,0x00000016,0x000000b7,0x000000b5,0x000000b6, + 0x0003003e,0x000000a9,0x000000b7,0x0004003d,0x00000016,0x000000b8,0x000000a9,0x0006000c, + 0x00000016,0x000000b9,0x00000001,0x00000004,0x000000b8,0x000500b8,0x0000001f,0x000000bc, + 0x000000b9,0x000000bb,0x0004009b,0x0000001e,0x000000bd,0x000000bc,0x000300f7,0x000000bf, + 0x00000000,0x000400fa,0x000000bd,0x000000be,0x000000bf,0x000200f8,0x000000be,0x0004003d, + 0x00000016,0x000000c0,0x000000a9,0x0003003e,0x0000006f,0x000000c0,0x000200f9,0x000000bf, + 0x000200f8,0x000000bf,0x000200f9,0x0000009a,0x000200f8,0x0000009a,0x000200f9,0x0000007d, + 0x000200f8,0x0000007d,0x0004003d,0x000000c1,0x000000c4,0x000000c3,0x0004003d,0x00000007, + 0x000000c5,0x00000009,0x0004003d,0x00000016,0x000000c6,0x0000006f,0x00050051,0x00000013, + 0x000000c7,0x000000c6,0x00000000,0x00050051,0x00000013,0x000000c8,0x000000c6,0x00000001, + 0x00070050,0x00000014,0x000000c9,0x000000c7,0x000000c8,0x0000003b,0x0000003b,0x00040063, + 0x000000c4,0x000000c5,0x000000c9,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/upscaler_rows.h b/gpu/vk/upscaler_rows.h index 225d6c44a..3d46ba670 100644 --- a/gpu/vk/upscaler_rows.h +++ b/gpu/vk/upscaler_rows.h @@ -4,8 +4,10 @@ namespace mkwvk::upscaler_rows { -/// The Upscaler row (opts.dlss, RX_VK_DLSS): the game's own network, NVIDIA DLSS, NVIDIA DLAA -enum { GAME = 0, DLSS = 1, DLAA = 2 }; +/// The Upscaler row (opts.dlss, RX_VK_DLSS): the game's own network, NVIDIA DLSS, NVIDIA DLAA, AMD FSR 3.1 (built from AMD's +/// shader sources: gpu/vk/vk_fsr3.cpp). The saved values keep their meaning: FSR 3.1 came after DLAA, so a saved 1 or 2 is +/// still DLSS or DLAA +enum { GAME = 0, DLSS = 1, DLAA = 2, FSR3 = 3 }; /// opts.resolution: 0 Auto (the game's dynamic resolution), else a share of the output in percent. 1 to 4 are the values from /// before (100, 75, 67, 50: saved options keep their meaning); 5 and 6 came with DLSS's Balanced and Ultra Performance. Each diff --git a/gpu/vk/vk_dlss.cpp b/gpu/vk/vk_dlss.cpp index 3f879b394..1f94e332b 100644 --- a/gpu/vk/vk_dlss.cpp +++ b/gpu/vk/vk_dlss.cpp @@ -99,7 +99,10 @@ DlssWhy dlss_why() { int dlss_mode() { if (dlss_why() != DLSS_OK) return 0; static const int env = env_switch("RX_VK_DLSS"); - return std::clamp(env >= 0 ? env : opts.dlss, 0, 2); + // (the Upscaler row has values past DLAA, FSR 3.1's (upscaler_rows.h): those are not DLSS, so the game's own as far as this + // is concerned, never clamped onto DLAA) + const int v = env >= 0 ? env : opts.dlss; + return v == 1 || v == 2 ? v : 0; } bool dlss_wanted() { return dlss_mode() != 0; } bool dlss_full_scale() { return dlss_mode() == 2; } diff --git a/gpu/vk/vk_draw.cpp b/gpu/vk/vk_draw.cpp index 443485b47..3ba38219d 100644 --- a/gpu/vk/vk_draw.cpp +++ b/gpu/vk/vk_draw.cpp @@ -35,6 +35,8 @@ #include "vk_draw.h" #include "dlss_actor.h" #include "vk_dlss.h" +#include "vk_fsr3.h" // (AMD FSR 3.1 in the gameplay upscale's place) +#include "vk_fsr3_inputs.h" #include "vk_dump.h" #include "vk_gprof.h" #include "vk_jobs.h" @@ -5077,9 +5079,12 @@ void draw(VkCommandBuffer cmd, NvnState& s, const DrawArgs& d) { } const Targets at = bare_targets(s, targets(s)); if (!at.width || !at.height) SKIP_HERE(); - // (hookshot) the scene's camera and depth for NVIDIA DLSS (vk_dlss.cpp): the vertex stage's uniform buffer 3 (NVN's binding 0) - if (at.n && at.color[0] && at.depth) + // (hookshot) the scene's camera and depth for NVIDIA DLSS (vk_dlss.cpp) and AMD FSR 3.1 (vk_fsr3_inputs.cpp): the vertex + // stage's uniform buffer 3 (NVN's binding 0) + if (at.n && at.color[0] && at.depth) { dlss_note_scene_draw(at.color[0], at.width, at.height, at.depth, s.ubo[0][0].addr, s.ubo[0][0].size); + fsr3_inputs::note_scene_draw(at.color[0], at.width, at.height, at.depth, s.ubo[0][0].addr, s.ubo[0][0].size); + } uint8_t types[8]; for (int i = 0; i < 8; i++) { const VkFormat f = i < at.n ? at.color_format[i] : VK_FORMAT_UNDEFINED; @@ -6057,6 +6062,28 @@ static bool typed_upscale(VkCommandBuffer cmd, VkImageView input_view, VkImageVi if (temporal) probe_image(cmd, out, level, 0, key, 't'); return true; } +/// (hookshot) AMD FSR 3.1 in place of the gameplay upscale network (vk_fsr3.cpp), and its frame interpolation's inputs from it +/// (vk_fsr3_inputs.cpp): the same dispatches as dlss_stand_in below, found the same way. true: FSR 3.1 wrote the output +bool fsr3_stand_in(VkCommandBuffer cmd, const NvnState& s, const Program& p) { + if (p.stages.empty() || !fsr3_inputs::wanted()) return false; + const Stage& st = p.stages[0]; + if (!gameplay_network(p.key) && !(st.info.uses_cooperative_matrix && st.info.texture_descriptors.size() == 1 && + st.info.image_descriptors.size() == 1)) + return false; + if (st.info.texture_descriptors.empty() || st.info.image_descriptors.empty()) return false; + size_t ntex = 0; // (build_descriptors' image infos: the textures', then the images') + for (const auto& d : st.info.texture_descriptors) ntex += d.count; + if (dw().imgs.size() <= ntex || !dw().imgs[0].imageView || !dw().imgs[ntex].imageView) return false; + Texture* in = nullptr; + const uint32_t in_handle = handle_of(s, st, st.info.texture_descriptors[0], 0); + if (in_handle) texture_view_of(in_handle, VK_IMAGE_VIEW_TYPE_2D, ViewUse::Sample, VK_FORMAT_UNDEFINED, &in); + const auto& od = st.info.image_descriptors[0]; + Texture* out = nullptr; + uint32_t level = 0; + const uint32_t out_handle = handle_of(s, st, od, 0); + if (out_handle) texture_view_of(out_handle, VK_IMAGE_VIEW_TYPE_2D, ViewUse::Storage, image_format(od.format), &out, &level); + return fsr3_upscale(cmd, p.key, gameplay_network(p.key), in, dw().imgs[0].imageView, out, dw().imgs[ntex].imageView, level); +} /// (hookshot) NVIDIA DLSS in place of the gameplay upscale network (vk_dlss.cpp), when it is on and its inputs are as expected: /// the network's input as it samples it, its output's storage view bool dlss_stand_in(VkCommandBuffer cmd, const NvnState& s, const Program& p) { @@ -6721,6 +6748,7 @@ void dispatch(VkCommandBuffer cmd, NvnState& s, uint32_t x, uint32_t y, uint32_t logf("%s", line); } } + if (fsr3_stand_in(cmd, s, p)) return void(st_dispatches++); if (dlss_stand_in(cmd, s, p)) return void(st_dispatches++); if (taau_stand_in(cmd, s, p)) return void(st_dispatches++); if (!p.compute_pipeline) SKIP_HERE(); diff --git a/gpu/vk/vk_fsr3.cpp b/gpu/vk/vk_fsr3.cpp new file mode 100644 index 000000000..e9a5a0900 --- /dev/null +++ b/gpu/vk/vk_fsr3.cpp @@ -0,0 +1,818 @@ +// (hookshot) AMD FSR 3.1's upscaler as our own dispatches over AMD's vendored passes, and its place in the gameplay upscale's +// dispatch (fsr3_upscale, at the end); see vk_fsr3.h. +// +// The resource table and the per-pass binding lists are the SDK's, not ours: ffx_fsr3upscaler.cpp decides the formats and +// sizes, and each pass file numbers its own bindings (FSR3UPSCALER_BIND_*). Getting one wrong is a validation error at best +// and a wrong picture at worst, so they are written out here in the SDK's order rather than derived. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "vk_fsr3.h" +#include "vk_fsr3_inputs.h" +#include "vk_draw.h" // (descriptors_disturbed) +#include "vk_gprof.h" // (RX_VK_PASS_TIMING: a span per pass, so the report names them) +#include "vk_menu.h" +#include "vk_texture.h" +#include "upscaler_rows.h" + +#include "shaders/dlss_out_comp_spv.h" // (the network's output from a picture: its encoding squared back, as for DLSS) +#include "shaders/fsr3_accumulate_comp_spv.h" +#include "shaders/fsr3_luma_instability_comp_spv.h" +#include "shaders/fsr3_luma_pyramid_comp_spv.h" +#include "shaders/fsr3_luma_pyramid_nowave_comp_spv.h" +#include "shaders/fsr3_prepare_inputs_comp_spv.h" +#include "shaders/fsr3_prepare_reactivity_comp_spv.h" +#include "shaders/fsr3_shading_change_comp_spv.h" +#include "shaders/fsr3_shading_change_pyramid_comp_spv.h" +#include "shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h" +#include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) + +namespace mkwvk::fsr3 { +namespace { + +/// A descriptor's kind, in the binding order each pass file declares. Every pass also takes the two +/// samplers at bindings 1000 (point clamp) and 1001 (linear clamp). +enum Kind : uint8_t { T, I, U }; // sampled texture, storage image, uniform buffer + +struct PassInfo { + const char* name; + const uint32_t* spv; + size_t spv_bytes; + const Kind* bindings; + size_t binding_count; +}; + +constexpr Kind PREPARE_INPUTS[]{T, T, T, I, I, I, I, I, U}; +constexpr Kind LUMA_PYRAMID[]{T, T, I, I, I, I, I, I, I, I, I, U, U}; +constexpr Kind SHADING_CHANGE_PYRAMID[]{T, T, T, T, I, I, I, I, I, I, I, U, U}; +constexpr Kind SHADING_CHANGE[]{T, I, U}; +constexpr Kind PREPARE_REACTIVITY[]{T, T, T, T, T, T, T, T, T, I, I, I, U}; +constexpr Kind LUMA_INSTABILITY[]{T, T, T, T, T, T, T, I, I, U}; +constexpr Kind ACCUMULATE[]{T, T, T, T, T, T, T, T, T, I, I, I, U}; + +#define PASS(n, spv, b) PassInfo{n, spv, sizeof spv, b, sizeof b / sizeof b[0]} + +/// The passes, in the order PassId numbers them. The two _nowave pyramids are alternatives to the two before them, for +/// devices without the subgroup operations the single-pass downsampler wants. FSR's own sharpening (accumulate_sharpen and +/// RCAS, compiled with the rest) is not used: the renderer's Sharpness row sharpens the finished picture for every upscaler +const PassInfo PASSES[]{ + PASS("prepare_inputs", FSR3_PREPARE_INPUTS_COMP_SPV, PREPARE_INPUTS), + PASS("luma_pyramid", FSR3_LUMA_PYRAMID_COMP_SPV, LUMA_PYRAMID), + PASS("luma_pyramid_nowave", FSR3_LUMA_PYRAMID_NOWAVE_COMP_SPV, LUMA_PYRAMID), + PASS("shading_change_pyramid", FSR3_SHADING_CHANGE_PYRAMID_COMP_SPV, SHADING_CHANGE_PYRAMID), + PASS("shading_change_pyramid_nowave", FSR3_SHADING_CHANGE_PYRAMID_NOWAVE_COMP_SPV, + SHADING_CHANGE_PYRAMID), + PASS("shading_change", FSR3_SHADING_CHANGE_COMP_SPV, SHADING_CHANGE), + PASS("prepare_reactivity", FSR3_PREPARE_REACTIVITY_COMP_SPV, PREPARE_REACTIVITY), + PASS("luma_instability", FSR3_LUMA_INSTABILITY_COMP_SPV, LUMA_INSTABILITY), + PASS("accumulate", FSR3_ACCUMULATE_COMP_SPV, ACCUMULATE), +}; +#undef PASS + +enum PassId : size_t { + P_PREPARE_INPUTS, + P_LUMA_PYRAMID, + P_LUMA_PYRAMID_NOWAVE, + P_SHADING_CHANGE_PYRAMID, + P_SHADING_CHANGE_PYRAMID_NOWAVE, + P_SHADING_CHANGE, + P_PREPARE_REACTIVITY, + P_LUMA_INSTABILITY, + P_ACCUMULATE, + kPassCount +}; +static_assert(sizeof PASSES / sizeof PASSES[0] == kPassCount, "PassId must name every pass"); +constexpr uint32_t kSpdStoredMips = 6; + +struct Pipeline { + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipeline = VK_NULL_HANDLE; +}; + +struct Image { + VkImage image = VK_NULL_HANDLE; + VmaAllocation memory = nullptr; + VkImageView view = VK_NULL_HANDLE; ///< every level + std::vector levels; ///< one per level, for the mipped ones + uint32_t width = 0, height = 0, level_count = 1; + VkFormat format = VK_FORMAT_UNDEFINED; +}; + +/// cbFSR3Upscaler, exactly as ffx_fsr3upscaler.cpp lays it out. The size is asserted because every +/// pass reads it by offset: a field out of place is a wrong picture, not a compile error. +struct Constants { + int32_t render_size[2]; + int32_t previous_render_size[2]; + int32_t upscale_size[2]; + int32_t previous_upscale_size[2]; + int32_t max_render_size[2]; + int32_t max_upscale_size[2]; + float device_to_view_depth[4]; + float jitter[2]; + float previous_jitter[2]; + float motion_vector_scale[2]; + float downscale_factor[2]; + float motion_vector_jitter_cancellation[2]; + float tan_half_fov; + float jitter_phase_count; + float delta_time; + float delta_pre_exposure; + float view_space_to_meters; + float frame_index; + float velocity_factor; + float reactiveness_scale; + float shading_change_scale; + float accumulation_added_per_frame; + float min_disocclusion_accumulation; +}; +static_assert(sizeof(Constants) == 148, "cbFSR3Upscaler must match the SDK's layout"); + +struct SpdConstants { + uint32_t mips; + uint32_t num_work_groups; + uint32_t work_group_offset[2]; + uint32_t render_size[2]; +}; + +/// One descriptor of a dispatch: an image view, or a range of the uniform buffer. +struct Resource { + VkImageView view = VK_NULL_HANDLE; + VkBuffer buffer = VK_NULL_HANDLE; + VkDeviceSize offset = 0; + VkDeviceSize size = 0; +}; + +/// A memory dependency over the whole queue, in the synchronization2 form this renderer loads. +void memory_barrier(VkCommandBuffer cmd, VkPipelineStageFlags2 src_stage, VkAccessFlags2 src, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst) { + VkMemoryBarrier2 b{VK_STRUCTURE_TYPE_MEMORY_BARRIER_2}; + b.srcStageMask = src_stage, b.srcAccessMask = src; + b.dstStageMask = dst_stage, b.dstAccessMask = dst; + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.memoryBarrierCount = 1, di.pMemoryBarriers = &b; + vkCmdPipelineBarrier2(cmd, &di); +} + +constexpr VkImageSubresourceRange ALL_LEVELS{VK_IMAGE_ASPECT_COLOR_BIT, 0, VK_REMAINING_MIP_LEVELS, 0, 1}; + +struct State { + bool tried = false; + bool ok = false; + bool wave = true; ///< the pyramids with subgroup operations (else their _nowave variants) + Pipeline passes[kPassCount]; + VkSampler point = VK_NULL_HANDLE; + VkSampler linear = VK_NULL_HANDLE; + // The SDK's internal images. The pairs ping-pong on frame parity, as its resource tables do. + Image accumulation[2], luma[2], luma_history[2], internal_upscaled[2]; + Image farthest_depth, shading_change, new_locks, spd_mips, farthest_depth_mip1; + Image dilated_motion_vectors, dilated_depth, previous_nearest_depth, dilated_reactive_masks; + Image frame_info, spd_atomic, lanczos_lut, default_reactive, output; + uint32_t render_width = 0, render_height = 0, upscale_width = 0, upscale_height = 0; + // The uniform buffer the constant blocks are written into, one set of slots per frame in flight so a frame being read + // is not overwritten. + VkBuffer uniforms = VK_NULL_HANDLE; + VmaAllocation uniforms_memory = nullptr; + void* uniforms_mapped = nullptr; + VkDeviceSize slot_fsr = 0, slot_spd = 0, frame_stride = 0; + uint32_t uniform_frame = 0; + // History, as fsr3upscalerDispatch carries it. + int32_t previous_render_size[2]{}; + int32_t previous_upscale_size[2]{}; + float previous_jitter[2]{}; + float frame_index = 0.0f; + uint32_t parity = 0; + bool first_evaluation = true; ///< the images are new: their first layout, cleared + bool lut_uploaded = false; + // Images of an earlier size, freed once the frames that may still read them are done (texture_frame_no) + std::vector> dead; +}; + +constexpr uint32_t kUniformFrames = 4; // (more than the swapchain's images in flight) + +State g; + +void destroy_now(Image& t) { + for (VkImageView v : t.levels) vkDestroyImageView(dev.device, v, nullptr); + if (t.view) vkDestroyImageView(dev.device, t.view, nullptr); + if (t.image) mkwvk::destroy_image(t.image, t.memory); + t = Image{}; +} + +/// An image let go: destroyed a few presents on, as work recorded with it may still be in flight +void drop_image(Image& t) { + if (t.image) g.dead.push_back({texture_frame_no(), std::move(t)}); + t = Image{}; +} + +void free_dead() { + const uint64_t now = texture_frame_no(); + for (size_t i = 0; i < g.dead.size();) { + if (now - g.dead[i].first > 4) { + destroy_now(g.dead[i].second); + g.dead[i] = std::move(g.dead.back()); + g.dead.pop_back(); + } else { + i++; + } + } +} + +/// One of the SDK's internal images: storage and sampled, GENERAL throughout, with a view per level when it has more than +/// one (the pyramids bind their levels separately). +bool make_image(Image& t, VkFormat format, uint32_t width, uint32_t height, uint32_t levels = 1) { + drop_image(t); + t.format = format, t.width = std::max(1u, width), t.height = std::max(1u, height); + t.level_count = std::max(1u, levels); + VkImageCreateInfo ci{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + ci.imageType = VK_IMAGE_TYPE_2D; + ci.format = format; + ci.extent = {t.width, t.height, 1}; + ci.mipLevels = t.level_count; + ci.arrayLayers = 1; + ci.samples = VK_SAMPLE_COUNT_1_BIT; + ci.tiling = VK_IMAGE_TILING_OPTIMAL; + ci.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; + ci.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + if (!create_image(ci, t.image, t.memory, false)) { + logf("vk: fsr3: a %ux%u image (format %d) was not made", t.width, t.height, (int)format); + t.image = VK_NULL_HANDLE; + return false; + } + VkImageViewCreateInfo vi{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vi.image = t.image; + vi.viewType = VK_IMAGE_VIEW_TYPE_2D; + vi.format = format; + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, t.level_count, 0, 1}; + if (vkCreateImageView(dev.device, &vi, nullptr, &t.view) != VK_SUCCESS) return t.view = VK_NULL_HANDLE, false; + if (t.level_count > 1) { + for (uint32_t level = 0; level < t.level_count; level++) { + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, level, 1, 0, 1}; + VkImageView v = VK_NULL_HANDLE; + if (vkCreateImageView(dev.device, &vi, nullptr, &v) != VK_SUCCESS) return false; + t.levels.push_back(v); + } + } + return true; +} + +bool make_pipeline(Pipeline& p, const PassInfo& info) { + std::vector bindings; + bindings.reserve(info.binding_count + 2); + for (size_t i = 0; i < info.binding_count; i++) { + const VkDescriptorType type = info.bindings[i] == T ? VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE + : info.bindings[i] == I ? VK_DESCRIPTOR_TYPE_STORAGE_IMAGE + : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + bindings.push_back({(uint32_t)i, type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + } + // (the two samplers every pass declares, at the bindings the SDK's GLSL fixes them to) + bindings.push_back({1000, VK_DESCRIPTOR_TYPE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + bindings.push_back({1001, VK_DESCRIPTOR_TYPE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = (uint32_t)bindings.size(); + li.pBindings = bindings.data(); + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &p.set) != VK_SUCCESS) return false; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &p.set; + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &p.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = info.spv_bytes; + mi.pCode = info.spv; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, VK_SHADER_STAGE_COMPUTE_BIT, m, "main", + nullptr}; + ci.layout = p.layout; + const VkResult made = vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &p.pipeline); + vkDestroyShaderModule(dev.device, m, nullptr); + if (made != VK_SUCCESS) { + logf("vk: fsr3: the %s pass pipeline was not made (%d)", info.name, (int)made); + p.pipeline = VK_NULL_HANDLE; + return false; + } + return true; +} + +bool make_samplers() { + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + si.minLod = 0.0f, si.maxLod = VK_LOD_CLAMP_NONE; + si.magFilter = si.minFilter = VK_FILTER_NEAREST; + si.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; + if (vkCreateSampler(dev.device, &si, nullptr, &g.point) != VK_SUCCESS) return false; + si.magFilter = si.minFilter = VK_FILTER_LINEAR; + si.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + return vkCreateSampler(dev.device, &si, nullptr, &g.linear) == VK_SUCCESS; +} + +/// Every storage format the internal images need. A device missing one cannot run the passes, and finding that out here is +/// better than a failed image allocation in the middle of a frame. +bool formats_supported() { + static const VkFormat needed[]{ + VK_FORMAT_R8_UNORM, VK_FORMAT_R16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R16G16B16A16_SFLOAT, + VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_UINT, VK_FORMAT_R32G32B32A32_SFLOAT, + VK_FORMAT_R16_SNORM, + }; + for (VkFormat f : needed) { + VkFormatProperties props{}; + vkGetPhysicalDeviceFormatProperties(dev.physical, f, &props); + if (!(props.optimalTilingFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) || + !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { + logf("vk: fsr3: not on this GPU: format %d cannot be a storage and sampled image here", (int)f); + return false; + } + } + return true; +} + +/// The uniform buffer the two constant blocks (and the Lanczos table, once) are written into: host visible and mapped, with +/// a set of slots per frame in flight so writing one frame cannot disturb a frame still being read. +bool make_uniforms() { + const VkDeviceSize align = std::max(dev.props.limits.minUniformBufferOffsetAlignment, 16); + const auto round_up = [align](VkDeviceSize n) { return (n + align - 1) / align * align; }; + g.slot_fsr = round_up(sizeof(Constants)); + g.slot_spd = round_up(sizeof(SpdConstants)); + g.frame_stride = g.slot_fsr + g.slot_spd + round_up(128 * sizeof(int16_t)); + return create_buffer(g.frame_stride * kUniformFrames, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT, + true, g.uniforms, g.uniforms_memory, &g.uniforms_mapped); +} + +/// Records one pass: its descriptors pushed in the order the pass file numbers them, then the two samplers it declares at +/// 1000 and 1001, then the dispatch, and a barrier after it (every pass reads what the one before it wrote). +void record_pass(VkCommandBuffer cmd, size_t pass, const Resource* res, size_t count, uint32_t groups_x, uint32_t groups_y) { + const PassInfo& info = PASSES[pass]; + const Pipeline& p = g.passes[pass]; + std::vector images(count); + std::vector buffers(count); + std::vector writes; + writes.reserve(count + 2); + for (size_t i = 0; i < count; i++) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = (uint32_t)i; + w.descriptorCount = 1; + if (info.bindings[i] == U) { + buffers[i] = {res[i].buffer, res[i].offset, res[i].size}; + w.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + w.pBufferInfo = &buffers[i]; + } else { + images[i] = {VK_NULL_HANDLE, res[i].view, VK_IMAGE_LAYOUT_GENERAL}; + w.descriptorType = info.bindings[i] == T ? VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + w.pImageInfo = &images[i]; + } + writes.push_back(w); + } + const VkDescriptorImageInfo point{g.point, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_UNDEFINED}; + const VkDescriptorImageInfo linear{g.linear, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_UNDEFINED}; + for (const auto& [binding, info_ptr] : {std::pair{1000, &point}, + std::pair{1001, &linear}}) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = binding; + w.descriptorCount = 1; + w.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER; + w.pImageInfo = info_ptr; + writes.push_back(w); + } + const bool timed = gprof_begin(cmd); // (RX_VK_PASS_TIMING=1: GPU ms by pass name) + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.pipeline); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.layout, 0, (uint32_t)writes.size(), writes.data()); + vkCmdDispatch(cmd, std::max(1u, groups_x), std::max(1u, groups_y), 1); + if (timed) gprof_end(cmd, std::string("fsr3 ") + info.name); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); +} + +std::vector all_images() { + std::vector all{&g.farthest_depth, &g.shading_change, &g.new_locks, &g.spd_mips, &g.farthest_depth_mip1, + &g.dilated_motion_vectors, &g.dilated_depth, &g.previous_nearest_depth, + &g.dilated_reactive_masks, &g.frame_info, &g.spd_atomic, &g.lanczos_lut, &g.default_reactive, + &g.output}; + for (size_t i = 0; i < 2; i++) { + all.push_back(&g.accumulation[i]); + all.push_back(&g.luma[i]); + all.push_back(&g.luma_history[i]); + all.push_back(&g.internal_upscaled[i]); + } + return all; +} + +/// The pipelines and the internal images for an evaluation at these sizes, made again when the sizes change +bool prepare(uint32_t render_width, uint32_t render_height, uint32_t upscale_width, uint32_t upscale_height) { + if (!supported()) return false; + if (!g.tried) { + g.tried = true; + g.ok = make_samplers() && make_uniforms(); + for (size_t i = 0; i < kPassCount && g.ok; i++) { + const bool needed = g.wave ? (i != P_LUMA_PYRAMID_NOWAVE && i != P_SHADING_CHANGE_PYRAMID_NOWAVE) + : (i != P_LUMA_PYRAMID && i != P_SHADING_CHANGE_PYRAMID); + if (needed) g.ok = make_pipeline(g.passes[i], PASSES[i]); + } + if (g.ok) logf("vk: fsr3: its passes are ready (%s subgroup operations)", g.wave ? "with" : "without"); + } + if (!g.ok) return false; + if (g.output.image && g.render_width == render_width && g.render_height == render_height && + g.upscale_width == upscale_width && g.upscale_height == upscale_height) + return true; + + const uint32_t rw = std::max(1u, render_width), rh = std::max(1u, render_height); + const uint32_t uw = std::max(1u, upscale_width), uh = std::max(1u, upscale_height); + bool made = true; + for (size_t i = 0; i < 2 && made; i++) { + made = made && make_image(g.accumulation[i], VK_FORMAT_R8_UNORM, rw, rh); + made = made && make_image(g.luma[i], VK_FORMAT_R16_SFLOAT, rw, rh); + // (the pass files declare the luma history as rgba8; the SDK allocates RGBA16F, which a storage format qualifier + // does not match, so this allocates what the shaders store) + made = made && make_image(g.luma_history[i], VK_FORMAT_R8G8B8A8_UNORM, rw, rh); + made = made && make_image(g.internal_upscaled[i], VK_FORMAT_R16G16B16A16_SFLOAT, uw, uh); + } + const uint32_t half_w = std::max(1u, rw / 2), half_h = std::max(1u, rh / 2); + const uint32_t spd_levels = (uint32_t)std::floor(std::log2((float)std::max(half_w, half_h))) + 1; + made = made && make_image(g.farthest_depth, VK_FORMAT_R16_SFLOAT, rw, rh); + made = made && make_image(g.shading_change, VK_FORMAT_R8_UNORM, half_w, half_h); + made = made && make_image(g.new_locks, VK_FORMAT_R8_UNORM, uw, uh); + made = made && make_image(g.spd_mips, VK_FORMAT_R16G16_SFLOAT, half_w, half_h, std::max(spd_levels, kSpdStoredMips)); + made = made && make_image(g.farthest_depth_mip1, VK_FORMAT_R16_SFLOAT, half_w, half_h); + made = made && make_image(g.dilated_motion_vectors, VK_FORMAT_R16G16_SFLOAT, rw, rh); + made = made && make_image(g.dilated_depth, VK_FORMAT_R32_SFLOAT, rw, rh); + made = made && make_image(g.previous_nearest_depth, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.dilated_reactive_masks, VK_FORMAT_R8G8B8A8_UNORM, rw, rh); + made = made && make_image(g.frame_info, VK_FORMAT_R32G32B32A32_SFLOAT, 1, 1); + made = made && make_image(g.spd_atomic, VK_FORMAT_R32_UINT, 1, 1); + made = made && make_image(g.lanczos_lut, VK_FORMAT_R16_SNORM, 128, 1); + made = made && make_image(g.default_reactive, VK_FORMAT_R8_UNORM, 1, 1); + made = made && make_image(g.output, VK_FORMAT_R16G16B16A16_SFLOAT, uw, uh); + g.first_evaluation = true; // (new images: their first layout and cleared, the history from nothing) + g.lut_uploaded = false; + g.parity = 0; + if (!made) { + for (Image* t : all_images()) drop_image(*t); + g.render_width = g.render_height = g.upscale_width = g.upscale_height = 0; + return false; + } + g.render_width = rw, g.render_height = rh, g.upscale_width = uw, g.upscale_height = uh; + logf("vk: fsr3: %ux%u -> %ux%u", rw, rh, uw, uh); + return true; +} + +} // namespace + +bool supported() { + if (!dev.device) return false; // (asked before the device is made, by the menu: not an answer to keep) + static const bool answer = [] { + // (the widest pass pushes thirteen descriptors and the two samplers) + if (!dev.push_descriptor || !vkCmdPushDescriptorSetKHR || dev.max_push_descriptors < 15) { + logf("vk: fsr3: not on this GPU: no push descriptors, or fewer than 15 (%u)", dev.max_push_descriptors); + return false; + } + if (!dev.features.shaderStorageImageExtendedFormats || !dev.features.shaderStorageImageWriteWithoutFormat) { + logf("vk: fsr3: not on this GPU: no extended storage image formats, or no storage writes without a format"); + return false; + } + if (!formats_supported()) return false; + VkPhysicalDeviceSubgroupProperties sg{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES}; + VkPhysicalDeviceProperties2 p2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}; + p2.pNext = &sg; + vkGetPhysicalDeviceProperties2(dev.physical, &p2); + const VkSubgroupFeatureFlags want = VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_QUAD_BIT; + g.wave = (sg.supportedOperations & want) == want && (sg.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT); + logf("vk: fsr3: AMD FSR 3.1 can run on this GPU"); + return true; + }(); + return answer; +} + +bool upscale(VkCommandBuffer cmd, const Inputs& in) { + free_dead(); + if (!in.color || !in.depth || !in.motion) return false; + if (!prepare(in.render_width, in.render_height, in.upscale_width, in.upscale_height)) return false; + + const bool first = g.first_evaluation; + const bool reset = in.reset || first; + g.first_evaluation = false; + const int32_t rw = (int32_t)g.render_width, rh = (int32_t)g.render_height; + const int32_t uw = (int32_t)g.upscale_width, uh = (int32_t)g.upscale_height; + + Constants k{}; + k.render_size[0] = rw, k.render_size[1] = rh; + k.upscale_size[0] = uw, k.upscale_size[1] = uh; + k.max_render_size[0] = rw, k.max_render_size[1] = rh; + k.max_upscale_size[0] = uw, k.max_upscale_size[1] = uh; + for (int i = 0; i < 2; i++) { + k.previous_render_size[i] = first ? k.render_size[i] : g.previous_render_size[i]; + k.previous_upscale_size[i] = first ? k.upscale_size[i] : g.previous_upscale_size[i]; + k.jitter[i] = in.jitter[i]; + k.previous_jitter[i] = first ? in.jitter[i] : g.previous_jitter[i]; + } + memcpy(k.device_to_view_depth, in.camera.device_to_view_depth, sizeof k.device_to_view_depth); + k.tan_half_fov = in.camera.tan_half_fov_x; // (not read by the 3.1.4 upscaler's passes; set as the SDK sets it) + k.motion_vector_scale[0] = in.motion_scale[0] / (float)std::max(1, rw); + k.motion_vector_scale[1] = in.motion_scale[1] / (float)std::max(1, rh); + k.downscale_factor[0] = (float)rw / (float)std::max(1, uw); + k.downscale_factor[1] = (float)rh / (float)std::max(1, uh); + k.jitter_phase_count = (float)std::max(1u, in.jitter_phases); + k.delta_time = std::clamp(in.frame_time_ms / 1000.0f, 0.0f, 1.0f); + k.delta_pre_exposure = 1.0f; + k.view_space_to_meters = 1.0f; + g.frame_index = reset ? 0.0f : g.frame_index + 1.0f; + k.frame_index = g.frame_index; + k.velocity_factor = 1.0f; // (the SDK's FFX_FSR3UPSCALER_CONFIGURE_UPSCALE_KEY_* defaults) + k.reactiveness_scale = 1.0f; + k.shading_change_scale = 1.0f; + k.accumulation_added_per_frame = 1.0f / 3.0f; + k.min_disocclusion_accumulation = -1.0f / 3.0f; + for (int i = 0; i < 2; i++) { + g.previous_render_size[i] = k.render_size[i]; + g.previous_upscale_size[i] = k.upscale_size[i]; + g.previous_jitter[i] = in.jitter[i]; + } + + const uint32_t spd_x = (g.render_width - 1) / 64 + 1; + const uint32_t spd_y = (g.render_height - 1) / 64 + 1; + SpdConstants spd{}; + spd.mips = (uint32_t)std::min(std::floor(std::log2((float)std::max(g.render_width, g.render_height))), 12.0f); + spd.num_work_groups = spd_x * spd_y; + spd.render_size[0] = g.render_width, spd.render_size[1] = g.render_height; + + // This frame's slots, written through the mapped buffer. + const VkDeviceSize base = (VkDeviceSize)(g.uniform_frame % kUniformFrames) * g.frame_stride; + g.uniform_frame++; + uint8_t* const mapped = (uint8_t*)g.uniforms_mapped + base; + memcpy(mapped, &k, sizeof k); + memcpy(mapped + g.slot_fsr, &spd, sizeof spd); + const VkDeviceSize lut_at = g.slot_fsr + g.slot_spd; + if (!g.lut_uploaded) { // (the accumulate pass's Lanczos weights, 128 taps as the SDK builds them) + int16_t weights[128]; + for (size_t i = 0; i < 128; i++) { + const float x = 2.0f * (float)i / 127.0f; + const float pi_x = 3.14159265358979f * x; + const float y = std::abs(x) < FLT_EPSILON ? 1.0f : (std::sin(pi_x) / pi_x) * (std::sin(0.5f * pi_x) / (0.5f * pi_x)); + weights[i] = (int16_t)std::lround(y * 32767.0f); + } + memcpy(mapped + lut_at, weights, sizeof weights); + } + flush_mapped(g.uniforms_memory, g.frame_stride * kUniformFrames); + + const uint32_t p = g.parity, q = p ^ 1u; + + // What was written before (the inputs: vk_fsr3_inputs.cpp) has to be visible, and new images need their first layout. + memory_barrier(cmd, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | + VK_ACCESS_2_SHADER_WRITE_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_TRANSFER_BIT | VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT); + const std::vector all = all_images(); + if (first) { + std::vector to_general; + to_general.reserve(all.size()); + for (const Image* t : all) { + VkImageMemoryBarrier2 b{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}; + b.srcStageMask = VK_PIPELINE_STAGE_2_NONE; + b.dstStageMask = VK_PIPELINE_STAGE_2_TRANSFER_BIT; + b.dstAccessMask = VK_ACCESS_2_TRANSFER_WRITE_BIT; + b.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; + b.newLayout = VK_IMAGE_LAYOUT_GENERAL; + b.srcQueueFamilyIndex = b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.image = t->image; + b.subresourceRange = ALL_LEVELS; + to_general.push_back(b); + } + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.imageMemoryBarrierCount = (uint32_t)to_general.size(); + di.pImageMemoryBarriers = to_general.data(); + vkCmdPipelineBarrier2(cmd, &di); + const VkClearColorValue zero{}; + for (const Image* t : all) vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + } + if (!g.lut_uploaded) { + g.lut_uploaded = true; + VkBufferImageCopy copy{}; + copy.bufferOffset = base + lut_at; + copy.imageSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}; + copy.imageExtent = {128, 1, 1}; + vkCmdCopyBufferToImage(cmd, g.uniforms, g.lanczos_lut.image, VK_IMAGE_LAYOUT_GENERAL, 1, ©); + } + // Per frame: the nearest-depth scratch, the SPD counter and its mips; the history on a reset. + const VkClearColorValue zero{}; + for (const Image* t : {&g.previous_nearest_depth, &g.spd_atomic, &g.spd_mips}) + vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + if (reset) { + vkCmdClearColorImage(cmd, g.accumulation[p].image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + VkClearColorValue info{}; + info.float32[0] = -1.0f, info.float32[1] = 1.0f; + vkCmdClearColorImage(cmd, g.frame_info.image, VK_IMAGE_LAYOUT_GENERAL, &info, 1, &ALL_LEVELS); + } + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + + const auto tex = [](const Image& t) { return Resource{t.view}; }; + const auto mip = [](uint32_t level) { + const size_t n = g.spd_mips.levels.size(); + return Resource{g.spd_mips.levels[std::min(level, n ? n - 1 : 0)]}; + }; + const Resource color{in.color}, depth{in.depth}, motion{in.motion}; + const Resource exposure = tex(g.frame_info); // (FSR computes its own exposure) + const Resource current_luma = tex(g.luma[p]); + const Resource cb_fsr{VK_NULL_HANDLE, g.uniforms, base, g.slot_fsr}; + const Resource cb_spd{VK_NULL_HANDLE, g.uniforms, base + g.slot_fsr, g.slot_spd}; + const auto groups = [](int32_t size, uint32_t tile) { return ((uint32_t)std::max(1, size) + tile - 1) / tile; }; + const auto run = [&](size_t pass, std::initializer_list res, uint32_t gx, uint32_t gy) { + record_pass(cmd, pass, res.begin(), res.size(), gx, gy); + }; + + run(P_PREPARE_INPUTS, {motion, depth, color, tex(g.dilated_motion_vectors), tex(g.dilated_depth), + tex(g.previous_nearest_depth), tex(g.farthest_depth), current_luma, cb_fsr}, + groups(rw, 8), groups(rh, 8)); + run(g.wave ? P_LUMA_PYRAMID : P_LUMA_PYRAMID_NOWAVE, + {current_luma, tex(g.farthest_depth), tex(g.spd_atomic), tex(g.frame_info), mip(0), mip(1), mip(2), mip(3), mip(4), + mip(5), tex(g.farthest_depth_mip1), cb_fsr, cb_spd}, + spd_x, spd_y); + // The two pyramid passes share one atomic counter, and the single-pass downsampler uses it to elect the workgroup that + // finishes the chain: it counts up to num_work_groups and the last one through does the tail. Cleared only once a frame, + // the second pass would start at the total, elect no workgroup, and the ones waiting on the tail would spin + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, VK_PIPELINE_STAGE_2_TRANSFER_BIT, + VK_ACCESS_2_TRANSFER_WRITE_BIT); + vkCmdClearColorImage(cmd, g.spd_atomic.image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + run(g.wave ? P_SHADING_CHANGE_PYRAMID : P_SHADING_CHANGE_PYRAMID_NOWAVE, + {current_luma, tex(g.luma[q]), tex(g.dilated_motion_vectors), exposure, tex(g.spd_atomic), mip(0), mip(1), mip(2), + mip(3), mip(4), mip(5), cb_fsr, cb_spd}, + spd_x, spd_y); + run(P_SHADING_CHANGE, {tex(g.spd_mips), tex(g.shading_change), cb_fsr}, groups(rw / 2, 8), groups(rh / 2, 8)); + run(P_PREPARE_REACTIVITY, + {tex(g.previous_nearest_depth), tex(g.dilated_motion_vectors), tex(g.dilated_depth), tex(g.default_reactive), + tex(g.default_reactive), tex(g.accumulation[p]), tex(g.shading_change), current_luma, exposure, + tex(g.dilated_reactive_masks), tex(g.new_locks), tex(g.accumulation[q]), cb_fsr}, + groups(rw, 8), groups(rh, 8)); + run(P_LUMA_INSTABILITY, + {exposure, tex(g.dilated_reactive_masks), tex(g.dilated_motion_vectors), tex(g.frame_info), tex(g.luma_history[p]), + tex(g.farthest_depth_mip1), current_luma, tex(g.luma_history[q]), tex(g.farthest_depth), cb_fsr}, + groups(rw, 8), groups(rh, 8)); + run(P_ACCUMULATE, + {exposure, tex(g.dilated_reactive_masks), tex(g.dilated_motion_vectors), tex(g.internal_upscaled[p]), + tex(g.lanczos_lut), tex(g.farthest_depth_mip1), current_luma, tex(g.farthest_depth), color, + tex(g.internal_upscaled[q]), tex(g.output), tex(g.new_locks), cb_fsr}, + groups(uw, 8), groups(uh, 8)); + g.parity = q; + return true; +} + +VkImage output_image() { return g.output.image; } +VkImageView output_view() { return g.output.view; } + +} // namespace mkwvk::fsr3 + +namespace mkwvk { + +namespace { + +int env_switch(const char* name) { // (-1: unset) + const char* e = getenv(name); + return e && *e ? atoi(e) : -1; +} + +/// The network's output from FSR's picture: dlss_out.comp, the same pass DLSS's picture goes through (the colour FSR was +/// given is the network's perceptual encoding, which this squares back to linear colour, as the network's own output does) +struct Out { + std::mutex mu; + bool tried = false; + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipe = VK_NULL_HANDLE; + VkSampler point = VK_NULL_HANDLE; + const char* reason = nullptr; + int reason_repeats = 0; + bool told_first = false; + uint64_t drawn = 0; +}; +Out& out_state() { + static Out o; + return o; +} + +bool make_out_pipeline() { + Out& o = out_state(); + if (o.pipe) return true; + if (o.tried) return false; + o.tried = true; + const VkDescriptorSetLayoutBinding b[2] = { + {0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}, + {1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}}; + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = 2, li.pBindings = b; + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &o.set) != VK_SUCCESS) return false; + const VkPushConstantRange pr{VK_SHADER_STAGE_COMPUTE_BIT, 0, 8}; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &o.set, pi.pushConstantRangeCount = 1, pi.pPushConstantRanges = ≺ + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &o.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = sizeof DLSS_OUT_COMP_SPV, mi.pCode = DLSS_OUT_COMP_SPV; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, VK_SHADER_STAGE_COMPUTE_BIT, m, "main", + nullptr}; + ci.layout = o.layout; + const VkResult r = vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &o.pipe); + vkDestroyShaderModule(dev.device, m, nullptr); + if (r != VK_SUCCESS) return o.pipe = VK_NULL_HANDLE, false; + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.magFilter = si.minFilter = VK_FILTER_NEAREST; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + if (vkCreateSampler(dev.device, &si, nullptr, &o.point) != VK_SUCCESS) { + vkDestroyPipeline(dev.device, o.pipe, nullptr); + return o.pipe = VK_NULL_HANDLE, false; + } + return true; +} + +bool fail(const char* why) { // (the network runs: why, when it changes and every 600th time) + Out& o = out_state(); + if (why != o.reason || ++o.reason_repeats % 600 == 0) logf("vk: fsr3: the game's upscale runs (%s)", why); + if (why != o.reason) o.reason = why, o.reason_repeats = 0; + return false; +} + +} // namespace + +bool fsr3_wanted() { + static const int env = env_switch("RX_VK_FSR"); + if (env == 0) return false; + // (the Upscaler row's FSR 3.1, upscaler_rows.h, read each time: the row changes it while the game runs) + return (env > 0 || opts.dlss == upscaler_rows::FSR3) && fsr3::supported(); +} + +bool fsr3_upscale(VkCommandBuffer cmd, uint64_t key, bool known, Texture* in, VkImageView in_view, Texture* out, + VkImageView out_view, uint32_t out_level) { + const bool upscaling = fsr3_wanted(); + if (!upscaling && !fsr3_inputs::wanted()) return false; + if (!in || !in_view || !out || !out_view) return false; + // (another network of the upscale's shape, as dlss_upscale takes them: only the scene into the picture. The gameplay + // networks sample the scene's B10G11R11 colour and write the B10G11R11 picture) + if (!known && (in->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || out->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || + (out->width >> out_level) <= in->width || !fsr3_inputs::is_scene(in))) + return false; + fsr3_inputs::Frame f; + if (!fsr3_inputs::prepare(cmd, in, in_view, f)) return upscaling ? fail("its inputs could not be made") : false; + if (!upscaling) return false; // (frame interpolation's inputs alone: the network or DLSS upscales) + Out& o = out_state(); + std::lock_guard lk(o.mu); + const uint32_t ow = std::max(1u, out->width >> out_level), oh = std::max(1u, out->height >> out_level); + if (out->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || ow < f.width || oh < f.height) return fail("unexpected output"); + if (!make_out_pipeline()) return fail("its output pass was not made"); + struct Disturbed { // (from here commands are recorded: the program's descriptor pushes are pushed again after) + ~Disturbed() { descriptors_disturbed(); } + } disturbed; + fsr3::Inputs ai; + ai.color = f.color, ai.depth = f.depth, ai.motion = f.motion; + ai.render_width = f.width, ai.render_height = f.height; + ai.upscale_width = ow, ai.upscale_height = oh; + ai.jitter[0] = f.jitter[0], ai.jitter[1] = f.jitter[1]; + ai.jitter_phases = fsr3_inputs::jitter_size(2) ? fsr3_inputs::jitter_size(2) : 8; + ai.camera = f.camera; + ai.frame_time_ms = f.frame_ms; + ai.reset = f.reset; + if (!fsr3::upscale(cmd, ai)) return fail("its passes could not be recorded"); + { + const int32_t pc[2] = {(int32_t)ow, (int32_t)oh}; + const VkDescriptorImageInfo info[2] = {{o.point, fsr3::output_view(), VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, out_view, VK_IMAGE_LAYOUT_GENERAL}}; + VkWriteDescriptorSet w[2]{{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}, {VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}}; + w[0].dstBinding = 0, w[0].descriptorCount = 1, w[0].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + w[0].pImageInfo = &info[0]; + w[1].dstBinding = 1, w[1].descriptorCount = 1, w[1].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + w[1].pImageInfo = &info[1]; + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, o.pipe); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, o.layout, 0, 2, w); + vkCmdPushConstants(cmd, o.layout, VK_SHADER_STAGE_COMPUTE_BIT, 0, sizeof pc, pc); + vkCmdDispatch(cmd, (ow + 7) / 8, (oh + 7) / 8, 1); + } + full_barrier(cmd); + fsr3_inputs::upscaled(f.width, f.height, ow, oh); + // (every 600 frames: that it still draws, and the jitter it was given, which says the host's jitter is on) + if (++o.drawn % 600 == 0) + logf("vk: fsr3: %llu frames drawn, %ux%u -> %ux%u, this one's jitter %+.3f %+.3f px of %u phases", (unsigned long long)o.drawn, + f.width, f.height, ow, oh, f.jitter[0], f.jitter[1], ai.jitter_phases); + if (o.reason) logf("vk: fsr3: FSR 3.1 draws the upscale again (frame %llu)", (unsigned long long)f.frame); + o.reason = nullptr; + if (!o.told_first) { + o.told_first = true; + logf("vk: fsr3 %ux%u -> %ux%u with assembled depth and camera motion (network %016llx; jitter %+.3f %+.3f px, " + "%u phases)", + f.width, f.height, ow, oh, (unsigned long long)key, f.jitter[0], f.jitter[1], ai.jitter_phases); + } + return true; +} + +} // namespace mkwvk diff --git a/gpu/vk/vk_fsr3.h b/gpu/vk/vk_fsr3.h new file mode 100644 index 000000000..87097fc84 --- /dev/null +++ b/gpu/vk/vk_fsr3.h @@ -0,0 +1,68 @@ +// (hookshot) AMD FidelityFX Super Resolution 3.1 (the FSR 3.1.4 upscaler of FidelityFX SDK v1.1.4) in place of OoT's +// gameplay upscale network, the same place NVIDIA DLSS takes (vk_dlss.h). Built from AMD's open shader sources +// (third_party/fidelityfx-sdk, compiled into gpu/vk/shaders by scripts/fsr3_shaders.py): every pass is a dispatch of ours, +// and nothing of AMD's is linked or loaded at run time, so it is in every build and runs on any GPU with what supported() +// asks for. +// +// The passes (namespace fsr3) take colour, depth and motion at the render size and write the picture at the output size. +// Those inputs are made in vk_fsr3_inputs.cpp; fsr3_upscale below is the dispatch's side: the network's input in, FSR's +// picture squared back into the network's output, as vk_dlss.cpp's dlss_out.comp does for DLSS. +// +// RX_VK_FSR=0: never (the row stays), =1: FSR 3.1 over the Insert menu's Upscaler row. +#pragma once + +#include + +#include "fsr3_math.h" +#include "vk_internal.h" + +namespace mkwvk { + +struct Texture; + +namespace fsr3 { + +/// One evaluation's inputs, in the SDK's meanings: the colour at the render size, the depth reversed, the motion toward the +/// frame before in render pixels without the jitter, and the jitter in render pixels (input texel k is sampled at +/// k + 0.5 - jitter) +struct Inputs { + VkImageView color = VK_NULL_HANDLE; + VkImageView depth = VK_NULL_HANDLE; + VkImageView motion = VK_NULL_HANDLE; + uint32_t render_width = 0, render_height = 0; + uint32_t upscale_width = 0, upscale_height = 0; + float jitter[2]{}; + uint32_t jitter_phases = 8; ///< the length of the jitter's sequence (dlss_jitter_phases: the host's own) + /// Turns a motion vector into render pixels (1 for vectors already in them) + float motion_scale[2]{1.0f, 1.0f}; + fsr3_math::Camera camera; ///< device_to_view_depth (fsr3_math.h) + float frame_time_ms = 16.667f; + bool reset = false; +}; + +/// Whether this device can run the passes: push descriptors enough for the widest pass, storage images in every format the +/// SDK's internal images use, the extended storage formats and storage writes without a format (the accumulate and RCAS +/// passes' output). Without subgroup quad operations in compute the two pyramids run as their wave-less variants. Asked +/// once; the reason it cannot is logged once +[[nodiscard]] bool supported(); + +/// Records one evaluation into output_image(), making the pipelines and the internal images at these sizes first (again +/// when they change). False when something could not be made or the inputs are not usable +[[nodiscard]] bool upscale(VkCommandBuffer cmd, const Inputs& in); + +/// The image an evaluation resolves into: RGBA16F at the upscale size, or null before the first +[[nodiscard]] VkImage output_image(); +[[nodiscard]] VkImageView output_view(); + +} // namespace fsr3 + +/// FSR 3.1 upscales: the Insert menu's Upscaler row says FSR 3.1 (upscaler_rows.h FSR3) or RX_VK_FSR=1, and it runs here +bool fsr3_wanted(); + +/// A gameplay upscale's dispatch, as vk_dlss.h's dlss_upscale takes it (vk_draw.cpp's fsr3_stand_in finds them the same +/// way). true: FSR 3.1 wrote the output (the dispatch is left out); false: the network +/// (or DLSS) runs, the reason logged when it changes +bool fsr3_upscale(VkCommandBuffer cmd, uint64_t key, bool known, Texture* in, VkImageView in_view, Texture* out, + VkImageView out_view, uint32_t out_level); + +} // namespace mkwvk diff --git a/gpu/vk/vk_fsr3_inputs.cpp b/gpu/vk/vk_fsr3_inputs.cpp new file mode 100644 index 000000000..eee512df2 --- /dev/null +++ b/gpu/vk/vk_fsr3_inputs.cpp @@ -0,0 +1,356 @@ +// (hookshot) AMD FSR 3.1's inputs: the scene's camera and depth, made into colour, depth and motion at the render size by +// one pass (shaders/fsr3_prep.comp); see vk_fsr3_inputs.h for what comes from #841 and what does not yet. +// +// The camera is taken exactly as vk_dlss.cpp's dlss_note_scene_draw takes it, from the draws into the scene's colour target: +// their vertex stage's uniform buffer 3 holds the target's size at 0x120, this frame's view-projection at 0x30 (row major, +// clip = M * position) and the projection at 0x70, its w row (0, 0, -1, 0) at 0xa0. The jitter the host put on the +// projection (nx2/oot_jitter.py: P[0][2] and P[1][2]) is read back from it, given to FSR in render pixels and taken off the +// motion, with dlss_math.h's functions: the same jitter, read the same way, as DLSS's. +#include "vk_fsr3_inputs.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dlss_math.h" +#include "vk_draw.h" // (descriptors_disturbed) +#include "vk_fsr3.h" +#include "vk_texture.h" + +#include "shaders/fsr3_prep_comp_spv.h" +#include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) + +namespace mkwvk::fsr3_inputs { +namespace { + +int env_switch(const char* name) { // (-1: unset) + const char* e = getenv(name); + return e && *e ? atoi(e) : -1; +} + +struct Image { + VkImage image = VK_NULL_HANDLE; + VmaAllocation memory = nullptr; + VkImageView view = VK_NULL_HANDLE; + VkFormat format = VK_FORMAT_UNDEFINED; + uint32_t width = 0, height = 0; +}; + +struct Camera { + float current[16]{}; // (its view-projection, jittered) + float projection[16]{}; // (its projection, jittered: the near plane and the field of view come from it) + float jitter[2]{}; // (the projection's offset of the picture's centre, in clip space: nx2/oot_jitter.py) + uint32_t width = 0, height = 0; + Texture* depth = nullptr; + uint64_t depth_gen = 0; // (texture_destroy_generation when taken: a depth texture destroyed since is not used) + uint64_t frame = 0; // (texture_frame_no when taken) + bool valid = false; +}; + +struct State { + std::mutex mu; + Camera cam; // (this frame's, since the last prepare) + Image color, depth, motion; + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipe = VK_NULL_HANDLE; + VkSampler point = VK_NULL_HANDLE; + bool tried = false; + std::unordered_map depth_views; + uint64_t depth_views_gen = 0; + float last_vp[16]{}; // (the frame before's view-projection, and its jitter) + float last_jitter[2]{}; + uint64_t last_frame = 0; // (the frame prepare last ran, 0: none) + std::chrono::steady_clock::time_point last_time{}; + uint32_t frame_w = 0, frame_h = 0; // (the last one prepared: a new size has no history) + std::atomic upscaled_frame{0}; // (the frame FSR's upscaler last drew: jitter_size, on the game's thread) + std::atomic jitter_w{0}, jitter_h{0}, jitter_phases{8}; + struct Dead { uint64_t frame; std::function free; }; + std::vector dead; // (what work in flight may still use: freed a few frames on) + const char* reason = nullptr; + int reason_repeats = 0; + bool told = false; +}; +State& st() { + static State s; + return s; +} + +bool fail(const char* why) { // (why, when it changes and every 600th time) + State& s = st(); + if (why != s.reason || ++s.reason_repeats % 600 == 0) logf("vk: fsr3 inputs: not made this frame (%s)", why); + if (why != s.reason) s.reason = why, s.reason_repeats = 0; + return false; +} + +void later(std::function f) { st().dead.push_back({texture_frame_no(), std::move(f)}); } +void free_dead() { + State& s = st(); + const uint64_t now = texture_frame_no(); + for (size_t i = 0; i < s.dead.size();) { + if (now - s.dead[i].frame > 4) { + s.dead[i].free(); + s.dead[i] = std::move(s.dead.back()); + s.dead.pop_back(); + } else { + i++; + } + } +} + +bool make_image(VkCommandBuffer cmd, Image& im, VkFormat format, uint32_t w, uint32_t h) { + if (im.image && im.format == format && im.width == w && im.height == h) return true; + if (im.image) { + const Image old = im; + later([old] { + vkDestroyImageView(dev.device, old.view, nullptr); + destroy_image(old.image, old.memory); + }); + im = {}; + } + VkImageCreateInfo ic{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + ic.imageType = VK_IMAGE_TYPE_2D, ic.format = format, ic.extent = {w, h, 1}, ic.mipLevels = 1, ic.arrayLayers = 1; + ic.samples = VK_SAMPLE_COUNT_1_BIT, ic.tiling = VK_IMAGE_TILING_OPTIMAL; + ic.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + if (!create_image(ic, im.image, im.memory)) return im = {}, false; + VkImageViewCreateInfo vc{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vc.image = im.image, vc.viewType = VK_IMAGE_VIEW_TYPE_2D, vc.format = format; + vc.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}; + if (vkCreateImageView(dev.device, &vc, nullptr, &im.view) != VK_SUCCESS) { + destroy_image(im.image, im.memory); + return im = {}, false; + } + im.format = format, im.width = w, im.height = h; + VkImageMemoryBarrier2 b{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}; // (UNDEFINED -> GENERAL, once) + b.srcStageMask = VK_PIPELINE_STAGE_2_NONE, b.dstStageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT; + b.dstAccessMask = VK_ACCESS_2_MEMORY_READ_BIT | VK_ACCESS_2_MEMORY_WRITE_BIT; + b.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED, b.newLayout = VK_IMAGE_LAYOUT_GENERAL; + b.srcQueueFamilyIndex = b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.image = im.image, b.subresourceRange = vc.subresourceRange; + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.imageMemoryBarrierCount = 1, di.pImageMemoryBarriers = &b; + vkCmdPipelineBarrier2(cmd, &di); + return true; +} + +/// fsr3_prep.comp's pipeline, once: two sampled inputs, three storage outputs, dlss_prep.comp's push constants +bool make_pipeline() { + State& s = st(); + if (s.pipe) return true; + if (s.tried || !dev.push_descriptor || !vkCmdPushDescriptorSetKHR) return false; + s.tried = true; + VkDescriptorSetLayoutBinding b[5]{}; + for (uint32_t i = 0; i < 5; i++) + b[i] = {i, i < 2 ? VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, + VK_SHADER_STAGE_COMPUTE_BIT, nullptr}; + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = 5, li.pBindings = b; + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &s.set) != VK_SUCCESS) return false; + const VkPushConstantRange pr{VK_SHADER_STAGE_COMPUTE_BIT, 0, 84}; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &s.set, pi.pushConstantRangeCount = 1, pi.pPushConstantRanges = ≺ + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &s.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = sizeof FSR3_PREP_COMP_SPV, mi.pCode = FSR3_PREP_COMP_SPV; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, VK_SHADER_STAGE_COMPUTE_BIT, m, "main", + nullptr}; + ci.layout = s.layout; + const VkResult r = vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &s.pipe); + vkDestroyShaderModule(dev.device, m, nullptr); + if (r != VK_SUCCESS) { + logf("vk: fsr3 inputs: their pipeline was not made (%d)", (int)r); + return s.pipe = VK_NULL_HANDLE, false; + } + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.magFilter = si.minFilter = VK_FILTER_NEAREST; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + if (vkCreateSampler(dev.device, &si, nullptr, &s.point) != VK_SUCCESS) { + vkDestroyPipeline(dev.device, s.pipe, nullptr); + return s.pipe = VK_NULL_HANDLE, false; + } + return true; +} + +/// A view of a depth texture's depth alone, for sampling (made once per image: vk_dlss.cpp's depth_view) +VkImageView depth_view(Texture* t) { + State& s = st(); + const uint64_t gen = texture_destroy_generation(); + if (gen != s.depth_views_gen) { // (a texture was destroyed: its image's view may be stale) + auto old = std::move(s.depth_views); + s.depth_views.clear(); + later([old] { + for (const auto& [image, view] : old) vkDestroyImageView(dev.device, view, nullptr); + }); + s.depth_views_gen = gen; + } + if (auto it = s.depth_views.find(t->image); it != s.depth_views.end()) return it->second; + VkImageViewCreateInfo vc{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vc.image = t->image, vc.viewType = VK_IMAGE_VIEW_TYPE_2D, vc.format = t->format; + vc.subresourceRange = {VK_IMAGE_ASPECT_DEPTH_BIT, 0, 1, 0, 1}; + VkImageView v = VK_NULL_HANDLE; + if (vkCreateImageView(dev.device, &vc, nullptr, &v) != VK_SUCCESS) v = VK_NULL_HANDLE; + s.depth_views[t->image] = v; + return v; +} + +} // namespace + +bool wanted() { return fsr3_wanted(); } + +void note_scene_draw(const Texture* color0, uint32_t width, uint32_t height, Texture* depth, uint64_t camera, + uint64_t camera_size) { + if (!color0 || !depth || !camera || camera_size < 0x230 || width < 640 || height < 360) return; + if (color0->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || !wanted()) return; + State& s = st(); + std::lock_guard lk(s.mu); + const uint64_t now = texture_frame_no(); + if (s.cam.valid && s.cam.frame == now && (uint64_t)width * height <= (uint64_t)s.cam.width * s.cam.height) + return; // (the largest one of the frame wins) + float c[0x230 / 4]; + if (!memory_read_as_submitted(camera, c, sizeof c)) return; + // (the target's size at 0x120; the projection at 0x70, its w row (0, 0, -1, 0) at 0xa0) + if (c[0x120 / 4] != (float)width || c[0x124 / 4] != (float)height || c[0xa0 / 4] != 0.0f || c[0xa4 / 4] != 0.0f || + c[0xa8 / 4] != -1.0f || c[0xac / 4] != 0.0f) + return; + Camera& k = s.cam; + std::memcpy(k.current, c + 0x30 / 4, sizeof k.current); + std::memcpy(k.projection, c + 0x70 / 4, sizeof k.projection); + // (the offset sead's projection gave the frustum, in its third column: 2 * offset, which moves the picture by -that) + k.jitter[0] = -c[0x78 / 4], k.jitter[1] = -c[0x88 / 4]; + k.width = width, k.height = height, k.depth = depth, k.depth_gen = texture_destroy_generation(), k.frame = now; + k.valid = true; +} + +bool is_scene(const Texture* in) { + State& s = st(); + std::lock_guard lk(s.mu); + return in && s.cam.valid && texture_frame_no() - s.cam.frame <= 1 && in->width == s.cam.width && + in->height == s.cam.height; +} + +bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out) { + State& s = st(); + std::lock_guard lk(s.mu); + free_dead(); + const Camera cam = s.cam; + s.cam.valid = false; // (each frame's own camera) + if (!in || !in_view) return fail("no input view"); + const uint64_t now = texture_frame_no(); + if (!cam.valid || now - cam.frame > 1) return fail("no scene camera this frame"); + if (cam.depth_gen != texture_destroy_generation()) return fail("the scene depth may be gone"); + const uint32_t rw = in->width, rh = in->height; + if (rw != cam.width || rh != cam.height) return fail("the input is not the scene's size"); + if (cam.depth->width != rw || cam.depth->height != rh || !(cam.depth->usage & VK_IMAGE_USAGE_SAMPLED_BIT) || + cam.depth->samples != VK_SAMPLE_COUNT_1_BIT || !(cam.depth->aspect & VK_IMAGE_ASPECT_DEPTH_BIT)) + return fail("unexpected scene depth"); + // (the projection without this frame's jitter: the field of view and the depth range do not move with it) + float projection[16]; + std::memcpy(projection, cam.projection, sizeof projection); + dlss_math::unjitter(projection, cam.jitter); + fsr3_math::Camera camera; + if (!fsr3_math::camera_from_projection(projection, camera)) return fail("the scene's projection is not one FSR takes"); + if (!make_pipeline()) return fail("its pipeline was not made"); + const VkImageView dview = depth_view(cam.depth); + if (!dview) return fail("no view of the scene depth"); + struct Disturbed { // (from here commands are recorded: the program's descriptor pushes are pushed again after) + ~Disturbed() { descriptors_disturbed(); } + } disturbed; + if (!make_image(cmd, s.color, VK_FORMAT_R16G16B16A16_SFLOAT, rw, rh) || !make_image(cmd, s.depth, VK_FORMAT_R32_SFLOAT, rw, rh) || + !make_image(cmd, s.motion, VK_FORMAT_R16G16_SFLOAT, rw, rh)) + return fail("its images were not made"); + + const bool reset = !s.last_frame || now - s.last_frame > 2 || s.frame_w != rw || s.frame_h != rh; + struct { + float reproject[16]; + float jitter[2]; + int32_t size[2]; + int32_t flags; + } pc{}; + static_assert(sizeof pc == 84, "fsr3_prep.comp's push constants"); + // (the motion without the jitter: from this frame's jittered clip space to the frame before's without its jitter. A jitter + // moves clip x by jitter * w: taken off the previous matrix's first two rows) + float previous[16]; + std::memcpy(previous, s.last_vp, sizeof previous); + dlss_math::unjitter(previous, s.last_jitter); + const bool motion = !reset && dlss_math::reprojection(cam.current, previous, pc.reproject); + pc.jitter[0] = cam.jitter[0], pc.jitter[1] = cam.jitter[1]; + pc.size[0] = (int32_t)rw, pc.size[1] = (int32_t)rh; + pc.flags = (motion ? 1 : 0) | (camera.flip_depth ? 2 : 0); + + full_barrier(cmd); // (the scene's colour and depth, written before) + { + const VkDescriptorImageInfo info[5] = {{s.point, in_view, VK_IMAGE_LAYOUT_GENERAL}, + {s.point, dview, VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, s.color.view, VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, s.depth.view, VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, s.motion.view, VK_IMAGE_LAYOUT_GENERAL}}; + VkWriteDescriptorSet w[5]{}; + for (uint32_t i = 0; i < 5; i++) { + w[i] = {VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w[i].dstBinding = i, w[i].descriptorCount = 1, w[i].pImageInfo = &info[i]; + w[i].descriptorType = i < 2 ? VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + } + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, s.pipe); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, s.layout, 0, 5, w); + vkCmdPushConstants(cmd, s.layout, VK_SHADER_STAGE_COMPUTE_BIT, 0, sizeof pc, &pc); + vkCmdDispatch(cmd, (rw + 7) / 8, (rh + 7) / 8, 1); + } + full_barrier(cmd); + + const auto t = std::chrono::steady_clock::now(); + Frame f; + f.color = s.color.view, f.depth = s.depth.view, f.motion = s.motion.view; + f.width = rw, f.height = rh; + dlss_math::jitter_to_pixels(cam.jitter, rw, rh, f.jitter); // (in render pixels, x right and y down: FSR's, as DLSS's) + f.camera = camera; + f.reset = reset; + f.frame_ms = s.last_time.time_since_epoch().count() && !reset + ? (float)std::min(250.0, std::chrono::duration(t - s.last_time).count()) + : 16.667f; + f.frame = now; + s.frame_w = rw, s.frame_h = rh; + s.last_time = t; + s.last_frame = now; + std::memcpy(s.last_vp, cam.current, sizeof s.last_vp); + s.last_jitter[0] = cam.jitter[0], s.last_jitter[1] = cam.jitter[1]; + if (s.reason) logf("vk: fsr3 inputs: made again (frame %llu)", (unsigned long long)now); + s.reason = nullptr; + if (!s.told) { + s.told = true; + // (what the projection says, once: the planes and the field of view FSR's depth factors are made of) + logf("vk: fsr3 inputs: %ux%u, from the scene's projection: near %.4f far %.6g fov %.2f deg, depth %s (p22 %.6g p23 " + "%.6g); camera motion from the depth, jitter %+.3f %+.3f px", + rw, rh, camera.near_plane, camera.far_plane, camera.fov_y * 57.2957795, camera.flip_depth ? "0 at the near plane: " + "reversed for FSR" : "reversed already", projection[10], projection[11], f.jitter[0], f.jitter[1]); + } + out = f; + return true; +} + +void upscaled(uint32_t rw, uint32_t rh, uint32_t dw, uint32_t dh) { + State& s = st(); + s.jitter_w = rw, s.jitter_h = rh, s.jitter_phases = (uint32_t)dlss_jitter_phases(rw, rh, dw, dh); + s.upscaled_frame = texture_frame_no(); +} + +uint32_t jitter_size(int axis) { + // (RX_VK_FSR_JITTER=0: none. 0 too once FSR has not drawn for a while: the camera as the game has it) + static const bool off = env_switch("RX_VK_FSR_JITTER") == 0; + State& s = st(); + const uint64_t last = s.upscaled_frame.load(std::memory_order_relaxed); + if (off || !last || texture_frame_no() - last > 30 || !fsr3_wanted()) return 0; + if (axis == 2) return s.jitter_phases.load(std::memory_order_relaxed); + return axis ? s.jitter_h.load(std::memory_order_relaxed) : s.jitter_w.load(std::memory_order_relaxed); +} + +} // namespace mkwvk::fsr3_inputs diff --git a/gpu/vk/vk_fsr3_inputs.h b/gpu/vk/vk_fsr3_inputs.h new file mode 100644 index 000000000..02861623c --- /dev/null +++ b/gpu/vk/vk_fsr3_inputs.h @@ -0,0 +1,66 @@ +// (hookshot) AMD FSR 3.1's inputs (vk_fsr3_inputs.cpp): everything FSR 3.1's upscaler (vk_fsr3.h) is given besides the +// picture, in one place, so they can move onto the renderer's shared +// temporal inputs (#1008) by changing this file alone. +// +// What comes from #841 (NVIDIA DLSS's own inputs) and what does not yet: +// - the camera jitter: #841's, the one jitter in the game (nx2/oot_jitter.py, host/rx_backend.c hos_dlss_jitter_clip), +// switched on for FSR by jitter_size() as vk_dlss.cpp's dlss_jitter_size switches it on for DLSS, and read back here from +// the camera's uniform buffer as vk_dlss.cpp reads it; +// - the camera: the same uniform buffer and the same checks as vk_dlss.cpp's dlss_note_scene_draw; the near plane and the +// field of view are read from its projection (fsr3_math.h), so nothing in the game is hooked for them; +// - the motion: the camera's, from the scene depth with dlss_prep.comp's math (shaders/fsr3_prep.comp). #841's actor motion +// (the skinned draws drawn again with last frame's bones) lives inside vk_dlss.cpp behind HOOKSHOT_NGX, so a build without +// NVIDIA's SDK has none of it; FSR gets it when #1008 moves that out from behind the gate. +#pragma once + +#include + +#include "fsr3_math.h" +#include "vk_internal.h" + +namespace mkwvk { + +struct Texture; + +namespace fsr3_inputs { + +/// A frame's inputs, at the render size, in images of this file's own (written by prepare) +struct Frame { + VkImageView color = VK_NULL_HANDLE; ///< RGBA16F: the network's input as it samples it, 0..1 + VkImageView depth = VK_NULL_HANDLE; ///< R32F, reversed (fsr3_math.h Camera::flip_depth) + VkImageView motion = VK_NULL_HANDLE; ///< RG16F, render pixels toward the frame before, x right and y down, no jitter + uint32_t width = 0, height = 0; + float jitter[2]{}; ///< this frame's, in render pixels as FSR takes it (x right, y down) + fsr3_math::Camera camera; + bool reset = false; ///< no history: the first frame, a new size, or a gap of more than two frames + float frame_ms = 16.667f; ///< since the frame before's + uint64_t frame = 0; ///< texture_frame_no() when prepared +}; + +/// FSR 3.1 is asked for at all: its upscaler (the Upscaler row). The scene's camera is kept only then +bool wanted(); + +/// A draw into a scene-sized target with the vertex stage's uniform buffer 3 at `camera`: what vk_dlss.cpp's +/// dlss_note_scene_draw is given, read the same way (the largest such target of the frame is the scene) +void note_scene_draw(const Texture* color0, uint32_t width, uint32_t height, Texture* depth, uint64_t camera, + uint64_t camera_size); + +/// The texture is this frame's scene colour (the size of the scene's camera this frame): for a network of the gameplay +/// upscale's shape that is not one of the known ones, as vk_dlss.cpp's dlss_upscale tells them apart +bool is_scene(const Texture* in); + +/// At the gameplay upscale's dispatch: its input as the network samples it (in, in_view), this frame's camera and depth into +/// FSR's inputs (shaders/fsr3_prep.comp). False when they cannot be made (no camera this frame, another size, ...): the +/// reason is logged when it changes +bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out); + +/// FSR 3.1's upscaler drew this frame, rw x rh into dw x dh: the host's jitter follows FSR (jitter_size) +void upscaled(uint32_t rw, uint32_t rh, uint32_t dw, uint32_t dh); + +/// The scene's width (axis 0) or height (1) for the host's camera jitter while FSR 3.1's upscaler draws, 0 otherwise or +/// with RX_VK_FSR_JITTER=0; axis 2: the jitter sequence's length (dlss_jitter_phases). vk_replay.cpp's rx_option gives +/// the host this or vk_dlss.cpp's dlss_jitter_size, whichever upscaler draws +uint32_t jitter_size(int axis); + +} // namespace fsr3_inputs +} // namespace mkwvk diff --git a/gpu/vk/vk_replay.cpp b/gpu/vk/vk_replay.cpp index 082c8d769..e1440629a 100644 --- a/gpu/vk/vk_replay.cpp +++ b/gpu/vk/vk_replay.cpp @@ -27,6 +27,7 @@ #include #include "vk_dlss.h" +#include "vk_fsr3_inputs.h" // (the camera jitter while AMD FSR 3.1 upscales) #include "status_line.h" #include "vk_reflex.h" #include "vk_draw.h" @@ -3778,6 +3779,15 @@ bool replay_start() { return true; } +/// (hookshot) The host's camera jitter (nx2/oot_jitter.py, host/rx_backend.c): the scene's size while a temporal upscaler +/// draws, NVIDIA DLSS (vk_dlss.cpp) or AMD FSR 3.1 (vk_fsr3_inputs.cpp), whichever it is (one at a time: the Upscaler row); +/// 0, no jitter, otherwise +int jitter_option(int id) { + const int axis = id - HOS_OPT_DLSS_JITTER_W; + const uint32_t d = dlss_jitter_size(axis); + return (int)(d ? d : fsr3_inputs::jitter_size(axis)); +} + void fill_replay_table(MkwVkRenderer& t) { t.stats = stats; t.nvn_submit = submit; @@ -3800,8 +3810,7 @@ void fill_replay_table(MkwVkRenderer& t) { if (id == HOS_OPT_CHEAT_CAMERA) return menu_free_camera(); return id == 0 ? opts.realtime : id == 1 ? menu_is_open() : id == 2 ? resolution_auto() && !dlss_full_scale() : id == 3 ? (dlss_full_scale() ? 10000 : resolution_scale()) : id == 4 ? opts.pad_background : id == 5 ? opts.text_speed : id == 6 ? opts.mouse_native : id == 7 ? opts.mouse_sens : id == 8 ? opts.mouse_invert : id == 9 ? opts.rumble : id == 16 ? opts.invert_cam_x : id == 17 ? opts.invert_cam_y : id == HOS_OPT_GYRO ? opts.gyro : id == HOS_OPT_GYRO_SENS_X ? opts.gyro_sens_x : id == HOS_OPT_GYRO_SENS_Y ? opts.gyro_sens_y : id == HOS_OPT_GYRO_INV_X ? opts.gyro_inv_x : id == HOS_OPT_GYRO_INV_Y ? opts.gyro_inv_y : - id == HOS_OPT_DLSS_JITTER_W || id == HOS_OPT_DLSS_JITTER_H ? (int)dlss_jitter_size(id - HOS_OPT_DLSS_JITTER_W) : - id == HOS_OPT_DLSS_JITTER_PHASES ? (int)dlss_jitter_size(2) : 0; + id == HOS_OPT_DLSS_JITTER_W || id == HOS_OPT_DLSS_JITTER_H || id == HOS_OPT_DLSS_JITTER_PHASES ? jitter_option(id) : 0; }; t.option_set = menu_option_set; t.nvn_register_sampler = register_sampler_queued; diff --git a/nx2/lift.py b/nx2/lift.py index e729975ed..9cea3597f 100644 --- a/nx2/lift.py +++ b/nx2/lift.py @@ -161,9 +161,8 @@ def main(): if a.standalone: # (hookshot) widescreen and ultrawide: C after a few of the game's instructions import oot_wide oot_wide.install(L, img) - import oot_jitter # (NVIDIA DLSS's camera jitter in a build with it, none unless DLSS runs: host/rx_backend.c) - if oot_jitter.wanted(): - oot_jitter.install(L, img) + import oot_jitter # (the temporal upscalers' camera jitter, DLSS's and FSR 3.1's: none unless one runs, host/rx_backend.c) + oot_jitter.install(L, img) import oot_occlusion # (no occlusion queries when HOOKSHOT_OCCLUSION_OFF=1: Fritchii's Occlusion Off) oot_occlusion.install(L, img) L.discover(max_insns=a.max_func) diff --git a/nx2/make_game.py b/nx2/make_game.py index b0b7ec8c2..1c000ea13 100644 --- a/nx2/make_game.py +++ b/nx2/make_game.py @@ -1086,8 +1086,6 @@ def main(a=None): if os.path.exists(os.path.join(work, "hookshot_pieces.prof")) and profile_readable(os.path.join(work, "hookshot_pieces.prof")): env["RX_PGO"] = os.path.join(work, "hookshot_pieces.prof") - if ngx_built(): # (NVIDIA DLSS's camera jitter: only in a build with it, nx2/oot_jitter.py) - env["OOT_DLSS_JITTER"] = "1" say("stage", "lift", "Translating the game to PC code") # (the same game, tools and settings as the lift before: its C is what this lift would write, and nothing recompiles from it. A # rebuild after a change to host/ alone skips the minutes of the lift) diff --git a/nx2/oot_jitter.py b/nx2/oot_jitter.py index cace22c9b..a9ce3d271 100644 --- a/nx2/oot_jitter.py +++ b/nx2/oot_jitter.py @@ -1,6 +1,7 @@ -"""NVIDIA DLSS's camera jitter for Ocarina of Time 1.1.1: C added after a few instructions of the game (a64_lift.py Lifter.after). +"""The temporal upscalers' camera jitter for Ocarina of Time 1.1.1: C added after a few instructions of the game (a64_lift.py +Lifter.after). One jitter for both: NVIDIA DLSS (gpu/vk/vk_dlss.cpp) and AMD FSR 3.1 (gpu/vk/vk_fsr3_inputs.cpp). -DLSS (gpu/vk/vk_dlss.cpp) resolves detail finer than a pixel from frames whose camera moved by a different fraction of a +A temporal upscaler resolves detail finer than a pixel from frames whose camera moved by a different fraction of a pixel each time. The game's cameras do not move so: these sites give the scene's projection a sub-pixel offset each frame, in the GPU's copy only. The game fills each view's uniform buffers in one function (main+0x6bc520): for each view it loads the view's projection matrix (the view at x28, its projection's rows at +0x1a8) and writes it, the view-projection made from @@ -15,17 +16,15 @@ the game set it. host/rx_backend.c hos_dlss_jitter_clip picks the jitter and checks the projection is one of the picture's: perspective, of -16:9 or the window's ratio (nx2/oot_wide.py). It is none (the game as shipped) unless DLSS runs, and the renderer reads the -offset back from the camera's uniform buffer. Which view is the scene's, the renderer learns from its draws, too late for +16:9 or the window's ratio (nx2/oot_wide.py). It is none (the game as shipped) unless DLSS or FSR 3.1 runs (the renderer's +rx_option HOS_OPT_DLSS_JITTER_W and _H are 0 otherwise), and the renderer reads the offset back from the camera's uniform +buffer. Which view is the scene's, the renderer learns from its draws, too late for this: the other views of the picture's ratio (a reflection, a portrait) are drawn without DLSS and move by under a pixel of the scene's size, too little to see. -Installed only in a build with NVIDIA's DLSS SDK (make_game.py sets OOT_DLSS_JITTER=1 for the lift then): other builds have -none of this code. +Installed in every standalone lift (nx2/lift.py): FSR 3.1 needs no SDK, so a build without NVIDIA's has the jitter too. """ -import os - import oot_wide # (main offset, the original instruction word there, and the registers whose third lane gets the jitter's x and y: None @@ -44,15 +43,10 @@ def _text(xreg, yreg): add = "".join("{ float _o; memcpy(&_o, (uint8_t *)c->vreg[%d] + 8, 4); _o += _j[%d]; memcpy((uint8_t *)c->vreg[%d] + 8, &_o, 4); } " % (r, axis, r) for axis, r in ((0, xreg), (1, yreg)) if r is not None) return ("{ extern int hos_dlss_jitter_clip(uint64_t projection, float out[2]); float _j[2]; " - "if (hos_dlss_jitter_clip(c->x[%d] + %#x, _j)) { %s} } /* (nx2/oot_jitter.py: DLSS camera jitter) */" + "if (hos_dlss_jitter_clip(c->x[%d] + %#x, _j)) { %s} } /* (nx2/oot_jitter.py: the upscalers' camera jitter) */" % (VIEW, PROJECTION, add)) -def wanted(): - """A build with NVIDIA DLSS (make_game.py: HOOKSHOT_NGX_SDK with its library): OOT_DLSS_JITTER=1, in the lift's key""" - return os.environ.get("OOT_DLSS_JITTER") == "1" - - def install(lifter, img): """The sites into lifter.after, after what is there; a site whose word differs (another game version) is left out""" n = 0 diff --git a/tests/test_fsr3_math.cpp b/tests/test_fsr3_math.cpp new file mode 100644 index 000000000..24fe4d5fd --- /dev/null +++ b/tests/test_fsr3_math.cpp @@ -0,0 +1,88 @@ +// gpu/vk/fsr3_math.h: AMD FSR 3.1's camera from the scene's projection (tests/test_fsr3_math.py) +#include "../gpu/vk/fsr3_math.h" +#include "../gpu/vk/dlss_math.h" + +#include +#include + +#define CHECK(name, condition) do { if (!(condition)) { std::fprintf(stderr, "FAIL %s at line %d\n", name, __LINE__); return 1; } } while (0) + +namespace fm = mkwvk::fsr3_math; + +static bool near(double a, double b, double tol) { return std::fabs(a - b) <= tol * std::max(1.0, std::fabs(b)); } + +// a perspective projection, row major (clip = p * view position, view z negative in front), clip depth -1..1 (NVN's) +static void perspective(float p[16], double fovy, double aspect, double n, double f, bool reversed) { + for (int i = 0; i < 16; i++) p[i] = 0.0f; + const double c = 1.0 / std::tan(fovy / 2); + p[0] = (float)(c / aspect), p[5] = (float)c, p[14] = -1.0f; + // ndc z = -p22 + p23 / v (v = -z > 0): -1 at the near plane and 1 at the far one, or the other way round (reversed) + const double zn = reversed ? 1.0 : -1.0, zf = -zn; + // -p22 + p23 / n = zn, -p22 + p23 / f = zf (f infinite: -p22 = zf) + double p23, p22; + if (std::isinf(f)) p22 = -zf, p23 = (zn + p22) * n; + else p23 = (zn - zf) / (1.0 / n - 1.0 / f), p22 = p23 / n - zn; + p[10] = (float)p22, p[11] = (float)p23; +} + +// the depth the renderer stores for a view distance: (ndc z + 1) / 2, as fsr3_prep.comp and dlss_prep.comp read it +static double stored(const float p[16], double v) { return ((-(double)p[10] + (double)p[11] / v) + 1.0) * 0.5; } + +int main() { + const double fov = 2.0 * std::atan(0.41421356), aspect = 16.0 / 9.0; + for (int reversed = 0; reversed < 2; reversed++) + for (double far_plane : {20000.0, (double)INFINITY}) { + float p[16]; + perspective(p, fov, aspect, 1.0, far_plane, reversed != 0); + fm::Camera c; + CHECK("a perspective projection is a camera", fm::camera_from_projection(p, c)); + CHECK("the depth FSR is given is reversed: flipped where the game's is not", c.flip_depth == !reversed); + CHECK("the near plane", near(c.near_plane, 1.0, 1e-3)); + CHECK("the far plane", std::isinf(far_plane) ? c.far_plane > 1e30f : near(c.far_plane, far_plane, 1e-2)); + CHECK("the field of view", near(c.fov_y, fov, 1e-5) && near(c.tan_half_fov_x, 0.41421356 * aspect, 1e-5)); + CHECK("the SDK's x and y factors", near(c.device_to_view_depth[2], 0.41421356 * aspect, 1e-5) && + near(c.device_to_view_depth[3], 0.41421356, 1e-5)); + // FSR's own view distance (GetViewSpaceDepth) for the depth it is given gives the distance back + for (double v : {1.0, 3.0, 50.0, 1000.0, 15000.0}) { + if (v >= far_plane) continue; + double d = stored(p, v); + if (c.flip_depth) d = 1.0 - d; + CHECK("FSR's view distance is the camera's", near(fm::view_distance(c, (float)d), v, 2e-2)); + } + CHECK("the far end stays finite and positive (GetMaxDistanceInMeters)", + fm::view_distance(c, 0.0f) > 0.0f && std::isfinite(fm::view_distance(c, 0.0f))); + CHECK("1 is the near plane", near(fm::view_distance(c, 1.0f), 1.0, 1e-3)); + } + { // the jitter on the projection (nx2/oot_jitter.py) moves neither the planes nor the field of view, once taken off + float p[16], q[16]; + perspective(p, fov, aspect, 1.0, INFINITY, false); + for (int i = 0; i < 16; i++) q[i] = p[i]; + q[2] += 0.0004f, q[6] -= 0.0007f; // (P[0][2], P[1][2] as the host adds them) + const float clip[2] = {-q[2], -q[6]}; // (the jitter as vk_fsr3_inputs.cpp reads it back: -P[0][2], -P[1][2]) + mkwvk::dlss_math::unjitter(q, clip); + fm::Camera a, b; + CHECK("jittered projection", fm::camera_from_projection(p, a) && fm::camera_from_projection(q, b)); + CHECK("same camera without its jitter", near(a.near_plane, b.near_plane, 1e-6) && near(a.fov_y, b.fov_y, 1e-6) && + std::fabs(q[2]) < 1e-9f && std::fabs(q[6]) < 1e-9f); + float px[2]; + mkwvk::dlss_math::jitter_to_pixels(clip, 1536, 864, px); + CHECK("its jitter in FSR's render pixels: x right, y down", near(px[0], -0.0004 * 768, 1e-4) && near(px[1], -0.0007 * 432, 1e-4)); + } + { // what is not a scene's projection + float p[16]; + perspective(p, fov, aspect, 1.0, 20000.0, false); + fm::Camera c; + float o[16]; + for (int i = 0; i < 16; i++) o[i] = p[i]; + o[14] = 0.0f, o[15] = 1.0f; // (orthographic: a shadow map's, the HUD's) + CHECK("not orthographic", !fm::camera_from_projection(o, c)); + for (int i = 0; i < 16; i++) o[i] = p[i]; + o[11] = 0.0f; // (no depth range) + CHECK("not without a depth range", !fm::camera_from_projection(o, c)); + for (int i = 0; i < 16; i++) o[i] = p[i]; + o[5] = NAN; + CHECK("not a NaN field of view", !fm::camera_from_projection(o, c)); + } + std::printf("fsr3 math: all checks passed\n"); + return 0; +} diff --git a/tests/test_fsr3_math.py b/tests/test_fsr3_math.py new file mode 100644 index 000000000..e1b8aaf8a --- /dev/null +++ b/tests/test_fsr3_math.py @@ -0,0 +1,48 @@ +"""AMD FSR 3.1's inputs without a game or GPU: its camera read from the scene's projection (gpu/vk/fsr3_math.h, checked by +behaviour in tests/test_fsr3_math.cpp), and shaders/fsr3_prep_comp_spv.h made from shaders/fsr3_prep.comp as it is now (when +glslangValidator is here), with the push constants vk_fsr3_inputs.cpp pushes. + +python -I -B tests/test_fsr3_math.py [--cxx g++] +""" +import argparse +import re +import shutil +import subprocess +import tempfile +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SHADERS = ROOT / "gpu" / "vk" / "shaders" + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--cxx", default="g++") + args = parser.parse_args() + # (fsr3_prep.comp keeps dlss_prep.comp's push constants, which vk_fsr3_inputs.cpp pushes as 84 bytes) + block = lambda text: re.sub(r"\s+", " ", re.sub(r"//[^\n]*", "", text[text.index("uniform P {"):text.index("} pc;")])) + if block((SHADERS / "fsr3_prep.comp").read_text(encoding="utf-8")) != block((SHADERS / "dlss_prep.comp").read_text(encoding="utf-8")): + raise SystemExit("fsr3_prep.comp's push constants are not dlss_prep.comp's") + inputs = (ROOT / "gpu" / "vk" / "vk_fsr3_inputs.cpp").read_text(encoding="utf-8") + if "static_assert(sizeof pc == 84" not in inputs or "{VK_SHADER_STAGE_COMPUTE_BIT, 0, 84}" not in inputs: + raise SystemExit("vk_fsr3_inputs.cpp does not push fsr3_prep.comp's 84 bytes") + glslang = shutil.which("glslangValidator") + with tempfile.TemporaryDirectory(prefix="fsr3-math-") as tmp: + if glslang: + out = Path(tmp) / "fsr3_prep_comp_spv.h" + subprocess.run([glslang, "-V", "--target-env", "vulkan1.3", "--vn", "FSR3_PREP_COMP_SPV", "-o", str(out), + str(SHADERS / "fsr3_prep.comp")], check=True, capture_output=True) + words = lambda t: re.findall(r"0x[0-9a-f]{8}", t) + if words(out.read_text()) != words((SHADERS / out.name).read_text()): + raise SystemExit("shaders/fsr3_prep_comp_spv.h is not made from fsr3_prep.comp as it is now (glslangValidator -V " + "--target-env vulkan1.3 --vn FSR3_PREP_COMP_SPV -o fsr3_prep_comp_spv.h fsr3_prep.comp)") + else: + print("glslangValidator not found: the SPIR-V header not checked") + exe = Path(tmp) / "fsr3-math" + subprocess.run([args.cxx, "-std=c++20", "-Wall", "-Wextra", "-Werror", str(ROOT / "tests" / "test_fsr3_math.cpp"), + "-o", str(exe)], check=True) + subprocess.run([str(exe)], check=True) + + +if __name__ == "__main__": + main() diff --git a/tests/test_make_game_ngx.py b/tests/test_make_game_ngx.py index 035a2564b..9cc67160f 100644 --- a/tests/test_make_game_ngx.py +++ b/tests/test_make_game_ngx.py @@ -58,23 +58,13 @@ def built(self, platform, sdk=None): with mock.patch.object(make_game, "LINUX", platform == "linux"), mock.patch.dict(os.environ, env): return make_game.ngx_built() - def test_jitter_only_in_a_build_with_the_sdk(self): - # (make_game sets OOT_DLSS_JITTER=1 for the lift only then: nx2/oot_jitter.py) + def test_built_with_this_platforms_library(self): + # (the camera jitter is no longer tied to this: nx2/oot_jitter.py is in every standalone lift, for FSR 3.1 as well) self.assertFalse(self.built("linux", sdk="")) self.assertFalse(self.built("linux")) # (no library yet) self.sdk_files("linux", runtime=False) self.assertTrue(self.built("linux")) self.assertFalse(self.built("windows")) # (another platform's library only) - import sys - sys.path.insert(0, str(ROOT / "nx2")) - try: - import oot_jitter - finally: - sys.path.pop(0) - with mock.patch.dict(os.environ, {"OOT_DLSS_JITTER": "1"}): - self.assertTrue(oot_jitter.wanted()) - with mock.patch.dict(os.environ, {}, clear=True): - self.assertFalse(oot_jitter.wanted()) def test_linux_runtime(self): self.sdk_files("linux") From ee2a0a6b0e0511a242be4a752e0b06b18ad0990f Mon Sep 17 00:00:00 2001 From: notquiteog <104785131+notquiteog@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:08:14 -0600 Subject: [PATCH 3/4] feat(vk): AMD FSR 3.1 frame interpolation for Frame generation at 2x FSR 3.1's frame interpolation and the optical flow it runs on (seventeen of AMD's compute passes, vendored and compiled two commits before) make the frame between two of the game's when Frame generation is 2x, from the presented colour and the scene's depth and motion (vk_fsr3_inputs.h, the same inputs as the upscaler, prepared at the gameplay upscale's dispatch whichever upscaler runs). The chain in vk_framegen.cpp is FSR 3.1, then the renderer's own blend for whatever it does not take: no inputs this present, a reset, a device that cannot run the passes. FSR 3.1 makes the midpoint only (no phase input), so 3x and more stay with the renderer's own. RX_VK_FSR_FG=0 never, =1 over the row. A present it did not see (a hitch, a present without inputs) breaks the sequence it keeps its previous frame by, and the next one is a reset: the interpolation never pairs this frame with a stale one. Its inputs are taken once, so a present never uses another frame's depth and motion. Co-Authored-By: Claude Opus 5.5 --- gpu/vk/vk_framegen.cpp | 48 +- gpu/vk/vk_fsr3.h | 3 +- gpu/vk/vk_fsr3_inputs.cpp | 19 +- gpu/vk/vk_fsr3_inputs.h | 11 +- gpu/vk/vk_fsr3fi.cpp | 1169 +++++++++++++++++++++++++++++++++++++ gpu/vk/vk_fsr3fi.h | 82 +++ 6 files changed, 1323 insertions(+), 9 deletions(-) create mode 100644 gpu/vk/vk_fsr3fi.cpp create mode 100644 gpu/vk/vk_fsr3fi.h diff --git a/gpu/vk/vk_framegen.cpp b/gpu/vk/vk_framegen.cpp index 83211f117..dfb90b1aa 100644 --- a/gpu/vk/vk_framegen.cpp +++ b/gpu/vk/vk_framegen.cpp @@ -19,6 +19,8 @@ #include #include "vk_framegen.h" +#include "vk_fsr3_inputs.h" // (AMD FSR 3.1 frame interpolation's depth and motion) +#include "vk_fsr3fi.h" #include "vk_menu.h" #include "vk_texture.h" @@ -485,6 +487,45 @@ VkImage framegen_made_image(uint32_t* w, uint32_t* h) { return fg.recorded->frame[0].image; } +/// (hookshot) The made frame of a 2x set by AMD FSR 3.1's frame interpolation (vk_fsr3fi.h), from this frame's colour and +/// the scene's depth and motion (vk_fsr3_inputs.h): 1 when it made it into set.frame[0], 0 when it did not (no inputs this +/// present, a reset, anything not made), which leaves the set to the interpolation below. sequence: framegen_record's count +/// of its presents (one it did not hand over, a gap among them, makes the next one a reset: vk_fsr3fi.h Inputs::sequence) +int fsr3fi_frame(VkCommandBuffer cmd, OutSet& set, int cur, uint32_t uw, uint32_t uh, uint64_t sequence) { + // (every 600 presents asked: how many FSR made, and how many it left to the interpolation below and why) + static uint64_t asked = 0, made = 0, no_inputs = 0; + if (++asked % 600 == 0) + logf("vk: fsr3fi: %llu of the last 600 made frames by FSR 3.1, %llu without its inputs (the renderer's own made them)", + (unsigned long long)made, (unsigned long long)no_inputs), + made = no_inputs = 0; + fsr3_inputs::Frame f; + if (!fsr3_inputs::take(f)) return no_inputs++, 0; + fsr3fi::Inputs in; + in.color = fg.frames[cur].view; + in.color_image = fg.frames[cur].image; + in.color_format = VK_FORMAT_R8G8B8A8_UNORM; // (ensure_size, for fg.frames) + in.width = uw, in.height = uh; + in.depth = f.depth, in.motion = f.motion; + in.render_width = f.width, in.render_height = f.height; + in.jitter[0] = f.jitter[0], in.jitter[1] = f.jitter[1]; + in.camera = f.camera; + in.frame_time_ms = f.frame_ms; + in.reset = f.reset; + in.sequence = sequence; + if (!fsr3fi::generate(cmd, in) || !fsr3fi::made_image()) return 0; + const VkImageCopy c{{VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, + {uw, uh, 1}}; + vkCmdCopyImage(cmd, fsr3fi::made_image(), VK_IMAGE_LAYOUT_GENERAL, set.frame[0].image, VK_IMAGE_LAYOUT_GENERAL, 1, &c); + made++; + static bool told = false; + if (!told) { + told = true; + logf("vk: fsr3fi: AMD FSR 3.1 makes the frame between each two of the game's (%ux%u, its depth and motion %ux%u)", uw, + uh, f.width, f.height); + } + return 1; +} + bool framegen_record(VkCommandBuffer cmd, VkImageView src, uint32_t sw, uint32_t sh, const int crop[4]) { int x0 = 0, y0 = 0, w = (int)sw, h = (int)sh; if (crop && crop[2] > 0 && crop[3] > 0) x0 = crop[0], y0 = crop[1], w = crop[2], h = crop[3]; @@ -509,6 +550,8 @@ bool framegen_record(VkCommandBuffer cmd, VkImageView src, uint32_t sw, uint32_t } const int cur = fg.cur, prev = cur ^ 1, m = multiplier(); const bool blend = fg.have_prev && !gap; + static uint64_t sequence = 0; + sequence++; const uint32_t uw = (uint32_t)w, uh = (uint32_t)h; const uint32_t qw = (uw + 3) / 4, qh = (uh + 3) / 4, cw = (qw + 3) / 4, ch = (qh + 3) / 4; full_barrier(cmd); @@ -558,7 +601,10 @@ bool framegen_record(VkCommandBuffer cmd, VkImageView src, uint32_t sw, uint32_t fg.recorded_at = now; return true; } - if (blend && m > 1) { + // (hookshot) At 2x, AMD FSR 3.1's frame interpolation where it runs; it makes the midpoint only, so 3x and more (and Auto, + // above) stay with the interpolation below, as does any present it does not take + if (blend && m == 2 && fsr3fi::frames_wanted()) set->made = fsr3fi_frame(cmd, *set, cur, uw, uh, sequence); + if (set->made == 0 && blend && m > 1) { pass(cmd, fg.flow, {{fg.lumas[prev].view, fg.nearest}, {fg.lumas[cur].view, fg.nearest}, {fg.flows[0].view, VK_NULL_HANDLE}}, cw, ch); pass(cmd, fg.median, {{fg.flows[0].view, fg.nearest}, {fg.flows[1].view, VK_NULL_HANDLE}}, cw, ch); diff --git a/gpu/vk/vk_fsr3.h b/gpu/vk/vk_fsr3.h index 87097fc84..881f737b3 100644 --- a/gpu/vk/vk_fsr3.h +++ b/gpu/vk/vk_fsr3.h @@ -60,7 +60,8 @@ struct Inputs { bool fsr3_wanted(); /// A gameplay upscale's dispatch, as vk_dlss.h's dlss_upscale takes it (vk_draw.cpp's fsr3_stand_in finds them the same -/// way). true: FSR 3.1 wrote the output (the dispatch is left out); false: the network +/// way). With FSR 3.1's frame interpolation on, the dispatch's input and this frame's camera become its inputs here +/// (vk_fsr3_inputs.h) whichever upscaler runs. true: FSR 3.1 wrote the output (the dispatch is left out); false: the network /// (or DLSS) runs, the reason logged when it changes bool fsr3_upscale(VkCommandBuffer cmd, uint64_t key, bool known, Texture* in, VkImageView in_view, Texture* out, VkImageView out_view, uint32_t out_level); diff --git a/gpu/vk/vk_fsr3_inputs.cpp b/gpu/vk/vk_fsr3_inputs.cpp index eee512df2..ea78f9c88 100644 --- a/gpu/vk/vk_fsr3_inputs.cpp +++ b/gpu/vk/vk_fsr3_inputs.cpp @@ -21,6 +21,7 @@ #include "dlss_math.h" #include "vk_draw.h" // (descriptors_disturbed) #include "vk_fsr3.h" +#include "vk_fsr3fi.h" #include "vk_texture.h" #include "shaders/fsr3_prep_comp_spv.h" @@ -68,7 +69,8 @@ struct State { float last_jitter[2]{}; uint64_t last_frame = 0; // (the frame prepare last ran, 0: none) std::chrono::steady_clock::time_point last_time{}; - uint32_t frame_w = 0, frame_h = 0; // (the last one prepared: a new size has no history) + Frame frame; // (the last one prepared: take()) + bool have_frame = false; std::atomic upscaled_frame{0}; // (the frame FSR's upscaler last drew: jitter_size, on the game's thread) std::atomic jitter_w{0}, jitter_h{0}, jitter_phases{8}; struct Dead { uint64_t frame; std::function free; }; @@ -205,7 +207,7 @@ VkImageView depth_view(Texture* t) { } // namespace -bool wanted() { return fsr3_wanted(); } +bool wanted() { return fsr3_wanted() || fsr3fi::frames_wanted() != 0; } void note_scene_draw(const Texture* color0, uint32_t width, uint32_t height, Texture* depth, uint64_t camera, uint64_t camera_size) { @@ -269,7 +271,7 @@ bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out) !make_image(cmd, s.motion, VK_FORMAT_R16G16_SFLOAT, rw, rh)) return fail("its images were not made"); - const bool reset = !s.last_frame || now - s.last_frame > 2 || s.frame_w != rw || s.frame_h != rh; + const bool reset = !s.last_frame || now - s.last_frame > 2 || s.frame.width != rw || s.frame.height != rh; struct { float reproject[16]; float jitter[2]; @@ -318,7 +320,7 @@ bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out) ? (float)std::min(250.0, std::chrono::duration(t - s.last_time).count()) : 16.667f; f.frame = now; - s.frame_w = rw, s.frame_h = rh; + s.frame = f, s.have_frame = true; s.last_time = t; s.last_frame = now; std::memcpy(s.last_vp, cam.current, sizeof s.last_vp); @@ -337,6 +339,15 @@ bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out) return true; } +bool take(Frame& out) { + State& s = st(); + std::lock_guard lk(s.mu); + const bool have = s.have_frame && texture_frame_no() - s.frame.frame <= 1; + s.have_frame = false; + if (have) out = s.frame; + return have; +} + void upscaled(uint32_t rw, uint32_t rh, uint32_t dw, uint32_t dh) { State& s = st(); s.jitter_w = rw, s.jitter_h = rh, s.jitter_phases = (uint32_t)dlss_jitter_phases(rw, rh, dw, dh); diff --git a/gpu/vk/vk_fsr3_inputs.h b/gpu/vk/vk_fsr3_inputs.h index 02861623c..5da2828cd 100644 --- a/gpu/vk/vk_fsr3_inputs.h +++ b/gpu/vk/vk_fsr3_inputs.h @@ -1,5 +1,5 @@ -// (hookshot) AMD FSR 3.1's inputs (vk_fsr3_inputs.cpp): everything FSR 3.1's upscaler (vk_fsr3.h) is given besides the -// picture, in one place, so they can move onto the renderer's shared +// (hookshot) AMD FSR 3.1's inputs (vk_fsr3_inputs.cpp): everything FSR 3.1's upscaler (vk_fsr3.h) and its frame +// interpolation (vk_fsr3fi.h) are given besides the picture, in one place, so they can move onto the renderer's shared // temporal inputs (#1008) by changing this file alone. // // What comes from #841 (NVIDIA DLSS's own inputs) and what does not yet: @@ -37,7 +37,8 @@ struct Frame { uint64_t frame = 0; ///< texture_frame_no() when prepared }; -/// FSR 3.1 is asked for at all: its upscaler (the Upscaler row). The scene's camera is kept only then +/// FSR 3.1 is asked for at all: its upscaler (the Upscaler row) or its frame interpolation (the Frame generation row). The +/// scene's camera is kept only then bool wanted(); /// A draw into a scene-sized target with the vertex stage's uniform buffer 3 at `camera`: what vk_dlss.cpp's @@ -54,6 +55,10 @@ bool is_scene(const Texture* in); /// reason is logged when it changes bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out); +/// The frame prepare made last, for frame interpolation at the present, once: false when none was made since the last take +/// (or it is older than the frame before), so a present never interpolates with another frame's depth and motion +bool take(Frame& out); + /// FSR 3.1's upscaler drew this frame, rw x rh into dw x dh: the host's jitter follows FSR (jitter_size) void upscaled(uint32_t rw, uint32_t rh, uint32_t dw, uint32_t dh); diff --git a/gpu/vk/vk_fsr3fi.cpp b/gpu/vk/vk_fsr3fi.cpp new file mode 100644 index 000000000..f8069fd0b --- /dev/null +++ b/gpu/vk/vk_fsr3fi.cpp @@ -0,0 +1,1169 @@ +// (hookshot) FSR 3 frame interpolation's pipelines, internal images and dispatches; see vk_fsr3fi.h +// for what it is for and where it slots in. +// +// The resource table, the per-pass binding lists, the pass order and the dispatch sizes are AMD's, +// not ours: ffx_opticalflow.cpp and ffx_frameinterpolation.cpp decide them, and each pass's GLSL +// numbers its own bindings (the FFX_OPTICALFLOW_BIND_* / FFX_FRAMEINTERPOLATION_BIND_* lines at the +// top of each file in third_party/fidelityfx-sdk/shaders). They are written out here in the SDK's +// order rather than derived, because getting one wrong is a validation error at best and a wrong +// picture at worst. vk_fsr3.cpp does the same for the upscaler and this file follows its shape. +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "vk_fsr3fi.h" +#include "vk_menu.h" // (the Frame generation row) +#include "vk_gprof.h" // (RX_VK_PASS_TIMING: a span per pass, so the report names them) +#include "vk_texture.h" + +#include "shaders/fsr3_fi_disocclusion_mask_comp_spv.h" +#include "shaders/fsr3_fi_game_motion_vector_field_comp_spv.h" +#include "shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h" +#include "shaders/fsr3_fi_inpainting_comp_spv.h" +#include "shaders/fsr3_fi_inpainting_pyramid_comp_spv.h" +#include "shaders/fsr3_fi_interpolate_comp_spv.h" +#include "shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h" +#include "shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h" +#include "shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h" +#include "shaders/fsr3_fi_setup_comp_spv.h" +#include "shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h" +#include "shaders/fsr3_of_compute_scd_divergence_comp_spv.h" +#include "shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h" +#include "shaders/fsr3_of_generate_scd_histogram_comp_spv.h" +#include "shaders/fsr3_of_luminance_pyramid_comp_spv.h" +#include "shaders/fsr3_of_prepare_luma_comp_spv.h" +#include "shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h" +#include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) + +namespace mkwvk::fsr3fi { +namespace { + +// ---- the passes and what each one binds ---- + +/// A descriptor's kind. The optical-flow passes declare no sampler at all (every load there is a +/// texelFetch, under GL_EXT_samplerless_texture_functions); the interpolation passes declare one, a +/// linear clamp sampler at binding 1000, which is why the sampler is per-pass below and not the +/// fixed pair of samplers vk_fsr3.cpp pushes for every upscaler pass. +enum Kind : uint8_t { T, I, U, B }; // sampled texture, storage image, uniform buffer, storage buffer + +/// One descriptor, at the binding number its pass's GLSL fixes it to. The numbers are not an index +/// into this list: three of the seventeen passes leave gaps where the SDK's HLSL root signature +/// needed a slot the GLSL does not declare. +struct Bind { + uint16_t binding; + Kind kind; +}; + +struct PassInfo { + const char* name; + const uint32_t* spv; + size_t spv_bytes; + const Bind* binds; + size_t bind_count; + bool sampler; ///< declares the linear clamp sampler at binding 1000 +}; + +// Optical flow. Seven passes, no samplers. +constexpr Bind OF_PREPARE_LUMA[]{{0, T}, {1, I}, {2, U}}; +constexpr Bind OF_LUMINANCE_PYRAMID[]{{0, I}, {1, I}, {2, I}, {3, I}, {4, I}, + {5, I}, {6, I}, {7, U}, {8, U}}; +constexpr Bind OF_SCD_HISTOGRAM[]{{0, T}, {1, I}, {2, U}}; +constexpr Bind OF_SCD_DIVERGENCE[]{{0, I}, {1, I}, {2, I}, {3, I}, {4, U}}; +constexpr Bind OF_SEARCH[]{{0, T}, {1, T}, {2, I}, {3, I}, {4, U}}; +constexpr Bind OF_FILTER[]{{0, T}, {1, I}, {2, U}}; +constexpr Bind OF_SCALE[]{{0, T}, {1, T}, {2, T}, {3, I}, {4, I}, {5, U}}; + +// Frame interpolation. Ten passes, each with the linear clamp sampler. +constexpr Bind FI_RECONSTRUCT_AND_DILATE[]{{0, T}, {1, T}, {2, I}, {3, I}, {4, I}, {5, U}}; +constexpr Bind FI_SETUP[]{{0, T}, {1, I}, {2, I}, {3, I}, {4, I}, {5, I}, {6, B}, {7, U}}; +constexpr Bind FI_RECONSTRUCT_PREVIOUS_DEPTH[]{{0, T}, {1, T}, {2, T}, {3, T}, {4, I}, {5, U}}; +constexpr Bind FI_GAME_MOTION_VECTOR_FIELD[]{{0, T}, {1, T}, {2, T}, {3, T}, + {4, T}, {5, I}, {6, I}, {7, U}}; +/// The game vector field's inpainting pyramid: two textures, the counter buffer, thirteen mip +/// levels, then both constant blocks. The pyramid is a single-pass downsampler, which is why it +/// wants every level bound at once and why it reads back level 5 through the same storage images. +constexpr Bind FI_GAME_VECTOR_FIELD_PYRAMID[]{ + {0, T}, {1, T}, {2, B}, {3, I}, {4, I}, {5, I}, + {6, I}, {7, I}, {8, I}, {9, I}, {10, I}, {11, I}, + {12, I}, {13, I}, {14, I}, {15, I}, {16, U}, {17, U}}; +/// Binding 5 is not declared by this pass: the SDK's HLSL has an optical-flow debug view there and +/// the GLSL leaves the slot out, so the list jumps from 4 to 6. +constexpr Bind FI_OPTICAL_FLOW_VECTOR_FIELD[]{{0, T}, {1, T}, {2, T}, {3, T}, + {4, T}, {6, I}, {7, I}, {8, U}}; +constexpr Bind FI_DISOCCLUSION_MASK[]{{0, T}, {1, T}, {2, T}, {3, T}, {4, T}, + {5, T}, {6, T}, {7, I}, {8, U}}; +constexpr Bind FI_INTERPOLATE[]{{0, T}, {1, T}, {2, T}, {3, T}, {4, T}, {5, T}, + {6, T}, {7, T}, {8, B}, {9, I}, {10, U}}; +constexpr Bind FI_INPAINTING_PYRAMID[]{{0, T}, {1, B}, {2, I}, {3, I}, {4, I}, {5, I}, + {6, I}, {7, I}, {8, I}, {9, I}, {10, I}, {11, I}, + {12, I}, {13, I}, {14, I}, {15, U}, {16, U}}; +/// Bindings 4 to 6 are the HUD-less and UI inputs this game does not have, which the GLSL does not +/// declare, so the output jumps to 7. +constexpr Bind FI_INPAINTING[]{{0, T}, {1, T}, {2, T}, {3, T}, {7, I}, {8, U}}; + +#define PASS(n, spv, b, s) PassInfo{n, spv, sizeof spv, b, sizeof b / sizeof b[0], s} + +/// The passes, in the order PassId numbers them. +const PassInfo PASSES[]{ + PASS("of prepare_luma", FSR3_OF_PREPARE_LUMA_COMP_SPV, OF_PREPARE_LUMA, false), + PASS("of luminance_pyramid", FSR3_OF_LUMINANCE_PYRAMID_COMP_SPV, OF_LUMINANCE_PYRAMID, false), + PASS("of scd_histogram", FSR3_OF_GENERATE_SCD_HISTOGRAM_COMP_SPV, OF_SCD_HISTOGRAM, false), + PASS("of scd_divergence", FSR3_OF_COMPUTE_SCD_DIVERGENCE_COMP_SPV, OF_SCD_DIVERGENCE, false), + PASS("of search", FSR3_OF_COMPUTE_OPTICAL_FLOW_V5_COMP_SPV, OF_SEARCH, false), + PASS("of filter", FSR3_OF_FILTER_OPTICAL_FLOW_V5_COMP_SPV, OF_FILTER, false), + PASS("of scale", FSR3_OF_SCALE_OPTICAL_FLOW_V5_COMP_SPV, OF_SCALE, false), + PASS("fi reconstruct_and_dilate", FSR3_FI_RECONSTRUCT_AND_DILATE_COMP_SPV, + FI_RECONSTRUCT_AND_DILATE, true), + PASS("fi setup", FSR3_FI_SETUP_COMP_SPV, FI_SETUP, true), + PASS("fi reconstruct_previous_depth", FSR3_FI_RECONSTRUCT_PREVIOUS_DEPTH_COMP_SPV, + FI_RECONSTRUCT_PREVIOUS_DEPTH, true), + PASS("fi game_motion_vector_field", FSR3_FI_GAME_MOTION_VECTOR_FIELD_COMP_SPV, + FI_GAME_MOTION_VECTOR_FIELD, true), + PASS("fi game_vector_field_pyramid", FSR3_FI_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_COMP_SPV, + FI_GAME_VECTOR_FIELD_PYRAMID, true), + PASS("fi optical_flow_vector_field", FSR3_FI_OPTICAL_FLOW_VECTOR_FIELD_COMP_SPV, + FI_OPTICAL_FLOW_VECTOR_FIELD, true), + PASS("fi disocclusion_mask", FSR3_FI_DISOCCLUSION_MASK_COMP_SPV, FI_DISOCCLUSION_MASK, true), + PASS("fi interpolate", FSR3_FI_INTERPOLATE_COMP_SPV, FI_INTERPOLATE, true), + PASS("fi inpainting_pyramid", FSR3_FI_INPAINTING_PYRAMID_COMP_SPV, FI_INPAINTING_PYRAMID, true), + PASS("fi inpainting", FSR3_FI_INPAINTING_COMP_SPV, FI_INPAINTING, true), +}; +#undef PASS + +enum PassId : size_t { + P_OF_PREPARE_LUMA, + P_OF_LUMINANCE_PYRAMID, + P_OF_SCD_HISTOGRAM, + P_OF_SCD_DIVERGENCE, + P_OF_SEARCH, + P_OF_FILTER, + P_OF_SCALE, + P_FI_RECONSTRUCT_AND_DILATE, + P_FI_SETUP, + P_FI_RECONSTRUCT_PREVIOUS_DEPTH, + P_FI_GAME_MOTION_VECTOR_FIELD, + P_FI_GAME_VECTOR_FIELD_PYRAMID, + P_FI_OPTICAL_FLOW_VECTOR_FIELD, + P_FI_DISOCCLUSION_MASK, + P_FI_INTERPOLATE, + P_FI_INPAINTING_PYRAMID, + P_FI_INPAINTING, + P_COUNT, +}; +static_assert(sizeof PASSES / sizeof PASSES[0] == P_COUNT, "PassId must name every pass"); + +// ---- the constant blocks ---- + +/// cbFI, exactly as ffx_frameinterpolation_private.h lays out FrameInterpolationConstants and as the +/// std140 block in ffx_frameinterpolation_callbacks_glsl.h reads it. Every pass reads it by offset, +/// so a field out of place is a wrong picture and not a compile error; the size is asserted because +/// that is the one part of the layout a compiler can check for us. +struct Constants { + int32_t render_size[2]; + int32_t display_size[2]; + float display_size_rcp[2]; + float camera_near; + float camera_far; + int32_t upscaler_target_size[2]; + int32_t mode; + int32_t reset; + float device_to_view_depth[4]; + float delta_time; + int32_t hudless_attached_factor; + int32_t distortion_field_size[2]; + float optical_flow_scale[2]; + int32_t optical_flow_block_size; + uint32_t dispatch_flags; + int32_t max_render_size[2]; + int32_t optical_flow_half_res_mode; + int32_t num_instances; + int32_t interpolation_rect_base[2]; + int32_t interpolation_rect_size[2]; + float debug_bar_color[3]; + uint32_t back_buffer_transfer_function; + float min_max_luminance[2]; + float tan_half_fov; + int32_t pad1; + float jitter[2]; + float motion_vector_scale[2]; +}; +static_assert(sizeof(Constants) == 176, "cbFI must match the SDK's layout"); + +/// cbInpaintingPyramid: the single-pass downsampler's setup, staged twice a frame because the two +/// pyramid passes downsample rectangles of different sizes. +struct PyramidConstants { + uint32_t mips; + uint32_t num_work_groups; + uint32_t work_group_offset[2]; +}; +static_assert(sizeof(PyramidConstants) == 16, "cbInpaintingPyramid must match the SDK's layout"); + +/// cbOF, as ffx_opticalflow_private.h lays out OpticalflowConstants. The pyramid level in it changes +/// between dispatches, which is why there is a slot per level below rather than one block a frame. +struct OfConstants { + int32_t input_luma_resolution[2]; + uint32_t pyramid_level; + uint32_t pyramid_level_count; + int32_t frame_index; + uint32_t back_buffer_transfer_function; + float min_max_luminance[2]; +}; +static_assert(sizeof(OfConstants) == 32, "cbOF must match the SDK's layout"); + +/// cbOF_SPD. Only numWorkGroupOpticalFlowInputPyramid is read by the luma pyramid (its mip count is +/// fixed at six in the shader itself), but the whole block is written because the GLSL declares it. +struct OfSpdConstants { + uint32_t mips; + uint32_t num_work_groups; + uint32_t work_group_offset[2]; + uint32_t num_work_groups_pyramid; + uint32_t pad0, pad1, pad2; +}; +static_assert(sizeof(OfSpdConstants) == 32, "cbOF_SPD must match the SDK's layout"); + +// ---- state ---- + +constexpr uint32_t kMaxMade = 1; ///< one midpoint frame between two of the game's (vk_fsr3fi.h) +constexpr uint32_t kOfLevels = 7; ///< advancedAlgorithmIterations in ffx_opticalflow.cpp +constexpr uint32_t kOfBlockSize = 8; ///< opticalFlowBlockSize, likewise +constexpr uint32_t kPyramidMips = 13; ///< the mip UAVs the two inpainting pyramid passes declare +constexpr uint32_t kScdHistogramWidth = 256 * (3 * 3); ///< HistogramBins * HistogramsPerDim^2 +constexpr uint32_t kCountersBytes = 16; ///< two uints, rounded up: COUNTER_SPD and the reset index +constexpr uint32_t kUniformFrames = 4; ///< (more than the swapchain's images in flight) + +struct Pipeline { + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipeline = VK_NULL_HANDLE; +}; + +struct Image { + VkImage image = VK_NULL_HANDLE; + VmaAllocation memory = nullptr; + VkImageView view = VK_NULL_HANDLE; ///< every level + std::vector levels; ///< one per level, for the mipped ones + uint32_t width = 0, height = 0, level_count = 1; + VkFormat format = VK_FORMAT_UNDEFINED; +}; + +/// One descriptor of a dispatch: an image view, or a range of a buffer. +struct Resource { + VkImageView view = VK_NULL_HANDLE; + VkBuffer buffer = VK_NULL_HANDLE; + VkDeviceSize offset = 0; + VkDeviceSize size = 0; +}; + +struct State { + bool tried = false; + bool ok = false; + /// An allocation failed once: the images are not re-made every frame afterwards, because a + /// device that could not find the memory for them this frame will not find it in sixteen + /// milliseconds and the retry would be a stall a frame for the rest of the run. + bool failed = false; + Pipeline passes[P_COUNT]; + VkSampler linear = VK_NULL_HANDLE; + + // Optical flow's internal images. The luma pyramids ping-pong on frame parity: one holds this + // frame's luma and the other the frame before it, which is the pair the search works on. + Image of_luma[2]; ///< R8_UINT at display size, seven levels + Image of_flow[2][kOfLevels]; ///< R16G16_SINT, one image a level (see make_sizes) + Image of_vector; ///< the flow the interpolation reads, at level 0's size + Image of_confidence; ///< zero: this flow produces none, and the SDK binds none + Image of_scd_histogram, of_scd_previous_histogram, of_scd_temp, of_scd_output; + + // Frame interpolation's internal images. The first three are the SDK's "shared" resources, which + // its own FSR3 pairing fills from the upscaler; here the reconstruct-and-dilate pass fills them. + Image fi_dilated_depth, fi_dilated_motion_vectors, fi_reconstructed_depth_previous; + Image fi_reconstructed_depth_interpolated; + Image fi_game_mv_x, fi_game_mv_y, fi_of_mv_x, fi_of_mv_y; + Image fi_disocclusion_mask, fi_inpainting_pyramid; + Image fi_previous_source; ///< the frame before this one, at display size + Image fi_distortion_field; ///< 1x1 and zero: this game has no lens distortion + Image made[kMaxMade]; + + // The counters the two pyramid passes and the setup pass share: a storage buffer, not an image, + // because that is what the GLSL declares (FrameInterpolationRWCounters_t). + VkBuffer counters = VK_NULL_HANDLE; + VmaAllocation counters_memory = nullptr; + + uint32_t width = 0, height = 0, render_width = 0, render_height = 0; + VkFormat present_format = VK_FORMAT_UNDEFINED; + uint32_t ready = 0; ///< how many of `made` exist + uint32_t flow_width[kOfLevels]{}, flow_height[kOfLevels]{}; + + // The uniform buffer the four constant blocks are written into, with a set of slots per frame in + // flight so writing one frame cannot disturb a frame still being read. + VkBuffer uniforms = VK_NULL_HANDLE; + VmaAllocation uniforms_memory = nullptr; + void* uniforms_mapped = nullptr; + VkDeviceSize slot_fi = 0, slot_pyramid = 0, slot_of = 0, slot_of_spd = 0, frame_stride = 0; + uint32_t uniform_frame = 0; + + uint32_t parity = 0; + int32_t of_frame_index = 0; + bool first_frame = true; + uint64_t sequence = 0; ///< Inputs::sequence of the frame kept as the previous source + bool in_general = false; ///< the UNDEFINED -> GENERAL barriers have been recorded +}; + +State g; + +constexpr VkImageSubresourceRange ALL_LEVELS{VK_IMAGE_ASPECT_COLOR_BIT, 0, VK_REMAINING_MIP_LEVELS, + 0, 1}; + +/// The Frame generation row at 2x asks for this backend's one made frame; RX_VK_FSR_FG=0 never, =1 over the row. The row +/// is read every time: a player turning frame generation on mid-game gets it on the next frame, not the next launch. +uint32_t asked() { + static const int env = []() { + const char* e = getenv("RX_VK_FSR_FG"); + return e && *e ? std::max(0, atoi(e)) : -1; + }(); + if (env >= 0) return env ? 1u : 0u; + return opts.framegen == 2 ? 1u : 0u; +} + +/// A memory dependency over the whole queue, in the synchronization2 form this renderer loads. +void memory_barrier(VkCommandBuffer cmd, VkPipelineStageFlags2 src_stage, VkAccessFlags2 src, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst) { + VkMemoryBarrier2 b{VK_STRUCTURE_TYPE_MEMORY_BARRIER_2}; + b.srcStageMask = src_stage, b.srcAccessMask = src; + b.dstStageMask = dst_stage, b.dstAccessMask = dst; + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.memoryBarrierCount = 1, di.pMemoryBarriers = &b; + vkCmdPipelineBarrier2(cmd, &di); +} + +// (images of an earlier size, freed once the presents that may still read them are done: texture_frame_no) +std::vector> dead; + +void destroy_now(Image& t) { + for (VkImageView v : t.levels) vkDestroyImageView(dev.device, v, nullptr); + if (t.view) vkDestroyImageView(dev.device, t.view, nullptr); + if (t.image) mkwvk::destroy_image(t.image, t.memory); + t = Image{}; +} + +/// An image let go: destroyed a few presents on, as work recorded with it may still be in flight +void drop_image(Image& t) { + if (t.image) dead.push_back({texture_frame_no(), std::move(t)}); + t = Image{}; +} + +void free_dead() { + const uint64_t now = texture_frame_no(); + for (size_t i = 0; i < dead.size();) { + if (now - dead[i].first > 4) { + destroy_now(dead[i].second); + dead[i] = std::move(dead.back()); + dead.pop_back(); + } else { + i++; + } + } +} + +/// One of the SDK's internal images: storage and sampled, GENERAL throughout, with a view per level +/// when it has more than one (both pyramids bind their levels separately while the passes that read +/// a pyramid read it as one mipped texture). +bool make_image(Image& t, VkFormat format, uint32_t width, uint32_t height, uint32_t levels = 1) { + drop_image(t); + t.format = format, t.width = std::max(1u, width), t.height = std::max(1u, height); + t.level_count = std::max(1u, levels); + VkImageCreateInfo ci{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + ci.imageType = VK_IMAGE_TYPE_2D; + ci.format = format; + ci.extent = {t.width, t.height, 1}; + ci.mipLevels = t.level_count; + ci.arrayLayers = 1; + ci.samples = VK_SAMPLE_COUNT_1_BIT; + ci.tiling = VK_IMAGE_TILING_OPTIMAL; + // (TRANSFER_SRC as well as DST: the made frames are blitted out of by the present path, and a + // made frame of a repeated set is copied from the first one, so both directions are asked for + // everywhere rather than tracked per image) + ci.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + ci.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + if (!create_image(ci, t.image, t.memory, false)) { + logf("vk: fsr3fi: a %ux%u image (format %d) was not made", t.width, t.height, (int)format); + return false; + } + VkImageViewCreateInfo vi{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vi.image = t.image; + vi.viewType = VK_IMAGE_VIEW_TYPE_2D; + vi.format = format; + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, t.level_count, 0, 1}; + if (vkCreateImageView(dev.device, &vi, nullptr, &t.view) != VK_SUCCESS) return false; + if (t.level_count > 1) { + for (uint32_t level = 0; level < t.level_count; level++) { + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, level, 1, 0, 1}; + VkImageView v = VK_NULL_HANDLE; + if (vkCreateImageView(dev.device, &vi, nullptr, &v) != VK_SUCCESS) return false; + t.levels.push_back(v); + } + } + return true; +} + +bool make_pipeline(Pipeline& p, const PassInfo& info) { + std::vector bindings; + bindings.reserve(info.bind_count + 1); + for (size_t i = 0; i < info.bind_count; i++) { + VkDescriptorType type = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE; + switch (info.binds[i].kind) { + case T: type = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE; break; + case I: type = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; break; + case U: type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; break; + case B: type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; break; + } + bindings.push_back({info.binds[i].binding, type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + } + if (info.sampler) + bindings.push_back({1000, VK_DESCRIPTOR_TYPE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, + nullptr}); + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = (uint32_t)bindings.size(); + li.pBindings = bindings.data(); + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &p.set) != VK_SUCCESS) return false; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &p.set; + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &p.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = info.spv_bytes; + mi.pCode = info.spv; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, + VK_SHADER_STAGE_COMPUTE_BIT, m, "main", nullptr}; + ci.layout = p.layout; + const VkResult made = + vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &p.pipeline); + vkDestroyShaderModule(dev.device, m, nullptr); + if (made != VK_SUCCESS) { + logf("vk: fsr3fi: the %s pass pipeline was not made (%d)", info.name, (int)made); + p.pipeline = VK_NULL_HANDLE; + return false; + } + return true; +} + +/// The one sampler the interpolation passes declare: linear, clamped to the edge. It is the only +/// filtered read in the whole chain (the colour sources and the disocclusion mask are sampled in UV +/// space); every other load is a texelFetch and needs no sampler at all. +bool make_sampler() { + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + si.minLod = 0.0f, si.maxLod = VK_LOD_CLAMP_NONE; + si.magFilter = si.minFilter = VK_FILTER_LINEAR; + si.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + return vkCreateSampler(dev.device, &si, nullptr, &g.linear) == VK_SUCCESS; +} + +/// Every storage format the internal images need. A device missing one cannot run the passes, and +/// finding that out here is better than a failed image allocation in the middle of a frame. +bool formats_supported() { + static const VkFormat needed[]{ + VK_FORMAT_R8_UINT, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R16G16_SINT, + VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R32_UINT, VK_FORMAT_R32_SFLOAT, + VK_FORMAT_R16G16B16A16_SFLOAT, + }; + for (VkFormat f : needed) { + VkFormatProperties props{}; + vkGetPhysicalDeviceFormatProperties(dev.physical, f, &props); + if (!(props.optimalTilingFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) || + !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { + logf("vk: fsr3fi: format %d cannot be a storage and sampled image here", (int)f); + return false; + } + } + return true; +} + +/// The device features the compiled passes ask for by capability, which is why they are checked here +/// rather than assumed. The interpolation and inpainting passes write (and the inpainting pass also +/// reads) the output image through an image declared with no format qualifier, because the SDK lets +/// the application choose the backbuffer's format; that compiles to StorageImageRead/ +/// WriteWithoutFormat. Most of the internal images are in formats outside Vulkan's mandatory storage +/// set, which is StorageImageExtendedFormats. And both single-pass downsamplers and the flow search +/// use subgroup arithmetic and quad operations. +bool features_supported() { + if (!dev.features.shaderStorageImageWriteWithoutFormat || + !dev.features.shaderStorageImageReadWithoutFormat) { + logf("vk: fsr3fi: this GPU cannot read or write a storage image without a format, which the " + "interpolation and inpainting passes need for the frame they write"); + return false; + } + if (!dev.features.shaderStorageImageExtendedFormats) { + logf("vk: fsr3fi: this GPU has no extended storage image formats"); + return false; + } + VkPhysicalDeviceSubgroupProperties sg{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES}; + VkPhysicalDeviceProperties2 p2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}; + p2.pNext = &sg; + vkGetPhysicalDeviceProperties2(dev.physical, &p2); + const VkSubgroupFeatureFlags want = VK_SUBGROUP_FEATURE_BASIC_BIT | + VK_SUBGROUP_FEATURE_ARITHMETIC_BIT | + VK_SUBGROUP_FEATURE_QUAD_BIT; + if ((sg.supportedOperations & want) != want || + !(sg.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT)) { + logf("vk: fsr3fi: this GPU's compute stage lacks the subgroup arithmetic or quad operations " + "the pyramid and flow search passes were compiled with (%#x)", + (unsigned)sg.supportedOperations); + return false; + } + // The widest pass pushes eighteen descriptors and the sampler; a device that cannot take them + // in one push would need a descriptor pool, which is a different backend from this one. + uint32_t widest = 0; + for (const PassInfo& p : PASSES) + widest = std::max(widest, (uint32_t)p.bind_count + (p.sampler ? 1u : 0u)); + if (dev.max_push_descriptors < widest) { + logf("vk: fsr3fi: this GPU takes %u push descriptors and a pass needs %u", + dev.max_push_descriptors, widest); + return false; + } + return true; +} + +/// The uniform buffer the four constant blocks are written into: host visible and mapped, with a set +/// of slots per frame in flight. cbOF gets one slot per pyramid level plus one for the passes before +/// the pyramid, because the flow walks its levels from the top down and each level's dispatches read +/// a block that names the level they are on. +bool make_uniforms() { + const VkDeviceSize align = + std::max(dev.props.limits.minUniformBufferOffsetAlignment, 16); + const auto round_up = [align](VkDeviceSize n) { return (n + align - 1) / align * align; }; + g.slot_fi = round_up(sizeof(Constants)); + g.slot_pyramid = round_up(sizeof(PyramidConstants)); + g.slot_of = round_up(sizeof(OfConstants)); + g.slot_of_spd = round_up(sizeof(OfSpdConstants)); + g.frame_stride = g.slot_fi + 2 * g.slot_pyramid + (kOfLevels + 1) * g.slot_of + g.slot_of_spd; + return create_buffer(g.frame_stride * kUniformFrames, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, true, + g.uniforms, g.uniforms_memory, &g.uniforms_mapped); +} + +/// Records one pass: its descriptors pushed at the binding numbers its GLSL fixes them to, then the +/// sampler it declares (when it declares one), then the dispatch. +void record_pass(VkCommandBuffer cmd, size_t pass, const Resource* res, size_t count, uint32_t gx, + uint32_t gy, uint32_t gz = 1) { + const PassInfo& info = PASSES[pass]; + const Pipeline& p = g.passes[pass]; + std::vector images(count); + std::vector buffers(count); + std::vector writes; + writes.reserve(count + 1); + for (size_t i = 0; i < count; i++) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = info.binds[i].binding; + w.descriptorCount = 1; + if (info.binds[i].kind == U || info.binds[i].kind == B) { + buffers[i] = {res[i].buffer, res[i].offset, res[i].size}; + w.descriptorType = info.binds[i].kind == U ? VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER + : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + w.pBufferInfo = &buffers[i]; + } else { + images[i] = {VK_NULL_HANDLE, res[i].view, VK_IMAGE_LAYOUT_GENERAL}; + w.descriptorType = info.binds[i].kind == T ? VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE + : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + w.pImageInfo = &images[i]; + } + writes.push_back(w); + } + const VkDescriptorImageInfo linear{g.linear, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_UNDEFINED}; + if (info.sampler) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = 1000; + w.descriptorCount = 1; + w.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER; + w.pImageInfo = &linear; + writes.push_back(w); + } + // (one timed span per pass with RX_VK_PASS_TIMING=1: seventeen dispatches a frame needs a number + // per pass name, not another hypothesis about which of them costs) + const bool timed = gprof_begin(cmd); + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.pipeline); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.layout, 0, + (uint32_t)writes.size(), writes.data()); + vkCmdDispatch(cmd, std::max(1u, gx), std::max(1u, gy), std::max(1u, gz)); + if (timed) gprof_end(cmd, std::string("fsr3fi ") + info.name); + // (every pass reads what the one before it wrote, and the two pyramids read back their own + // levels across workgroups) + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); +} + +/// ffxSpdSetup from ffx_spd.h: the thread group count over a rectangle in 64x64 tiles, the offset of +/// the first tile, and how many mips the downsampler is to write. `mips` below zero asks for the +/// count the rectangle's size implies, which is what both inpainting pyramids pass. +void spd_setup(uint32_t width, uint32_t height, uint32_t* groups, uint32_t* offset, uint32_t* mips, + int fixed_mips = -1) { + offset[0] = offset[1] = 0; + groups[0] = (std::max(1u, width) - 1) / 64 + 1; + groups[1] = (std::max(1u, height) - 1) / 64 + 1; + if (fixed_mips >= 0) { + *mips = (uint32_t)fixed_mips; + return; + } + const float resolution = (float)std::max(std::max(1u, width), std::max(1u, height)); + *mips = (uint32_t)std::min(std::floor(std::log2(resolution)), 12.0f); +} + +/// Every image this backend owns, in one list, so the one-time layout transition, the reset clears +/// and a failed make all walk the same set and none of them can forget one. +std::vector all_images() { + std::vector all{&g.of_luma[0], + &g.of_luma[1], + &g.of_vector, + &g.of_confidence, + &g.of_scd_histogram, + &g.of_scd_previous_histogram, + &g.of_scd_temp, + &g.of_scd_output, + &g.fi_dilated_depth, + &g.fi_dilated_motion_vectors, + &g.fi_reconstructed_depth_previous, + &g.fi_reconstructed_depth_interpolated, + &g.fi_game_mv_x, + &g.fi_game_mv_y, + &g.fi_of_mv_x, + &g.fi_of_mv_y, + &g.fi_disocclusion_mask, + &g.fi_inpainting_pyramid, + &g.fi_previous_source, + &g.fi_distortion_field}; + for (uint32_t i = 0; i < 2; i++) + for (uint32_t l = 0; l < kOfLevels; l++) all.push_back(&g.of_flow[i][l]); + for (uint32_t i = 0; i < kMaxMade; i++) + if (g.made[i].image) all.push_back(&g.made[i]); + return all; +} + +void clear_images(VkCommandBuffer cmd, std::initializer_list images) { + const VkClearColorValue zero{}; + for (const Image* t : images) + if (t->image) + vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); +} + +} // namespace + +/// What this device can do, which cannot change while it runs: asked once and kept. +bool capable() { + if (!dev.device) return false; // (asked before the device is made, by the menu: not an answer to keep) + static const bool yes = []() { + if (!dev.push_descriptor || !vkCmdPushDescriptorSetKHR) { + logf("vk: fsr3fi: no push descriptors"); + return false; + } + if (!formats_supported() || !features_supported()) return false; + logf("vk: fsr3fi: AMD FSR 3.1 frame interpolation can run on this GPU"); + return true; + }(); + return yes; +} + +uint32_t frames_wanted() { + // (the row first: a device is not asked anything, and nothing is logged, while frame generation is not at 2x) + return asked() && capable() ? 1u : 0u; +} + +bool prepare(uint32_t width, uint32_t height, uint32_t render_width, uint32_t render_height, + VkFormat present_format) { + if (!capable() || g.failed) return false; + if (!width || !height || !render_width || !render_height) return false; + if (present_format == VK_FORMAT_UNDEFINED) return false; + // The frame this backend writes is in the format it is presented in, because it is shown as a + // frame and not read back into the game's target, and the interpolation and inpainting passes + // write it through a storage image. A presented format that cannot be one is the end of it. + { + VkFormatProperties props{}; + vkGetPhysicalDeviceFormatProperties(dev.physical, present_format, &props); + if (!(props.optimalTilingFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) || + !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { + logf("vk: fsr3fi: the presented format %d cannot be a storage and sampled image here", + (int)present_format); + g.failed = true; + return false; + } + } + if (!g.tried) { + g.tried = true; + // (TRANSFER_DST: the counters are zeroed with vkCmdFillBuffer before the first frame) + g.ok = make_sampler() && make_uniforms() && + create_buffer(kCountersBytes, + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, + false, g.counters, g.counters_memory, nullptr); + for (size_t i = 0; i < P_COUNT && g.ok; i++) g.ok = make_pipeline(g.passes[i], PASSES[i]); + if (g.ok) logf("vk: fsr3fi: %d pass pipelines ready", (int)P_COUNT); + } + if (!g.ok) return false; + const uint32_t n = kMaxMade; + if (g.ready == n && g.width == width && g.height == height && + g.render_width == render_width && g.render_height == render_height && + g.present_format == present_format) + return true; + + const uint32_t rw = render_width, rh = render_height, uw = width, uh = height; + // The flow pyramid's levels are halved rounding up, which is not what a mip chain does: the SDK + // allocates a texture a level for exactly this reason, and so does this. The luma pyramid's + // levels are halved rounding down, which is a mip chain, so that one is a single mipped image. + g.flow_width[0] = (uw + kOfBlockSize - 1) / kOfBlockSize; + g.flow_height[0] = (uh + kOfBlockSize - 1) / kOfBlockSize; + for (uint32_t l = 1; l < kOfLevels; l++) { + g.flow_width[l] = (g.flow_width[l - 1] + 1) / 2; + g.flow_height[l] = (g.flow_height[l - 1] + 1) / 2; + } + const uint32_t pyramid_w = std::max(1u, uw / 2), pyramid_h = std::max(1u, uh / 2); + const uint32_t pyramid_levels = std::min( + kPyramidMips, + (uint32_t)std::floor(std::log2((float)std::max(pyramid_w, pyramid_h))) + 1u); + + // Seven luma levels is what the flow asks for, but a window smaller than 64 pixels has fewer + // mips than that; `level()` clamps the index, so a short chain costs accuracy at the coarsest + // levels rather than an invalid image. + const uint32_t luma_levels = std::min( + kOfLevels, (uint32_t)std::floor(std::log2((float)std::max(uw, uh))) + 1u); + + bool made = true; + for (uint32_t i = 0; i < 2 && made; i++) { + made = made && make_image(g.of_luma[i], VK_FORMAT_R8_UINT, uw, uh, luma_levels); + for (uint32_t l = 0; l < kOfLevels && made; l++) + made = made && make_image(g.of_flow[i][l], VK_FORMAT_R16G16_SINT, g.flow_width[l], + g.flow_height[l]); + } + made = made && make_image(g.of_vector, VK_FORMAT_R16G16_SINT, g.flow_width[0], g.flow_height[0]); + // The flow this backend records carries no per-block confidence, and neither does the SDK's: its + // own dispatch leaves the binding null and the pass reads zero through it. A cleared image of the + // flow's own size is the same answer with every fetch in bounds. + made = made && make_image(g.of_confidence, VK_FORMAT_R32_UINT, g.flow_width[0], g.flow_height[0]); + made = made && make_image(g.of_scd_histogram, VK_FORMAT_R32_UINT, kScdHistogramWidth, 1); + made = made && make_image(g.of_scd_previous_histogram, VK_FORMAT_R32_SFLOAT, kScdHistogramWidth, 1); + made = made && make_image(g.of_scd_temp, VK_FORMAT_R32_UINT, 3, 1); + made = made && make_image(g.of_scd_output, VK_FORMAT_R32_UINT, 3, 1); + + made = made && make_image(g.fi_dilated_depth, VK_FORMAT_R32_SFLOAT, rw, rh); + made = made && make_image(g.fi_dilated_motion_vectors, VK_FORMAT_R16G16_SFLOAT, rw, rh); + made = made && make_image(g.fi_reconstructed_depth_previous, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_reconstructed_depth_interpolated, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_game_mv_x, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_game_mv_y, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_of_mv_x, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_of_mv_y, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_disocclusion_mask, VK_FORMAT_R8G8_UNORM, rw, rh); + made = made && make_image(g.fi_inpainting_pyramid, VK_FORMAT_R16G16B16A16_SFLOAT, pyramid_w, + pyramid_h, pyramid_levels); + made = made && make_image(g.fi_previous_source, present_format, uw, uh); + made = made && make_image(g.fi_distortion_field, VK_FORMAT_R8G8_UNORM, 1, 1); + for (uint32_t i = 0; i < n && made; i++) + made = made && make_image(g.made[i], present_format, uw, uh); + for (uint32_t i = n; i < kMaxMade; i++) drop_image(g.made[i]); + if (!made) { + g.failed = true; + for (Image* t : all_images()) drop_image(*t); + for (Image& t : g.made) drop_image(t); + g.ready = 0; + g.width = g.height = g.render_width = g.render_height = 0; + return false; + } + g.width = uw, g.height = uh, g.render_width = rw, g.render_height = rh; + g.present_format = present_format; + g.ready = n; + g.in_general = false; + g.first_frame = true; + g.parity = 0; + g.of_frame_index = 0; + logf("vk: fsr3fi: %ux%u from %ux%u inputs, flow %ux%u, pyramid %ux%u with %u levels, %u made " + "frame(s) (format %d)", + uw, uh, rw, rh, g.flow_width[0], g.flow_height[0], pyramid_w, pyramid_h, pyramid_levels, n, + (int)present_format); + return true; +} + +bool generate(VkCommandBuffer cmd, const Inputs& in) { + free_dead(); + if (!frames_wanted()) return false; + if (!in.color || !in.color_image || !in.depth || !in.motion) return false; + if (in.color_format == VK_FORMAT_UNDEFINED) return false; + if (!in.width || !in.height || !in.render_width || !in.render_height) return false; + if (!(in.camera.device_to_view_depth[1] > 0.0f)) return false; // (no camera: vk_fsr3_inputs.cpp) + if (!prepare(in.width, in.height, in.render_width, in.render_height, in.color_format)) + return false; + + Image& out = g.made[0]; + if (!out.image) return false; + + // Everything this backend owns starts UNDEFINED and lives in GENERAL from here on, as the rest + // of this renderer's compute resources do. + if (!g.in_general) { + g.in_general = true; + std::vector to_general; + const std::vector all = all_images(); + to_general.reserve(all.size()); + for (const Image* t : all) { + if (!t->image) continue; + VkImageMemoryBarrier2 b{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}; + b.srcStageMask = VK_PIPELINE_STAGE_2_NONE; + b.dstStageMask = VK_PIPELINE_STAGE_2_TRANSFER_BIT; + b.dstAccessMask = VK_ACCESS_2_TRANSFER_WRITE_BIT; + b.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; + b.newLayout = VK_IMAGE_LAYOUT_GENERAL; + b.srcQueueFamilyIndex = b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.image = t->image; + b.subresourceRange = ALL_LEVELS; + to_general.push_back(b); + } + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.imageMemoryBarrierCount = (uint32_t)to_general.size(); + di.pImageMemoryBarriers = to_general.data(); + vkCmdPipelineBarrier2(cmd, &di); + const VkClearColorValue zero{}; + for (const Image* t : all) + if (t->image) + vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + vkCmdFillBuffer(cmd, g.counters, 0, kCountersBytes, 0); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + } + + const bool reset = in.reset || g.first_frame || in.sequence != g.sequence + 1; + g.first_frame = false; + g.sequence = in.sequence; // (this frame becomes the next one's previous source below, whatever else happens) + const int32_t rw = (int32_t)g.render_width, rh = (int32_t)g.render_height; + const int32_t uw = (int32_t)g.width, uh = (int32_t)g.height; + + // ---- the constant blocks ---- + + Constants k{}; + k.render_size[0] = rw, k.render_size[1] = rh; + k.display_size[0] = uw, k.display_size[1] = uh; + k.display_size_rcp[0] = 1.0f / (float)uw, k.display_size_rcp[1] = 1.0f / (float)uh; + k.camera_near = in.camera.near_plane; // (not read by the passes: set as the SDK sets them) + k.camera_far = in.camera.far_plane; + k.upscaler_target_size[0] = uw, k.upscaler_target_size[1] = uh; + k.mode = 0; + k.reset = reset ? 1 : 0; + memcpy(k.device_to_view_depth, in.camera.device_to_view_depth, sizeof k.device_to_view_depth); + k.delta_time = in.frame_time_ms; + k.hudless_attached_factor = 0; // (one colour, with whatever the game drew on it) + k.distortion_field_size[0] = 1, k.distortion_field_size[1] = 1; + // GetOpticalFlowSize() in the GLSL reads this back as (1 / scale) / block size, so the scale is + // the reciprocal of the display size and nothing else; it is also what turns a flow vector in + // luma pixels into the UV motion the vector field packs. + k.optical_flow_scale[0] = 1.0f / (float)uw, k.optical_flow_scale[1] = 1.0f / (float)uh; + k.optical_flow_block_size = (int32_t)kOfBlockSize; + k.dispatch_flags = 0; // (no debug view, no debug bar) + k.max_render_size[0] = rw, k.max_render_size[1] = rh; + k.optical_flow_half_res_mode = 0; + k.num_instances = 1; + k.interpolation_rect_base[0] = 0, k.interpolation_rect_base[1] = 0; + k.interpolation_rect_size[0] = uw, k.interpolation_rect_size[1] = uh; + // The colour this backend is handed is the window's, which this renderer presents as UNORM with + // the game's own encoding on it, so the SDK's sRGB transfer function is the right one and the + // luminance pair the other two functions would need is left at the SDR range. + k.back_buffer_transfer_function = 0; + k.min_max_luminance[0] = 0.0f, k.min_max_luminance[1] = 1.0f; + // fTanHalfFOV is the *horizontal* half angle's tangent, as ffxFrameInterpolationDispatch builds it from the vertical + // field of view and the render aspect: 1 / p[0][0] of the scene's projection (fsr3_math.h) + k.tan_half_fov = in.camera.tan_half_fov_x; + k.jitter[0] = in.jitter[0], k.jitter[1] = in.jitter[1]; + k.motion_vector_scale[0] = in.motion_scale[0] / (float)rw; + k.motion_vector_scale[1] = in.motion_scale[1] / (float)rh; + + // The two inpainting pyramids downsample different rectangles -- the game vector field's is at + // the render size and the frame's is at the display size -- so each gets its own block. + uint32_t game_groups[2], game_offset[2], game_mips = 0; + spd_setup((uint32_t)rw, (uint32_t)rh, game_groups, game_offset, &game_mips); + PyramidConstants game_pyramid{}; + game_pyramid.mips = game_mips; + game_pyramid.num_work_groups = game_groups[0] * game_groups[1]; + game_pyramid.work_group_offset[0] = game_offset[0]; + game_pyramid.work_group_offset[1] = game_offset[1]; + + uint32_t frame_groups[2], frame_offset[2], frame_mips = 0; + spd_setup((uint32_t)uw, (uint32_t)uh, frame_groups, frame_offset, &frame_mips); + PyramidConstants frame_pyramid{}; + frame_pyramid.mips = frame_mips; + frame_pyramid.num_work_groups = frame_groups[0] * frame_groups[1]; + frame_pyramid.work_group_offset[0] = frame_offset[0]; + frame_pyramid.work_group_offset[1] = frame_offset[1]; + + g.of_frame_index = reset ? 0 : g.of_frame_index + 1; + OfConstants of{}; + of.input_luma_resolution[0] = uw, of.input_luma_resolution[1] = uh; + of.pyramid_level = 0; + of.pyramid_level_count = kOfLevels; + of.frame_index = g.of_frame_index; + of.back_buffer_transfer_function = 0; + of.min_max_luminance[0] = 0.0f, of.min_max_luminance[1] = 1.0f; + + uint32_t luma_groups[2], luma_offset[2], luma_mips = 0; + // The luma pyramid's own shader hard-codes six mips, so the four the SDK asks ffxSpdSetup for + // here are never read; the work group count is, and this is where it comes from. + spd_setup((uint32_t)uw, (uint32_t)uh, luma_groups, luma_offset, &luma_mips, 4); + OfSpdConstants of_spd{}; + of_spd.mips = luma_mips; + of_spd.num_work_groups = luma_groups[0] * luma_groups[1]; + of_spd.work_group_offset[0] = luma_offset[0]; + of_spd.work_group_offset[1] = luma_offset[1]; + of_spd.num_work_groups_pyramid = of_spd.num_work_groups; + + // This frame's slots, written through the mapped buffer. + const VkDeviceSize base = (VkDeviceSize)(g.uniform_frame % kUniformFrames) * g.frame_stride; + g.uniform_frame++; + uint8_t* const mapped = (uint8_t*)g.uniforms_mapped + base; + const VkDeviceSize at_fi = 0; + const VkDeviceSize at_game_pyramid = at_fi + g.slot_fi; + const VkDeviceSize at_frame_pyramid = at_game_pyramid + g.slot_pyramid; + const VkDeviceSize at_of = at_frame_pyramid + g.slot_pyramid; + const VkDeviceSize at_of_spd = at_of + (kOfLevels + 1) * g.slot_of; + memcpy(mapped + at_fi, &k, sizeof k); + memcpy(mapped + at_game_pyramid, &game_pyramid, sizeof game_pyramid); + memcpy(mapped + at_frame_pyramid, &frame_pyramid, sizeof frame_pyramid); + memcpy(mapped + at_of, &of, sizeof of); // (slot 0: the passes before the flow's own pyramid) + for (uint32_t l = 0; l < kOfLevels; l++) { + OfConstants level = of; + level.pyramid_level = l; + memcpy(mapped + at_of + (VkDeviceSize)(l + 1) * g.slot_of, &level, sizeof level); + } + memcpy(mapped + at_of_spd, &of_spd, sizeof of_spd); + flush_mapped(g.uniforms_memory, g.frame_stride * kUniformFrames); + + const Resource cb_fi{VK_NULL_HANDLE, g.uniforms, base + at_fi, g.slot_fi}; + const Resource cb_game_pyramid{VK_NULL_HANDLE, g.uniforms, base + at_game_pyramid, + g.slot_pyramid}; + const Resource cb_frame_pyramid{VK_NULL_HANDLE, g.uniforms, base + at_frame_pyramid, + g.slot_pyramid}; + const Resource cb_of_spd{VK_NULL_HANDLE, g.uniforms, base + at_of_spd, g.slot_of_spd}; + const auto cb_of = [&](uint32_t slot) { + return Resource{VK_NULL_HANDLE, g.uniforms, base + at_of + (VkDeviceSize)slot * g.slot_of, + g.slot_of}; + }; + const Resource counters{VK_NULL_HANDLE, g.counters, 0, kCountersBytes}; + + // ---- the clears the SDK's dispatch records ---- + + { // (what the game's draws and the present path wrote has to be visible to the first pass) + memory_barrier(cmd, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT | + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | + VK_ACCESS_2_SHADER_WRITE_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_TRANSFER_BIT | VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT | + VK_ACCESS_2_TRANSFER_WRITE_BIT); + } + // The nearest-depth scratch is cleared every frame, to zero because the depth is reversed and + // the SDK clears it to the far value, which under a reversed depth is zero. + clear_images(cmd, {&g.fi_reconstructed_depth_previous}); + if (!reset) clear_images(cmd, {&g.fi_reconstructed_depth_interpolated}); + if (reset) { + // A cut, a load or a resize: every history the flow and the scene-change detector carry + // belongs to a scene that is gone, and the SDK clears exactly this set. + clear_images(cmd, {&g.of_scd_temp, &g.of_scd_output, &g.of_scd_histogram, + &g.of_scd_previous_histogram, &g.of_luma[0], &g.of_luma[1]}); + } + { + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + } + + // ---- the optical flow, over this frame's luma and the frame before it ---- + + const auto tex = [](const Image& t) { return Resource{t.view}; }; + const auto level = [](const Image& t, uint32_t l) { + const size_t n = t.levels.size(); + return Resource{n ? t.levels[std::min(l, n - 1)] : t.view}; + }; + const auto groups = [](uint32_t size, uint32_t tile) { return (std::max(1u, size) + tile - 1) / tile; }; + const uint32_t p = g.parity, q = p ^ 1u; + const Resource color{in.color}; + + { // Two pixels across and two down a thread, which is where the double rounding comes from. + const Resource res[]{color, level(g.of_luma[p], 0), cb_of(0)}; + record_pass(cmd, P_OF_PREPARE_LUMA, res, 3, groups(groups((uint32_t)uw, 2), 16), + groups(groups((uint32_t)uh, 2), 16)); + } + { + const Resource res[]{level(g.of_luma[p], 0), level(g.of_luma[p], 1), + level(g.of_luma[p], 2), level(g.of_luma[p], 3), + level(g.of_luma[p], 4), level(g.of_luma[p], 5), + level(g.of_luma[p], 6), cb_of(0), cb_of_spd}; + record_pass(cmd, P_OF_LUMINANCE_PYRAMID, res, 9, luma_groups[0], luma_groups[1]); + } + { // Scene change detection: a 3x3 grid of strata, each with its own 256-bin histogram, then + // one dispatch that compares this frame's histograms with the last frame's. + const uint32_t strata_width = (uint32_t)uw / 4 / 3; + const Resource res[]{tex(g.of_luma[p]), tex(g.of_scd_histogram), cb_of(0)}; + record_pass(cmd, P_OF_SCD_HISTOGRAM, res, 3, groups(strata_width, 32), 16, 3 * 3); + } + { + const Resource res[]{tex(g.of_scd_histogram), tex(g.of_scd_previous_histogram), + tex(g.of_scd_temp), tex(g.of_scd_output), cb_of(0)}; + record_pass(cmd, P_OF_SCD_DIVERGENCE, res, 5, 3 * 3, 3); + } + // The search walks the pyramid from the coarsest level down, and the two flow images swap roles + // at every level as well as at every frame: the search writes A, the filter reads A and writes B, + // and the scale reads B and seeds the next level down. The index arithmetic is the SDK's + // (isOddFrame != isOddLevel), written as one exclusive or. + for (int32_t l = (int32_t)kOfLevels - 1; l >= 0; l--) { + const uint32_t a = ((p ^ (uint32_t)l) & 1u), b = a ^ 1u; + const uint32_t luma_w = std::max(1u, (uint32_t)uw >> l), luma_h = std::max(1u, (uint32_t)uh >> l); + { + const Resource res[]{level(g.of_luma[p], (uint32_t)l), level(g.of_luma[q], (uint32_t)l), + tex(g.of_flow[a][l]), tex(g.of_scd_output), + cb_of((uint32_t)l + 1)}; + // 64 threads a group, each covering four luma pixels across and sixteen rows down. + record_pass(cmd, P_OF_SEARCH, res, 5, (groups(luma_w, 4) * 16 + 63) / 64, + groups(luma_h, 16)); + } + { + // At the bottom the filter writes the flow the interpolation reads, which is the one + // resource the two halves of this backend share. + const Resource out_flow = l == 0 ? tex(g.of_vector) : tex(g.of_flow[b][l]); + const Resource res[]{tex(g.of_flow[a][l]), out_flow, cb_of((uint32_t)l + 1)}; + record_pass(cmd, P_OF_FILTER, res, 3, groups(g.flow_width[l], 16), + groups(g.flow_height[l], 4)); + } + if (l > 0) { + const Resource res[]{level(g.of_luma[p], (uint32_t)l), level(g.of_luma[q], (uint32_t)l), + tex(g.of_flow[b][l]), tex(g.of_flow[b][l - 1]), + tex(g.of_scd_output), cb_of((uint32_t)l + 1)}; + record_pass(cmd, P_OF_SCALE, res, 6, groups(g.flow_width[l - 1], 4), + groups(g.flow_height[l - 1], 4)); + } + } + + // ---- frame interpolation ---- + + const uint32_t render_x = groups((uint32_t)rw, 8), render_y = groups((uint32_t)rh, 8); + const uint32_t display_x = groups((uint32_t)uw, 8), display_y = groups((uint32_t)uh, 8); + // The flow's own grid, eight blocks a group. The SDK divides the display size by the block size + // in floating point and truncates, which loses the last partial block when the display size is + // not a multiple of eight; this rounds that block up instead, so the vector field is written + // over the whole flow image. + const uint32_t flow_x = groups(g.flow_width[0], 8), flow_y = groups(g.flow_height[0], 8); + const auto pyramid = [](uint32_t l) { + const size_t n = g.fi_inpainting_pyramid.levels.size(); + return Resource{n ? g.fi_inpainting_pyramid.levels[std::min(l, n - 1)] + : g.fi_inpainting_pyramid.view}; + }; + + { // The SDK records this one from its own prepare entry point, alongside the upscaler; here + // there is no upscaler to ride along with, so it opens the interpolation instead. It is what + // fills the three resources the SDK calls shared. + const Resource res[]{Resource{in.motion}, Resource{in.depth}, + tex(g.fi_reconstructed_depth_previous), + tex(g.fi_dilated_motion_vectors), tex(g.fi_dilated_depth), cb_fi}; + record_pass(cmd, P_FI_RECONSTRUCT_AND_DILATE, res, 6, render_x, render_y); + } + { // Zeroes both vector fields and the disocclusion mask, and moves the frame counter the + // interpolation reads along -- which is why it runs even on a reset. + const Resource res[]{tex(g.of_scd_output), tex(g.fi_game_mv_x), tex(g.fi_game_mv_y), + tex(g.fi_of_mv_x), tex(g.fi_of_mv_y), tex(g.fi_disocclusion_mask), + counters, cb_fi}; + record_pass(cmd, P_FI_SETUP, res, 8, render_x, render_y); + } + if (!reset) { + { + const Resource res[]{tex(g.fi_dilated_motion_vectors), tex(g.fi_dilated_depth), color, + tex(g.fi_distortion_field), + tex(g.fi_reconstructed_depth_interpolated), cb_fi}; + record_pass(cmd, P_FI_RECONSTRUCT_PREVIOUS_DEPTH, res, 6, render_x, render_y); + } + { + const Resource res[]{tex(g.fi_dilated_motion_vectors), tex(g.fi_dilated_depth), + tex(g.fi_previous_source), color, + tex(g.fi_distortion_field), tex(g.fi_game_mv_x), + tex(g.fi_game_mv_y), cb_fi}; + record_pass(cmd, P_FI_GAME_MOTION_VECTOR_FIELD, res, 8, render_x, render_y); + } + { + const Resource res[]{tex(g.fi_game_mv_x), tex(g.fi_game_mv_y), counters, + pyramid(0), pyramid(1), pyramid(2), pyramid(3), pyramid(4), + pyramid(5), pyramid(6), pyramid(7), pyramid(8), pyramid(9), + pyramid(10), pyramid(11), pyramid(12), cb_fi, cb_game_pyramid}; + record_pass(cmd, P_FI_GAME_VECTOR_FIELD_PYRAMID, res, 18, game_groups[0], + game_groups[1]); + } + { + const Resource res[]{tex(g.of_vector), tex(g.of_confidence), + tex(g.fi_dilated_depth), tex(g.fi_previous_source), + color, tex(g.fi_of_mv_x), + tex(g.fi_of_mv_y), cb_fi}; + record_pass(cmd, P_FI_OPTICAL_FLOW_VECTOR_FIELD, res, 8, flow_x, flow_y); + } + { + const Resource res[]{tex(g.fi_game_mv_x), + tex(g.fi_game_mv_y), + tex(g.fi_reconstructed_depth_previous), + tex(g.fi_dilated_depth), + tex(g.fi_reconstructed_depth_interpolated), + tex(g.fi_inpainting_pyramid), + tex(g.fi_distortion_field), + tex(g.fi_disocclusion_mask), + cb_fi}; + record_pass(cmd, P_FI_DISOCCLUSION_MASK, res, 9, render_x, render_y); + } + } + { // The frame itself. Where it could not decide a colour it leaves the alpha low, and the two + // passes after it fill those pixels in from the pyramid they build over this very output. + const Resource res[]{tex(g.fi_game_mv_x), tex(g.fi_game_mv_y), + tex(g.fi_of_mv_x), tex(g.fi_of_mv_y), + tex(g.fi_previous_source), color, + tex(g.fi_disocclusion_mask), tex(g.fi_inpainting_pyramid), + counters, tex(out), + cb_fi}; + record_pass(cmd, P_FI_INTERPOLATE, res, 11, display_x, display_y); + } + { + const Resource res[]{tex(out), counters, + pyramid(0), pyramid(1), pyramid(2), pyramid(3), pyramid(4), + pyramid(5), pyramid(6), pyramid(7), pyramid(8), pyramid(9), + pyramid(10), pyramid(11), pyramid(12), cb_fi, cb_frame_pyramid}; + record_pass(cmd, P_FI_INPAINTING_PYRAMID, res, 17, frame_groups[0], frame_groups[1]); + } + { // The present backbuffer and the interpolation source are the same image here: this game has + // no separate HUD-less colour, so there is nothing to take the HUD from. + const Resource res[]{tex(g.of_scd_output), tex(g.fi_inpainting_pyramid), color, color, + tex(out), cb_fi}; + record_pass(cmd, P_FI_INPAINTING, res, 6, display_x, display_y); + } + + // This frame becomes the next one's "previous", and the luma pyramids swap, so the next flow + // search has the pair it needs. Both happen once a present, not once a made frame. + { + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_TRANSFER_BIT, + VK_ACCESS_2_TRANSFER_READ_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT); + const VkImageCopy copy{{VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, + {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, + {g.width, g.height, 1}}; + vkCmdCopyImage(cmd, in.color_image, VK_IMAGE_LAYOUT_GENERAL, g.fi_previous_source.image, + VK_IMAGE_LAYOUT_GENERAL, 1, ©); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_TRANSFER_READ_BIT); + } + g.parity = q; + // A reset frame has no history to interpolate from: the preparation passes were skipped, so what + // the interpolation wrote is the current frame over a previous frame that is not there yet. + // Everything above still ran, which is what gives the next frame its luma pair and its previous + // source; this one is refused, and the caller's own colour interpolation takes it. + return !reset; +} + +VkImage made_image() { return g.ready ? g.made[0].image : VK_NULL_HANDLE; } + +void reset() { g.first_frame = true; } + +} // namespace mkwvk::fsr3fi diff --git a/gpu/vk/vk_fsr3fi.h b/gpu/vk/vk_fsr3fi.h new file mode 100644 index 000000000..cbc8c74c7 --- /dev/null +++ b/gpu/vk/vk_fsr3fi.h @@ -0,0 +1,82 @@ +// (hookshot) AMD FSR 3.1 frame interpolation, and the optical flow it runs on, recorded as our own Vulkan compute passes: +// the made frame between two of the game's when the Frame generation row is 2x. +// +// The renderer already makes frames: vk_framegen.cpp interpolates between the last two presented frames from colour alone. +// This answers the same question with AMD's passes, which use the scene's depth and motion as well (vk_fsr3_inputs.h): +// seventeen compute passes -- seven of optical flow over two frames' luma, ten of interpolation over the game's motion and +// depth -- all of them our own dispatches over AMD's vendored GLSL, with no FidelityFX host library linked and nothing of +// AMD's loaded at run time. +// +// Where it cannot run -- not asked for, a device without the storage formats, image features or subgroup operations the +// passes need, a frame without its inputs, a reset -- the renderer's own interpolation runs exactly as before. Nothing here +// changes what the game submits. +// +// FSR 3.1's interpolation has no phase input (ffx_frameinterpolation.h fixes t at 0.5): it makes the midpoint and only the +// midpoint, so it is used for one made frame a frame (2x). At 3x and above the renderer's own makes the frames, as more +// copies of one midpoint would show the same picture twice and judder. +#pragma once + +#include + +#include "fsr3_math.h" +#include "vk_internal.h" + +namespace mkwvk::fsr3fi { + +/// One made frame's inputs. +/// +/// The colour is the frame the game has just finished, at the size it is presented, and it is the only colour this backend +/// is given: the frame before it is kept here, because the interpolation needs both ends of the interval and the present +/// path only ever hands over the newest one. The depth (reversed) and the motion are the scene's at the render size +/// (vk_fsr3_inputs.h), with `motion_scale` taking a vector to render pixels, as the SDK's +/// FFX_FRAMEINTERPOLATION_OPTION_LOW_RESOLUTION_MOTION_VECTORS permutation the vendored GLSL was compiled under expects. +struct Inputs { + VkImageView color = VK_NULL_HANDLE; + VkImage color_image = VK_NULL_HANDLE; + VkFormat color_format = VK_FORMAT_UNDEFINED; + uint32_t width = 0, height = 0; + + VkImageView depth = VK_NULL_HANDLE; + VkImageView motion = VK_NULL_HANDLE; + uint32_t render_width = 0, render_height = 0; + + /// Turns a motion vector into render pixels (1 for vectors already in them). + float motion_scale[2]{1.0f, 1.0f}; + float jitter[2]{}; + + /// The scene's camera: the device-to-view-depth factors the disocclusion passes compare depths with, and the tangent + /// of half the field of view (fsr3_math.h, from the scene's projection). + fsr3_math::Camera camera; + float frame_time_ms = 16.667f; + + /// A cut, a load or a resize: the preparation passes are skipped for this frame, as the SDK's own dispatch skips them, + /// because every history they read belongs to a scene that is gone. + bool reset = false; + + /// The caller's count of its frames (vk_framegen.cpp: one a present). The frame before this one is kept here as the + /// interval's start; when the last frame given was not the one before this (a present this backend did not see), that + /// start is not this frame's predecessor and the call is a reset. + uint64_t sequence = 0; +}; + +/// Whether this device can run the passes: push descriptors, every storage format the SDK's internal images need, and the +/// image features and subgroup operations the vendored passes compiled down to. Asked once; the one line saying why it +/// cannot is logged once. +[[nodiscard]] bool capable(); + +/// Whether a made frame is asked for: the Frame generation row at 2x (RX_VK_FSR_FG=0 never, =1 over the row), on a device +/// that is capable(). Read every frame: the row changes while the game runs. +[[nodiscard]] uint32_t frames_wanted(); + +/// Records the made frame between the frame before and this one into made_image(), making the pipelines and the images for +/// these sizes first (again when the sizes or the presented format change). False when it cannot (the inputs not usable, a +/// reset frame, anything not made), which leaves the caller to show whatever it would otherwise have shown. +[[nodiscard]] bool generate(VkCommandBuffer cmd, const Inputs& in); + +/// The made frame of the last `generate`, or null. +[[nodiscard]] VkImage made_image(); + +/// Forgets the sequence, so the next frame is made with the reset flag set: a cut, a load, a resize. +void reset(); + +} // namespace mkwvk::fsr3fi From 707a3d3e90d233fc92f8c48b6775c23f3f813044 Mon Sep 17 00:00:00 2001 From: notquiteog <104785131+notquiteog@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:08:22 -0600 Subject: [PATCH 4/4] feat(menu): AMD FSR 3.1 on the Upscaler row, after DLAA The Upscaler row's fourth value (dlss=3 in hookshot_options.ini, saved values keep their meaning): offered where vk_fsr3.cpp says FSR 3.1 runs, and the row is shown on such a GPU even in a build without NVIDIA's SDK. The row steps over what does not run here (upscaler_rows.h: a mask of the upscalers that run, step_upscaler and upscaler_fixed over it). FSR 3.1's Render resolution steps are DLSS's shares, AMD's ratios too (Quality 1.5x, Balanced 1.7x, Performance 2x, Ultra Performance 3x). The DLSS model row waits while FSR 3.1 draws; the Sharpness hint for DLSS is DLSS's only. Frame generation's 2x hint says when FSR 3.1 makes the frame. readme.md: the rows, and what FSR 3.1 needs. Co-Authored-By: Claude Opus 5.5 --- gpu/vk/upscaler_rows.h | 37 +++++++++++++++++------- gpu/vk/vk_menu.cpp | 56 +++++++++++++++++++++++++----------- readme.md | 26 +++++++++++++---- tests/test_rumble_menu.py | 2 ++ tests/test_upscaler_rows.cpp | 27 +++++++++++++++++ tests/test_upscaler_rows.py | 15 +++++++--- 6 files changed, 127 insertions(+), 36 deletions(-) diff --git a/gpu/vk/upscaler_rows.h b/gpu/vk/upscaler_rows.h index 3d46ba670..c7220dac0 100644 --- a/gpu/vk/upscaler_rows.h +++ b/gpu/vk/upscaler_rows.h @@ -1,5 +1,5 @@ /* The Insert menu's scaling rows (vk_menu.cpp), as plain functions: what the Render resolution row steps through for each - Upscaler, and the names it shows for DLSS's modes. No Vulkan, no menu: tests/test_upscaler_rows.cpp checks them. */ + Upscaler, and the names it shows for DLSS's (and FSR 3.1's) modes. No Vulkan, no menu: tests/test_upscaler_rows.cpp checks them. */ #pragma once namespace mkwvk::upscaler_rows { @@ -7,7 +7,14 @@ namespace mkwvk::upscaler_rows { /// The Upscaler row (opts.dlss, RX_VK_DLSS): the game's own network, NVIDIA DLSS, NVIDIA DLAA, AMD FSR 3.1 (built from AMD's /// shader sources: gpu/vk/vk_fsr3.cpp). The saved values keep their meaning: FSR 3.1 came after DLAA, so a saved 1 or 2 is /// still DLSS or DLAA -enum { GAME = 0, DLSS = 1, DLAA = 2, FSR3 = 3 }; +enum { GAME = 0, DLSS = 1, DLAA = 2, FSR3 = 3, kUpscalers = 4 }; +/// One bit per upscaler that can run here (1 << GAME always): what the row steps through +inline unsigned bit(int upscaler) { return 1u << upscaler; } +/// The DLSS and DLAA bits, for a caller that knows only whether DLSS runs +inline unsigned dlss_bits(bool dlss_ok) { return dlss_ok ? bit(DLSS) | bit(DLAA) : 0u; } +/// FSR 3.1 scales from a smaller 3D at the shares DLSS's modes use: Quality 1.5x (67%), Balanced 1.7x (58%), Performance 2x +/// (50%) and Ultra Performance 3x (33%) per axis, AMD's own ratios too +inline bool scales_by_mode(int upscaler) { return upscaler == DLSS || upscaler == FSR3; } /// opts.resolution: 0 Auto (the game's dynamic resolution), else a share of the output in percent. 1 to 4 are the values from /// before (100, 75, 67, 50: saved options keep their meaning); 5 and 6 came with DLSS's Balanced and Ultra Performance. Each @@ -22,7 +29,7 @@ inline int percent(int v) { return v > 0 && v < kValues ? kPercent[v] : 0; } constexpr int kGameSteps[] = {0, 1, 2, 3, 4}; constexpr int kDlssSteps[] = {0, 3, 5, 4, 6}; inline const int* steps(int upscaler, int& n) { - if (upscaler == DLSS) return n = sizeof kDlssSteps / sizeof kDlssSteps[0], kDlssSteps; + if (scales_by_mode(upscaler)) return n = sizeof kDlssSteps / sizeof kDlssSteps[0], kDlssSteps; return n = sizeof kGameSteps / sizeof kGameSteps[0], kGameSteps; } @@ -68,13 +75,19 @@ inline int snap(int upscaler, int v) { return best; } -/// The Upscaler row's next value from v (dir +1 / -1), wrapping over the choices there are: DLSS and DLAA only when -/// dlss_ok (a build with NVIDIA's SDK, on a GPU DLSS runs on). Without them it stays on the game's own -inline int step_upscaler(int v, int dir, bool dlss_ok) { - if (!dlss_ok) return GAME; - const int n = 3; - return ((v < 0 || v >= n ? GAME : v) + (dir > 0 ? 1 : n - 1)) % n; +/// The Upscaler row's next value from v (dir +1 / -1), wrapping over the choices there are (available: bit() of each that +/// runs here). A value that cannot run here steps as the game's own does +inline int step_upscaler(int v, int dir, unsigned available) { + available |= bit(GAME); + int at = v < 0 || v >= kUpscalers || !(available & bit(v)) ? GAME : v; + for (int i = 0; i < kUpscalers; i++) { + at = (at + (dir > 0 ? 1 : kUpscalers - 1)) % kUpscalers; + if (available & bit(at)) return at; + } + return GAME; } +/// The same, where the choices are DLSS and DLAA only when dlss_ok (a build with NVIDIA's SDK, on a GPU DLSS runs on) +inline int step_upscaler(int v, int dir, bool dlss_ok) { return step_upscaler(v, dir, bit(GAME) | dlss_bits(dlss_ok)); } /// The DLSS model row (opts.dlss_model, saved as dlss_model): which of NVIDIA's networks DLSS and DLAA draw with, by its /// preset (NVSDK_NGX_DLSS_Hint_Render_Preset_*). 0 the transformer, preset K (the default here, the one tested); 1 the second @@ -105,15 +118,19 @@ inline char preset_letter(unsigned preset) { return preset ? (char)('A' + preset /// The Upscaler row is there only in a build with DLSS (built: dlss_built()): elsewhere the game's own is all there is, and /// the Render resolution row is the game's own's inline bool upscaler_shown(bool built) { return built; } +/// ...and in any build where FSR 3.1 runs (fsr: vk_fsr3.cpp answered that it runs on this GPU) +inline bool upscaler_shown(bool built, bool fsr) { return built || fsr; } /// Rows with nothing else to choose here (shown without arrows; Left and Right leave the saved value alone): the Upscaler /// where DLSS cannot run (dlss_ok: dlss_why() == DLSS_OK), the Render resolution with DLAA (the 3D at full size), the DLSS /// model while DLSS and DLAA are not drawing inline bool upscaler_fixed(bool dlss_ok) { return !dlss_ok; } +/// The same, from the mask of what can run: fixed when only the game's own can +inline bool upscaler_fixed(unsigned available) { return (available & ~bit(GAME)) == 0; } inline bool resolution_fixed(int upscaler) { return upscaler == DLAA; } /// The DLSS model row: shown where the Upscaler is (a build with DLSS), with nothing to choose while the game's own upscales inline bool model_shown(bool built) { return built; } /// (env_set: RX_VK_DLSS_PRESET names a preset, which wins over the row for this run) -inline bool model_fixed(int upscaler, bool env_set) { return upscaler == GAME || env_set; } +inline bool model_fixed(int upscaler, bool env_set) { return (upscaler != DLSS && upscaler != DLAA) || env_set; } /// The Window scaling filter does something only when the window's size is not the game's picture's (the Output resolution); /// a size not known yet (0) counts as different inline bool filter_needed(unsigned picture_w, unsigned picture_h, unsigned window_w, unsigned window_h) { diff --git a/gpu/vk/vk_menu.cpp b/gpu/vk/vk_menu.cpp index ce18bec6b..30756003f 100644 --- a/gpu/vk/vk_menu.cpp +++ b/gpu/vk/vk_menu.cpp @@ -31,6 +31,8 @@ #include "vk_startup_paint.h" #include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) #include "vk_dlss.h" +#include "vk_fsr3.h" // (the Upscaler row: whether AMD FSR 3.1 runs on this GPU) +#include "vk_fsr3fi.h" // (the Frame generation row: whether FSR 3.1 makes the frame) #include "vk_reflex.h" #include "upscaler_rows.h" #include "menu_restart.h" @@ -121,13 +123,18 @@ const char* hn_reflex(int v, int variant) { if (variant < 0) return reflex_available() ? t[std::clamp(v, 0, 2)] : none; return variant == 0 ? t[std::clamp(v, 0, 2)] : variant == 1 ? none : nullptr; } -// The Upscaler (opts.dlss): what scales the 3D up to the output. DLSS and DLAA only where dlss_why() lets them run; the menu -// shows (and steps from) what runs, dlss_mode(), and keeps the saved choice for a PC where it can +// The Upscaler (opts.dlss): what scales the 3D up to the output. DLSS and DLAA only where dlss_why() lets them run, FSR 3.1 +// only where vk_fsr3.cpp says it does; the menu shows (and steps from) what runs, and keeps the saved choice for a PC where it +// can namespace ur = upscaler_rows; -int upscaler() { return dlss_mode(); } +/// One bit per upscaler that runs here (upscaler_rows.h bit). Each backend caches its own answer, so this costs nothing +unsigned upscalers_available() { + return ur::bit(ur::GAME) | ur::dlss_bits(dlss_why() == DLSS_OK) | (fsr3::supported() ? ur::bit(ur::FSR3) : 0u); +} +int upscaler() { return fsr3_wanted() ? (int)ur::FSR3 : dlss_mode(); } const char* tx_upscaler(int) { - static const char* t[] = {"Game's own", "NVIDIA DLSS", "NVIDIA DLAA"}; - return t[std::clamp(upscaler(), 0, 2)]; + static const char* t[] = {"Game's own", "NVIDIA DLSS", "NVIDIA DLAA", "AMD FSR 3.1"}; + return t[std::clamp(upscaler(), 0, ur::kUpscalers - 1)]; } /// The Upscaler: the one shown (what runs, upscaler()), and with the game's own, why DLSS and DLAA are not offered const char* hn_upscaler(int v, int variant) { @@ -137,6 +144,8 @@ const char* hn_upscaler(int v, int variant) { "themselves can trail for now.", "NVIDIA's, the 3D at full size with its edges smoothed; the slowest. Softer than the game's own: set Sharpness to " "around 80%. Things that move by themselves can trail for now.", + "AMD's, from a smaller 3D, on any GPU: built from AMD's own shaders. Things that move by themselves can trail for " + "now.", }; static const char* const why[DLSS_WHY_COUNT] = { nullptr, @@ -149,10 +158,10 @@ const char* hn_upscaler(int v, int variant) { }; // (now: the value shown and what runs here; every one: each value, and the game's own with each reason) int w = 0; - if (variant < 0) v = std::clamp(upscaler(), 0, 2), w = (int)dlss_why(); + if (variant < 0) v = std::clamp(upscaler(), 0, ur::kUpscalers - 1), w = (int)dlss_why(); else if (v == ur::GAME) w = variant; else if (variant > 0) return nullptr; - v = std::clamp(v, 0, 2); + v = std::clamp(v, 0, ur::kUpscalers - 1); if (w >= DLSS_WHY_COUNT) return nullptr; if (v != ur::GAME || !why[w]) return t[v]; static char b[DLSS_WHY_COUNT][256]; @@ -229,7 +238,7 @@ const char* tx_resolution(int v) { const int up = upscaler(); if (up == ur::DLAA) return "Native (DLAA)"; if (!ur::percent(v)) return "Auto (dynamic)"; - if (const char* mode = up == ur::DLSS ? ur::dlss_mode_name(v) : nullptr) { + if (const char* mode = ur::scales_by_mode(up) ? ur::dlss_mode_name(v) : nullptr) { snprintf(b, sizeof b, "%s (%d%%)", mode, ur::percent(v)); return b; } @@ -240,8 +249,8 @@ const char* tx_resolution(int v) { } /// The Render resolution: the value chosen, for the Upscaler shown (every one: each value with each Upscaler) const char* hn_resolution(int v, int variant) { - const int up = variant < 0 ? std::clamp(upscaler(), 0, 2) : variant; - if (up > 2) return nullptr; + const int up = variant < 0 ? std::clamp(upscaler(), 0, ur::kUpscalers - 1) : variant; + if (up >= ur::kUpscalers) return nullptr; if (up == ur::DLAA) return "DLAA draws the 3D at full size: nothing to set here. Choose DLSS or the game's own upscaler to draw it " "smaller."; @@ -256,13 +265,23 @@ const char* hn_resolution(int v, int variant) { default: return nullptr; // (not one of DLSS's steps: the row moves to one) } } + if (up == ur::FSR3) { + switch (p) { + case 0: return "The game lowers it when the GPU is busy, and FSR follows."; + case 67: return "FSR's Quality mode, 1.5x: its sharpest."; + case 58: return "FSR's Balanced mode, 1.7x."; + case 50: return "FSR's Performance mode, 2x: faster, and softer."; + case 33: return "FSR's Ultra Performance mode, 3x: its fastest, and its softest."; + default: return nullptr; // (not one of FSR's steps: the row moves to one) + } + } if (!p) return "The game lowers it when the GPU is busy."; if (p == 100) return "The 3D at the output's full size: the sharpest, and the slowest."; return "A steady size: lower is faster, and softer."; } /// A row with nothing else to choose here: shown without its arrows, Left and Right leave it (and the saved value) alone bool row_fixed(const int* value) { - return (value == &opts.reflex && !reflex_available()) || (value == &opts.dlss && ur::upscaler_fixed(dlss_why() == DLSS_OK)) || + return (value == &opts.reflex && !reflex_available()) || (value == &opts.dlss && ur::upscaler_fixed(upscalers_available())) || (value == &opts.resolution && ur::resolution_fixed(upscaler())) || (value == &opts.upscale && !filter_needed()) || (value == &opts.dlss_model && ur::model_fixed(upscaler(), dlss_preset_env() != nullptr)); } @@ -402,6 +421,9 @@ MENU_HINTS(hn_preset, 0, "Each row as you set it. Changing most rows yourself co MENU_HINTS(hn_gpu, 0, "The best dedicated GPU.") /// Frame generation: how many frames are made for each of the game's const char* hn_framegen(int v, int variant) { + // (2x: by AMD FSR 3.1 where it runs, from the scene's depth and motion: vk_framegen.cpp. Variant 1 is that text) + if (v == 2 && (variant < 0 ? fsr3fi::frames_wanted() != 0 : variant == 1)) + return "One made frame between each two of the game's, by AMD FSR 3.1 from the scene's depth and motion."; if (variant > 0) return nullptr; if (v <= 0) return "Only the game's own frames: no added delay."; if (v == 1) return "A frame for each of the display's refreshes: none made when the game keeps up. Frame pacing does not apply."; @@ -426,7 +448,7 @@ const char* hn_filter(int v, int variant) { /// Sharpness: with DLSS or DLAA, the amount that suits them const char* hn_sharpness(int v, int variant) { static const char* const dlss = "DLSS and DLAA look softer than the game's own upscaler: around 80% suits them."; - const bool with_dlss = variant < 0 ? upscaler() != ur::GAME : variant == 1; + const bool with_dlss = variant < 0 ? upscaler() == ur::DLSS || upscaler() == ur::DLAA : variant == 1; if (variant > 1) return nullptr; return with_dlss ? dlss : v == 0 ? "Off: the picture as it is." : nullptr; } @@ -454,7 +476,7 @@ MENU_HINTS(hn_pad_layout, 0, "The Switch's order: A on the right, B at the botto "Bindings of your own, from the Controls page.") Row rows[] = { - // Graphics (the Upscaler only in a build with DLSS: row_shown) + // Graphics (the Upscaler only in a build with DLSS, or where AMD FSR 3.1 runs: row_shown) {TAB_GRAPHICS, "Quality preset", &opts.preset, 0, 5, 1, tx_preset, "Sets the scaling rows, frame generation and memory limits for a GPU with that much memory. The Upscaler stays yours.", hn_preset}, @@ -472,7 +494,7 @@ Row rows[] = { {TAB_GRAPHICS, "Output resolution", &opts.output_res, 0, kLastOutput, 1, tx_output_res, "The game's whole frame, HUD included, before it is scaled to the window. Docked only. Applies after a restart.", hn_output_res, true}, - {TAB_GRAPHICS, "Upscaler", &opts.dlss, 0, 2, 1, tx_upscaler, "What scales the 3D up to the Output resolution.", + {TAB_GRAPHICS, "Upscaler", &opts.dlss, 0, ur::kUpscalers - 1, 1, tx_upscaler, "What scales the 3D up to the Output resolution.", hn_upscaler}, {TAB_GRAPHICS, "DLSS model", &opts.dlss_model, 0, ur::kModels - 1, 1, tx_dlss_model, "Which of NVIDIA's DLSS networks draws the picture.", hn_dlss_model, false, true}, @@ -694,9 +716,9 @@ std::string restart_line(HDC dc, int width) { return line; } -/// A row on its tab: the Cheats one only with cheats on, the Upscaler only in a build with DLSS +/// A row on its tab: the Cheats one only with cheats on, the Upscaler only in a build with DLSS or where AMD FSR 3.1 runs bool row_shown(int i) { - return (i != kCheatsRow || cheats_enabled) && (rows[i].value != &opts.dlss || ur::upscaler_shown(dlss_built())) && + return (i != kCheatsRow || cheats_enabled) && (rows[i].value != &opts.dlss || ur::upscaler_shown(dlss_built(), fsr3::supported())) && (rows[i].value != &opts.dlss_model || ur::model_shown(dlss_built())); } int tab_row_count(int t) { @@ -879,7 +901,7 @@ void set_row(Row& r, int v, int dir, bool keep = true) { // (nothing else to choose: no change, no save. A saved choice that cannot run here is kept) if (row_fixed(r.value)) return; // (the scaling rows: only what can run here; the Render resolution row through the Upscaler's own steps) - if (r.value == &opts.dlss) v = ur::step_upscaler(upscaler(), dir, true); + if (r.value == &opts.dlss) v = ur::step_upscaler(upscaler(), dir, upscalers_available()); if (r.value == &opts.resolution) v = ur::step(upscaler(), *r.value, dir); if (r.value == &opts.output_res) { // (smallest to largest: kOutputOrder) v = step_output_choice(*r.value, dir); diff --git a/readme.md b/readme.md index 760c6d9fa..7e9851254 100644 --- a/readme.md +++ b/readme.md @@ -220,9 +220,9 @@ choices and starts the game again, so progress since your last save is lost. | | Frame pacing | Off, On | Off | | | NVIDIA Reflex | Off, On, On + Boost (NVIDIA GPUs with `VK_NV_low_latency2`) | Off | | | Output resolution | 1920x1080, 2048x1152, 2560x1440, 3840x2160 (after a restart) | 2048x1152 | -| | Upscaler | Game's own, NVIDIA DLSS, NVIDIA DLAA (only in builds with NVIDIA's DLSS SDK, below; DLSS and DLAA on RTX GPUs) | Game's own | +| | Upscaler | Game's own, NVIDIA DLSS, NVIDIA DLAA (only in builds with NVIDIA's DLSS SDK, below; DLSS and DLAA on RTX GPUs), AMD FSR 3.1 (every build, on GPUs it runs on, below) | Game's own | | | DLSS model | Transformer (K), Transformer 2 (M), Transformer 2 (L), NVIDIA default (builds with DLSS; used by DLSS and DLAA) | Transformer (K) | -| | Render resolution | Auto (the game's own dynamic resolution), 100%, 75%, 67%, 50% (each with its size). With DLSS: Auto, Quality (67%), Balanced (58%), Performance (50%), Ultra Performance (33%). With DLAA: Native | Auto | +| | Render resolution | Auto (the game's own dynamic resolution), 100%, 75%, 67%, 50% (each with its size). With DLSS or FSR 3.1: Auto, Quality (67%), Balanced (58%), Performance (50%), Ultra Performance (33%). With DLAA: Native | Auto | | | Window scaling filter | Off, Catmull-Rom, Lanczos | Off | | | Sharpness | 0 to 100%, in steps of 10 | 0% | | | Handheld profile | Off, On (after a restart) | Off | @@ -258,10 +258,12 @@ choices and starts the game again, so progress since your last save is lost. `hookshot_log.txt` lists every card as `vk: device `; `RX_VK_DEVICE=` chooses one for a single run and wins over the menu. - **Frame generation** makes extra frames between the game's own. It adds a little input delay, and fast motion can - show artifacts. **Frame pacing** shows frames at an even interval: less stutter, up to one frame of delay. + show artifacts. At 2x, AMD FSR 3.1's frame interpolation makes the frame where it runs (below); at 3x and more, and + where it does not run, the renderer's own does. **Frame pacing** shows frames at an even interval: less stutter, up to one frame of delay. - **The scaling rows**, in the picture's order: **Output resolution** is the size of the game's whole frame, HUD - included. The **Upscaler** fills it from the 3D: the game's own network, or NVIDIA DLSS or DLAA (the 3D at full size, - edges smoothed). Both look softer than the game's own: set **Sharpness** to around 80% with them. **DLSS model** + included. The **Upscaler** fills it from the 3D: the game's own network, NVIDIA DLSS or DLAA (the 3D at full size, + edges smoothed), or AMD FSR 3.1 (below). DLSS and DLAA look softer than the game's own: set **Sharpness** to around + 80% with them. **DLSS model** chooses their network (below). **Render resolution** is the 3D's share of the output. The **Window scaling filter** then scales the frame to your window, and **Sharpness** sharpens it, by the picture's pixels: when the window is much larger than the picture (the Handheld @@ -476,6 +478,20 @@ cd ~/Games/Hookshot `hookshot_env.txt` and the other test switches are documented below. +
+AMD FSR 3.1 (every build) + +**AMD FSR 3.1** in the Graphics tab's **Upscaler** row (`dlss=3` in `hookshot_options.ini`; `RX_VK_FSR=1` for one run, +`RX_VK_FSR=0` never) upscales in place of the game's own network, and with **Frame generation** at 2x its frame +interpolation makes the frame in between (`RX_VK_FSR_FG=0` leaves that to the renderer's own). Both are AMD's FidelityFX +SDK 1.1.4 shaders (`third_party/fidelityfx-sdk`, MIT), compiled into the renderer: no AMD runtime or DLL is needed, and +the row offers FSR 3.1 on any Vulkan 1.3 GPU with push descriptors, extended storage image formats and storage writes +without a format (`vk: fsr3: ... can run on this GPU` in the log). Its inputs are the scene's colour, its depth, motion +from the camera, and the same camera jitter DLSS uses (`RX_VK_FSR_JITTER=0` turns it off); things that move by +themselves can trail for now. + +
+
NVIDIA DLSS (optional, NVIDIA's SDK under NVIDIA's license) diff --git a/tests/test_rumble_menu.py b/tests/test_rumble_menu.py index d8f0670c8..395510407 100644 --- a/tests/test_rumble_menu.py +++ b/tests/test_rumble_menu.py @@ -80,6 +80,8 @@ def one_line(text, head): %(ini_key)s /* (the Microphone row's hook in set_row: no microphones here) */ bool can_mic() { return false; } +/* (the Upscaler row's choices, which set_row steps through: the game's own only, here) */ +unsigned upscalers_available() { return 1; } void mic_chosen() {} // (set_row steps the Output row through vk_menu.cpp's step_output_choice (#1144): not what this checks) int step_output_choice(int id, int dir) { return id + dir; } diff --git a/tests/test_upscaler_rows.cpp b/tests/test_upscaler_rows.cpp index a12a55328..4f5097c15 100644 --- a/tests/test_upscaler_rows.cpp +++ b/tests/test_upscaler_rows.cpp @@ -53,6 +53,33 @@ int main() { // the Upscaler row only in a build with DLSS; the rows with nothing to choose CHECK("upscaler row shown", ur::upscaler_shown(true) && !ur::upscaler_shown(false)); + // AMD FSR 3.1 on the same row, after DLAA: stepping visits only what runs here, and wraps + { + const unsigned all = ur::bit(GAME) | ur::dlss_bits(true) | ur::bit(ur::FSR3); + const unsigned fsr3 = ur::bit(GAME) | ur::bit(ur::FSR3); + CHECK("FSR 3.1 after DLAA", ur::FSR3 == 3 && ur::kUpscalers == 4); + CHECK("upscaler steps through all four", ur::step_upscaler(DLAA, 1, all) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, 1, all) == GAME && + ur::step_upscaler(GAME, -1, all) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, -1, all) == DLAA); + CHECK("upscaler without DLSS skips it", ur::step_upscaler(GAME, 1, fsr3) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, 1, fsr3) == GAME && + ur::step_upscaler(GAME, -1, fsr3) == ur::FSR3); + CHECK("an upscaler that cannot run here steps as the game's own", ur::step_upscaler(DLSS, 1, fsr3) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, 1, ur::bit(GAME)) == GAME); + CHECK("the DLSS-only form is the mask's", ur::step_upscaler(DLAA, 1, true) == GAME && ur::step_upscaler(GAME, -1, true) == DLAA); + CHECK("upscaler fixed only with nothing but the game's own", + ur::upscaler_fixed(ur::bit(GAME)) && !ur::upscaler_fixed(fsr3) && !ur::upscaler_fixed(all)); + CHECK("upscaler row shown with FSR 3.1 alone", ur::upscaler_shown(false, true) && !ur::upscaler_shown(false, false) && + ur::upscaler_shown(true, false)); + CHECK("FSR 3.1's modes are DLSS's shares", ur::scales_by_mode(ur::FSR3) && ur::scales_by_mode(DLSS) && + !ur::scales_by_mode(DLAA) && !ur::scales_by_mode(GAME)); + CHECK("FSR 3.1 steps as DLSS does", ur::step(ur::FSR3, 0, 1) == 3 && ur::step(ur::FSR3, 3, 1) == 5 && + ur::step(ur::FSR3, 6, 1) == 0 && ur::snap(ur::FSR3, 2) == 3); + CHECK("the model row waits with FSR 3.1", ur::model_fixed(ur::FSR3, false) && !ur::model_fixed(DLSS, false) && + !ur::model_fixed(DLAA, false)); + CHECK("FSR 3.1 has a Render resolution", !ur::resolution_fixed(ur::FSR3)); + } CHECK("upscaler fixed where DLSS cannot run", ur::upscaler_fixed(false) && !ur::upscaler_fixed(true)); CHECK("render resolution fixed with DLAA only", ur::resolution_fixed(DLAA) && !ur::resolution_fixed(DLSS) && !ur::resolution_fixed(GAME)); diff --git a/tests/test_upscaler_rows.py b/tests/test_upscaler_rows.py index 78ceff627..28dcf55d5 100644 --- a/tests/test_upscaler_rows.py +++ b/tests/test_upscaler_rows.py @@ -1,6 +1,6 @@ -"""The Insert menu's scaling rows: the Upscaler (opts.dlss) and the Render resolution's steps for it (gpu/vk/upscaler_rows.h), -their order on the Graphics tab, options files from before still loading, and their help (why DLSS is not offered, the -Sharpness DLSS wants). No game or GPU required. +"""The Insert menu's scaling rows: the Upscaler (opts.dlss: the game's own, DLSS, DLAA, AMD FSR 3.1) and the Render resolution's +steps for it (gpu/vk/upscaler_rows.h), their order on the Graphics tab, options files from before still loading, and their +help (why DLSS is not offered, the Sharpness DLSS wants). No game or GPU required. python -I -B tests/test_upscaler_rows.py [--cxx g++] """ @@ -47,7 +47,7 @@ def main(): # the menu's rules are upscaler_rows.h's, checked by behaviour in test_upscaler_rows.cpp: here only that the menu uses them uses = { "row_fixed": ("ur::upscaler_fixed(", "ur::resolution_fixed(", "reflex_available()", "ur::model_fixed("), - "row_shown": ("ur::upscaler_shown(dlss_built())", "ur::model_shown(dlss_built())"), + "row_shown": ("ur::upscaler_shown(dlss_built(), fsr3::supported())", "ur::model_shown(dlss_built())"), "set_row": ("ur::step_upscaler(", "ur::step(", "ur::snap(", "row_fixed("), } for name, calls in uses.items(): @@ -94,6 +94,13 @@ def main(): raise SystemExit("vk_dlss.cpp: the DLSS model row (and RX_VK_DLSS_PRESET over it) is not the preset asked for") if "dlss_why() != DLSS_OK" not in function(dlss, "int dlss_mode() {"): raise SystemExit("dlss_mode asks for DLSS where it cannot run (DLAA would hold the 3D at full scale for nothing)") + if "std::clamp(" in function(dlss, "int dlss_mode() {"): + raise SystemExit("dlss_mode clamps the row's value: FSR 3.1 (3) would run DLAA") + # FSR 3.1 is offered where it runs, and the row steps over what does not run here + if "fsr3::supported()" not in function(menu, "unsigned upscalers_available() {"): + raise SystemExit("upscalers_available does not ask vk_fsr3.cpp whether FSR 3.1 runs here") + if "upscalers_available()" not in function(menu, "void set_row(") or "upscalers_available()" not in function(menu, "bool row_fixed("): + raise SystemExit("the Upscaler row does not step over (or fix on) what runs here") with tempfile.TemporaryDirectory(prefix="upscaler-rows-") as tmp: exe = Path(tmp) / "upscaler-rows" subprocess.run([args.cxx, "-std=c++20", "-Wall", "-Wextra", "-Werror",